DDos攻击

IP追踪方法

netstat   只显示当前的连接,未连接无法发现

netstat -p  显示正在使用Socket的程序识别码和程序名称
netstat -rn  显示路由表

traceroute 命令(路由跟踪)  由IP的TTL字段引起ICMP超时响应来判断到达目标主机路径中的每一个路由器。根据TTL值的变化来确定目标系统的位置

yum install traceroute

traceroute www.baidu.com    #记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关, 默认发送3个数据包,其实是-q的默认参数
traceroute -q 4 www.baidu.com    #发送4个数据包
traceroute -m 10 www.baidu.com    #跳数设置
traceroute -p 6888 www.baidu.com     #探测包使用的基本UDP端口设置6888
traceroute -w 3 www.baidu.com    #把对外发探测包的等待响应时间设置为3秒

可视化路由跟踪工具  

  当入侵者访问一连串站点后,一定会在ISP路由器留下他的IP记录,但ISP路由器只有公安部门,并且在ISP路由器查日志会非常消耗资源

IP地址信誉评价系统

当一个ip出现在多个黑名单中,则可以确定是有问题的ip

DDos分布式拒绝服务攻击

Syn-flood  tcp半连接

通过原始套接字发送源地虚假地址SYN报文,使用目标主机永远无法完成3次握手,占满了系统的协议队列,资源得不到释放,进而形成拒绝服务攻击,是互联网中最主要的DDOS攻击形式之一.网上有一些加固的方法,例如调整内核参数的方法,可以减少等待重试,加速资源释放,在小流量的syn-flood的情况下可以缓解,单流量稍大时完全不抵用.防御syn-flood的常见方法有:减少syn timeout时间syn-proxy,syn cookies.首包(第一次请求的syn包)丢弃等.

防护:参考:https://blog.csdn.net/qq_21567385/article/details/105609299

在/etc/sysctl.conf内增加

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

说明:

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

减少syn_recv

在/etc/sysctl.conf

net.ipv4.tcp_syncookies = 1 #启用使用syncookies
net.ipv4.tcp_synack_retries = 1 #降低syn重试次数
net.ipv4.tcp_syn_retries = 1 #降低syn重试次数
net.ipv4.tcp_max_syn_backlog = 6000 #最大半连接数
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0 #不接受重定向的icmp数据包
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_window_scaling = 1
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_all = 0

更改完后,重载配置,命令:

/sbin/sysctl -p

其他

经过个人测试发现,减少 SYN_RECV 攻击是很有用的,一大屏的攻击大量减少。


ACK-flood
对于虚假的ACK包,目标设备会直接回复RST包丢弃连接,所以伤害值远不如syn-floo.DDOS的一种原始方式.

 UDP-flood
使用原始套接字伪造大量虚假源地址的UDP包,目前DNS协议为主.

ICMP-flood
Ping洪水,比较古老的方式.

CC
ChallengeCollapsar的名字源于挑战国内知名的安全厂商绿盟的抗DDOS设备”黑洞”,通过boenet的傀儡机或寻找匿名代理服务器,向目标发起大量真实的http请求,最终消耗掉大量的并发资源,拖慢整个网站甚至彻底的拒绝服务.
互联网的架构追求扩展性本质是没了提高并发能力,各种SQL性能优化措施:消除慢查询,分表分库,索引,优化数据结构,限制搜索频率等本质都是为了解决资源消耗,而CC攻击大有反其道而行之的意味,占满服务器并发连接数,尽可能使请求避开缓存而直接读取数据库,读数据库要找对耗费资源的查询,最好无法利用索引,每个查询都全表扫描,这样就能用最小的攻击资源起到最大的拒绝服务效果
互联网产品和服务依靠数据分析来驱动改进和持续运营,索引除了前段的APP,中间件和数据库这类OLTP系统,后面还有OLAP,从日志收集,储存到数据处理和分析的大数据平台,当CC攻击发生时,不仅OLTP的部分收到了影响,实际上CC会产生大量的日志文件,直接会对后面的OLAP产生应县,影响包括两个层面,一个当日的数据统计完全是错误的.第二个层面因CC期间访问日志剧增也会加大后端数据处理的负担
CC是目前应用成攻击的主要手段之一,在防御上有一些方法,但是不能完美解决这个问题.
DNS flood
伪造原地址的海量DNS请求,用于是淹没目标的DNS服务器,对于攻击特定企业权威DNS的场景,可以将原地址设置为各大ISP DNS服务器的IP嗲孩子以突破白名单限制,将茶行的内容改为针对目标企业的域名做随机化处理,当查询无法命中缓存是,服务器负载会进一步增大.
DNS不只在UDP-53提供服务,同样在TCP协议提供服务,所以防御的一种思路及时将UDP的查询强制转为TCP,要求溯源,如果是假的源地址,就不在回应.对于企业自有权威DNS服务器而言,正常请求多来自于ISP的域名递归解析,如果将白名单设置为ISP的DNS service列表.对于源地址伪造成ISP DNS的请求,可以通过TTL值进一步判断.
慢速连接攻击
针对http协议,以知名的slowloris攻击为起源:先建立一个http连接,设置一个比较大的content-length,每次只发送很少的字节,让服务器一直以为http头没有传输完成,这样的连接一多很快就会出现连接耗尽.
目前出现了一些变种,http慢速的post请求和慢速的read请求都是基于相同的原理.

DoS/DDoS 攻击源追踪  

1 逐个路由攻击  

  通过traceroute获得探测机到目标DNS服务器的路由路径r1 -> r2 ->r3....

  依次向路由发送DNS请求

  检测是否收到DNS应答,直到找到主机

(需要IPS协助)

2 ICMP追踪

  通过寻找ICMP消息并检查攻击者源IP,利用这些ICMP消息来重新构造攻击者的路径。还是要依赖路由器,并且ICMP可能在普通流量中过滤掉,攻击者可以发送伪造ICMP消息

攻击者可以使用两层甚至更多层傀儡机实施攻击,而对靠近攻击者的傀儡机做彻底的日志清理,使得跟踪技术无法找到攻击者。另外对于反射式(DRDOS)攻击,由于攻击包是合法的,想要追踪到傀儡机本身就已经非常困难了.

通常情况最后追踪到的地址可能是企业边界防火墙地址,这也是企业网的入口

跳板机+傀儡机 = so difficult

 

 

 参考:

跳板机,傀儡机:https://www.cnblogs.com/feng0919/p/11215884.html

ddos防御策略 : https://blog.csdn.net/m0_48178474/article/details/106933556

 

posted @ 2021-05-18 10:03  binbin_cloud  阅读(150)  评论(0编辑  收藏  举报