讲解web攻防实战 web攻防学是什么语言( 五 )


UDP Flood 攻击
UDP flood 攻击是由于 UDP 是一种无连接的协议,因此攻击者可以伪造大量的源 IP 地址去发送 UDP 包,此种攻击属于大流量攻击 。正常应用情况下,UDP 包双向流量会基本相等,因此发起这种攻击的攻击者在消耗对方资源的时候也在消耗自己的资源 。
ICMP Flood 攻击
ICMP Flood 攻击属于大流量攻击,其原理就是不断发送不正常的 ICMP 包(所谓不正常就是 ICMP 包内容很大),导致目标带宽被占用,但其本身资源也会被消耗 。目前很多服务器都是禁 ping 的(在防火墙外可以屏蔽 ICMP 包),因此这种攻击方式已经落伍 。
网络层 DDoS 防御
网络层的 DDoS 攻击究其本质其实是无法防御的,我们能做得就是不断优化服务本身部署的网络架构,以及提升网络带宽 。当然,还是做好以下几件事也是有助于缓解网络层 DDoS 攻击的冲击:
网络架构上做好优化,采用负载均衡分流 。确保服务器的系统文件是最新的版本,并及时更新系统补丁 。添加抗 DDos 设备,进行流量清洗 。限制同时打开的 SYN 半连接数目,缩短 SYN 半连接的 Timeout 时间 。限制单 IP 请求频率 。防火墙等防护设置禁止 ICMP 包等 。严格限制对外开放的服务器的向外访问 。运行端口映射程序或端口扫描程序,要认真检查特权端口和非特权端口 。关闭不必要的服务 。认真检查网络设备和主机/服务器系统的日志 。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击 。限制在防火墙外与网络文件共享 。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会 。加钱堆机器 。。报警 。。应用层 DDoS
应用层 DDoS 攻击不是发生在网络层,是发生在 TCP 建立握手成功之后,应用程序处理请求的时候,现在很多常见的 DDoS 攻击都是应用层攻击 。应用层攻击千变万化,目的就是在网络应用层耗尽你的带宽,下面列出集中典型的攻击类型 。
CC 攻击
当时绿盟为了防御 DDoS 攻击研发了一款叫做 Collapasar 的产品,能够有效的防御 SYN Flood 攻击 。黑客为了挑衅,研发了一款 Challenge Collapasar 攻击工具(简称 CC) 。
CC 攻击的原理,就是针对消耗资源比较大的页面不断发起不正常的请求,导致资源耗尽 。因此在发送 CC 攻击前,我们需要寻找加载比较慢,消耗资源比较多的网页,比如需要查询数据库的页面、读写硬盘文件的等 。通过 CC 攻击,使用爬虫对某些加载需要消耗大量资源的页面发起 HTTP 请求 。
DNS Flood
DNS Flood 攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层 DNS 服务器递归查询域名信息 。域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成 DNS 服务器解析域名超时 。
根据微软的统计数据,一台 DNS 服务器所能承受的动态域名查询的上限是每秒钟 9000 个请求 。而我们知道,在一台 P3 的 PC 机上可以轻易地构造出每秒钟几万个域名解析请求,足以使一台硬件配置极高的 DNS 服务器瘫痪,由此可见 DNS 服务器的脆弱性 。
HTTP 慢速连接攻击
针对 HTTP 协议,先建立起 HTTP 连接,设置一个较大的 Conetnt-Length,每次只发送很少的字节,让服务器一直以为 HTTP 头部没有传输完成,这样连接一多就很快会出现连接耗尽 。
应用层 DDoS 防御判断 User-Agent 字段(不可靠,因为可以随意构造)针对 IP + cookie,限制访问频率(由于 cookie 可以更改,IP 可以使用代理,或者肉鸡,也不可靠)关闭服务器最大连接数等,合理配置中间件,缓解 DDoS 攻击 。请求中添加验证码,比如请求中有数据库操作的时候 。编写代码时,尽量实现优化,并合理使用缓存技术,减少数据库的读取操作 。加钱堆机器 。。报警 。。
应用层的防御有时比网络层的更难,因为导致应用层被 DDoS 攻击的因素非常多,有时往往是因为程序员的失误,导致某个页面加载需要消耗大量资源,有时是因为中间件配置不当等等 。而应用层 DDoS 防御的核心就是区分人与机器(爬虫),因为大量的请求不可能是人为的,肯定是机器构造的 。因此如果能有效的区分人与爬虫行为,则可以很好地防御此攻击 。
其他 DDoS 攻击
发起 DDoS 也是需要大量的带宽资源的,但是互联网就像森林,林子大了什么鸟都有,DDoS 攻击者也能找到其他的方式发起廉价并且极具杀伤力的 DDoS 攻击 。