1、信息安全综合实验 - DoS攻击,课程目的 学习DoS攻击的基本概念,了解拒绝服务攻击的分类及其原理 掌握和防御DoS攻击的方法 注意: 职业道德,2,DoS攻击,DoS, Denial of Service, 拒绝服务攻击 拒绝服务攻击使系统瘫痪,或明显降低系统的性能。 可能是蓄意的,也可能是偶然的。 DoS攻击难以防范 DoS攻击的次数每天都在增长,3,3.1 拒绝服务攻击,使系统或网络瘫痪 发送少量蓄意构造的数据包,使系统死机或重新启动。 主要利用系统软件的Bug,一旦Bug被修正,攻击就不起作用 使系统或网络无法响应正常的请求 发送大量的垃圾数据,使得系统无法处理正常的请求 比较难杜绝
2、,4,拒绝服务攻击分类,5,分布式拒绝服务攻击,检测、防御、响应、取证更困难 TFN2K 通信可以使用TCP、UDP、ICMP数据包 很难检测和进行包过滤 只要连接在Internet上,就无法避免不被DoS攻击,6,分布式拒绝服务攻击,Ping of Death 发送长度超过65535字节的ICMP Echo Request 数据包 导致目标机TCP/IP协议栈崩溃,系统死机或重启 现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题,7,3.2 拒绝服务攻击的例子,Jolt2 发送特别构造的IP 数据包 导致目标机TCP/IP协议栈崩溃,系统死锁 现有的操作系统基本上都能正确处理这种
3、异常数据包,不会出现问题 Teardrop 与Jolt2类似,8,拒绝服务攻击的例子,Land 发送一个TCP SYN包,包的SRC/DST IP相同,SPORT/DPORT相同 导致目标机TCP/IP协议栈崩溃,系统死机或短时失去响应 现有的操作系统基本上都能正确处理这种异常数据包,不会出现问题 Winnuke 发送特别构造的TCP包,使得Windows机器篮屏,9,拒绝服务攻击的例子,Smurf,10,拒绝服务攻击的例子,B类网络,攻击者冒充服务器向一个B类网络的广播地址发送ICMP echo包,整个B类网络的所有系统都向此服务器回应一个icmp reply包,11,拒绝服务攻击的例子,S
4、yn flooding 发送大量的SYN包 系统中处于SYN_RECV状态的 socket,减少SYN_RECV状态的时间 增大backlog队列长度 Syn-cookie 不在内存中存放状态(src/dst, sport/dport, isn1) 根据src/dst sport/dport isn1 HASH出一个ISN2 下次接收到ISN2+1后,再来检查正确性 Linux支持 SYN-cookie Gateway 放置在服务器前,仅仅把established的连接传输过来 Tcp option的处理 MSS sack,12,SYN flooding,DRDoS Distributed R
5、eflection Denial of Service 伪造TCP SYN包,其中的源地址是要攻击的IP 大量的SYN+ACK数据包会发送给攻击者,13,拒绝服务攻击的例子,14,困难 不容易定位攻击者的位置 Internet上绝大多数网络都不限制源地址,也就是伪造源地址非常容易 通过攻击代理的攻击,只能找到攻击代理的位置 各种反射式攻击,无法定位源攻击者 完全阻止是不可能的 防范工作可以减少被攻击的机会,15,3.3 拒绝服务攻击的防范,有效完善的设计网络 分散服务器的位置,避免被攻击时的瘫痪 设置负载均衡、反向代理、L4/L7交换机的,加强对外提供服务的能力 有些L4/L7交换机本身具备一
6、定的防范拒绝服务攻击能力,16,拒绝服务攻击的防范,有效完善的设计网络 分散服务器的位置,避免被攻击时的瘫痪 设置负载均衡、反向代理、L4/L7交换机的,加强对外提供服务的能力 有些L4/L7交换机本身具备一定的防范拒绝服务攻击能力,17,拒绝服务攻击的防范,带宽限制 限制特定协议占用的带宽 并不是完善的方法 及时安装厂商补丁 减少被攻击的机会 运行尽可能少的服务 只允许必要的通信 设置严格的防火墙策略 封锁所有无用的数据,18,拒绝服务攻击的防范,不要让自己的网络系统成为攻击者的帮凶 保持网络安全 让攻击者无法非法获得对主机系统的访问 安装入侵检测系统 尽早的检测到攻击 使用漏洞扫描工具 及
7、早发现系统的弱点、漏洞并修补,19,分布式拒绝服务攻击的防范,网络出口过滤 在路由器上进行过滤 入口过滤 所有源地址是保留地址的数据包全部丢弃 所有源地址是本地网络地址的数据包全部丢弃 出口过滤 所有源地址不是本地网络的数据包全部丢弃 防止本地网络用户伪造IP地址攻击别人 教育网主干入口处都做了设置,20,分布式拒绝服务攻击的防范,耗尽资源的程序 消耗CPU、内存、I/O,21,实验一,Syn flooding 程序 要求 读懂程序 对自己的机器进行攻击测试 对比是否开启tcp_syncookies的效果 echo 0 /proc/sys/net/ipv4/tcp_syncookies echo 1 /proc/sys/net/ipv4/tcp_syncookies,22,实验二,