UDP反射DDoS攻击原理和防范

时间:2023-07-24 08:42:02
东南大学:UDP反射DDoS攻击原理和防范
2015-04-17 中国教育网络 李刚 丁伟

  反射攻击的防范措施

  上述协议安装后由于有关服务默认处于开启状态,是其被利用的一个重要因素。因此,防范可以从配置主机服务选项和访问控制权限(ACL)入手。具体建议如下:

  Chargen攻击防范配置方法

  关闭Chargen服务,具体的操作方法:

  1.Linux系统:在/etc/inetd.conf文件中注释掉‘chargen’服务,或者在/etc/xinetd.d/目录下将chargen服务对应的文件中的“disable” 属性改为 “yes”。

  2. 在Window 系统下:Chargen服务属于Windows系统中的SimpTCP服务,一般情况下Windows系统缺省不会安装该服务,如已安装该服务,可以通过如下几种方式关闭服务:

  (1)通过控制面板中的Service管理程序,关闭SimpTCP服务;

  (2)通过修改注册表:通过注册表编辑器将以下两项表项的值设为0HKLM\System\CurrentControlSet\Services

  \SimpTCP\Parameters\EnableTcpChargenHKLM\System\

  CurrentControlSet\Services\SimpTCP\Parameters\EnableUdpChargen

  (3)通过命令行执行net 程序:netstop simptcp;net start simptcp。

  NTP攻击防范配置方法

  1.升级版本Linux 系统中的ntpd 4.2.7p26及之后的版本关闭了monlist请求功能。升级到ntpd 4.2.7p26或更高版本可以避免针对该漏洞的攻击。

  2. 禁用或限制状态查询

  (1)在Linux系统下,如果monlist功能开放,可尝试通过修改ntp.conf配置文件解决问题,具体操作建议是在上述文件中增加下面的配置:

  IPV4:restrict default kodnomodifynotrapnopeernoquery

  IPv6:restrict-6 default kodnomodifynotrapnopeernoquery

  另外,还可以配置限制访问命令,如:restrict default noquery。

  (2)Windows Server系统的设置方法较为简单:在ntp.conf配置文件中增加(或修改)“disable monitor”选项,可以关闭现有NTP服务的monlist 功能。

  修改并保存配置文件之后,请重启ntpd服务。

  DNS攻击防范配置方法

  1. 关闭递归查询

  (1)在UNIX系统的DNS服务器下:在全局配置选项中加入如下限制以关闭递归查询:

  options {allow-query-cache {none};recursion no;};

  (2)在Windows系统的DNS 服务器下,采取如下步骤:a.打开DNS(“开始”-“程序”-“管理工具”-单击“DNS”);b. 在控制列表树中,单击“适用的DNS服务器”;c.在“操作”菜单上,单击“属性”;d.点击“高级”;e.在“服务器选项”中,选中“禁用递归”复选框,然后确定。

  2. 授权特定用户进行递归查询

  在特定组织或者ISP中部署的DNS服务器,域名解析应当配置成对授权的客户机提供递归查询。这些递归查询请求应当只来源于该组织内的客户机地址。建议所有的服务器管理员只允许内部客户机的递归查询请求。

  在UNIX系统的DNS 服务器配置下,在全局配置选项中做如下设置:

  acl corpnets{192.168.1.0/24;192.168.2.0/24;};options {allow-query {any;};

  allow-recursion {corpnets;};};

  SSDP攻击防范配置方法

  1. 关闭系统服务

  (1)在Windows下以管理员身份运行cmd.exe,并执行以下命令:scconfigSSDPSRV start=DISABLED;(2)在桌面上右击“计算机”,在“服务和应用程序”中点击“服务”,找到“SSDP Discovery”服务,双击后该服务后选择“禁用”选项。

  2. 防火墙拦截

  (1)在Windows 系统操作如下:在“开始”-“控制面板”-“Windows防火墙”-“高级设置”中,分别在“入站规则”和“出站规则”中加入一条新的规则,新建规则操作如下:点击“新建规则”,选择“端口”和“下一步”,选择“UDP”,并在“特定远程端口中”输入“1900”,点击“下一步”,选择“阻止连接”和“下一步”,选择“域”、“专业(P)”、“公用(U)”和“下一步”,在名称中输入“SSDPDiscovery”,并点击“完成”。

  (2)在Linux系统操作如下:

  a.打开/etc/sysconfig/iptables文件(操作以CENTOS 为例),在文件中加入如下规则:

  -A INPUT -p udp -m udp --sport 1900 -j DROP

  -A INPUT -p udp -m udp --dport 1900 -j DROP

  -A OUTPUT -p udp -m udp --sport 1900 -j DROP

  -A OUTPUT -p udp -m udp --dport 1900 -j DROP

  b.最后重启防火墙:#service iptablesrestart

  需要另外说明的,Chargen、NTP、DNS协议也可以在路由器或防火墙配置过滤条件,拦截目的或者源端口为相应服务端口(19 号、123 号、53 号端口等)的所有UDP报文,配置规则可参考上述1900端口的规则格式。

  SNMP攻击防范配置方法

  SNMP服务通常用于远程监控网络设备状态,例如路由器、交互机、网络打印机、以及其它联网的嵌入式设备,不同类似的设备SNMP服务配置方式存在差异,有些具备ACL功能,有些缺少相应的访问控制。因此通用的解决方法是在边界防火墙上拦截目的或者源端口为161的UDP报文,具体方式和SSDP等类似。

  本文针对主机服务配置的防范讨论大致如上。限于篇幅,针对单个协议的防护技术(如应用于DNS 反射攻击防范的Anycast流清洗技术)等相关内容不再详细列出。

  本文分析了反射DDoS攻击的原理、攻击特点和常见的攻击协议,包括Chargen、NTP、DNS、SNMP 和SSDP 协议,并对攻击相关协议的漏洞进行了详细描述。协议本身的设计缺陷以及配置不当是造成攻击的主要原因。文章最后从不同角度提出了应对该类攻击的防范措施。虽然不能从根本上杜绝攻击的发生,但是强化网络管理的意识和对设备的有效配置可以在一定程度上降低发生反射攻击的可能。