域名系统(DNS)是一种结构化的命名系统,是Internet基础结构的关键部分。目前,针对DNS的攻击已经成为网络安全中的一个严重问题,每年都有数千个网站成为此类攻击的受害者。为了保护网络免受此类攻击,重要的是要了解不同类型的DNS攻击,并找到相对应的缓解方法。
01
拒绝服务(DoS)类攻击
从DoS这个描述性就可以看出这类DNS网络攻击的特点,旨在通过耗尽机器或网络的资源将其服务关闭,阻止用户访问机器或网络。需要强调的是,这种攻击的目的主要用于隐藏踪迹或阻碍受害者恢复工作。
DoS攻击通常被不法分子用来追踪采用高级网络保护的高价值目标,其主要类型包括:
DNS放大
DNS放大是DoS攻击中用于利用域名系统并加大目标网站流量的一种技术。这种攻击方法利用的主要技术包括DNS反射和地址伪造。不法分子实施这种攻击的手法是,向域名系统服务器发送伪造的IP数据包,请求目标的域名,使用目标的IP地址代替自己的IP地址。
所有这些查询都由DNS服务器用目标机器的IP地址来答复。然后,受害者的服务器向每个请求发送相同的答复。这导致庞大的数据流量从受害者网络的端口80或25流入。
资源耗尽
资源耗尽DoS攻击是指,攻击者旨在通过耗尽设备的资源池(CPU、内存、磁盘和网络),在受害者的机器中触发DoS类型的响应。内存耗尽是另一种资源耗尽DoS攻击,比如针对电子邮件代理,威胁分子只需将数十万个附件上传到草稿邮件,即可触发内存耗尽攻击。
缓冲区溢出
缓冲区溢出攻击(BOA)是一种漏洞或限制利用攻击,旨在迫使系统将内存写入错误的缓冲区而不是预期的位置。当内存写入缓冲区而不是常规位置时,这会导致利用该内存的应用程序崩溃。这个问题是用C语言编写的应用程序所特有的。
缓冲区溢出攻击也可用于DoS之外的目的。比如说,攻击者可能会篡改或替换基址指针或指标指针中的值,以执行恶意代码。
ICMP洪水
这种DoS攻击又叫ping洪水,它滥用常见的连接测试来导致目标系统崩溃、宕机、重启或无法运行。工作原理是,一台机器向另一台机器发送ICMP回应请求。反过来,接收端发回答复。只要测量往返,即可确定连接强度。而攻击者可以滥用ICMP回应答复机制使受害者的网络不堪重负。不过攻击者必须知道受害者的IP地址才能明确攻击的重点。此外,攻击者还要了解受害者路由器的相关信息。
SYN洪水
SYN洪水又叫“半开”攻击,它滥用了TCP/IP三次握手机制。三次握手机制的工作原理是,攻击者将通过重复发送SYN数据包,并忽略服务器端的SYN-ACK数据包,从而触发服务器的拒绝用户响应。
DoS类DNS攻击防护建议:
使用合法的云托管服务;
实施系统可用性监控;
及时锁定注册表;
部署应用IDS/IPS工具;
定期开展自动化静态和动态分析;
定期使用模糊测试技术;
实施数据执行预防措施;
对网页代码进行安全性检查;
关注编译器报警,并准确查找原因;
添加预警机制,并对入站ICMP消息进行处理限制;
使用边界防火墙微调;
一旦积压队列已满,使用最旧的半开TCP/IP连接。
02
分布式拒绝服务(DDoS)类攻击
与简单的DoS攻击相比,DDoS攻击发生的频率更高。因为僵尸机器和僵尸网络在暗网上很容易获得;与DoS相比,DDoS类攻击得逞的概率更高。
以下是DDoS类DNS攻击的主要技术方式:
UDP洪水
这种DDoS与SYN洪水攻击非常相似,利用用户数据报协议(UDP)和UDP数据包。攻击者向用户已打开端口发送大量的垃圾 UDP数据包。主机以为这些是合法的UDP通信尝试,试图在该端口上侦听,如果没找到数据包,主机将别无选择的回复ICMP无法抵达。这种情况会一直持续下去,直至主机的网络资源被耗尽。
NTP放大
在网络时间协议(NTP)攻击中,威胁分子会向NTP服务器发送大量的UDP数据包,以达到DoS的目的。当NTP服务器的资源无法支撑解析所收到的查询请求时,它就会崩溃。
HTTP洪水
这是一种非常有效的DDoS攻击方式,利用了GET或POST响应机制。攻击者向服务器发送尽可能多的合法GET或POST查询,迫使服务器回答每一个查询。这种资源密集型回复过程会耗尽服务器资源,从而导致服务中断。
Fast Flux
Fast Flux攻击目的主要用于掩盖僵尸网络,严格上来讲它不是一种攻击,而是僵尸网络运营商用来逃避检测的一种规避方法。借助Fast Flux,威胁分子可以在受感染的主机之间快速切换,从而使他们无法被检测工具发觉。
反射式跨站点脚本(XSS)
在反射式跨站点脚本攻击(XSS)模式中,威胁分子会滥用由接收请求的应用程序发出的HTPP响应。这么做的目的是,发现接收HTTP请求的应用程序是否在收到查询时执行任何类型的数据检查。一些不安全的网站会原样返回搜索词。威胁分子可以利用这种不当的数据处理做法在URL中附加恶意参数,实施XSS攻击。
DDoS类DNS攻击防护建议:
执行深度数据包检查;
应用流量清理过滤器;
抑制ICMP数据包的系统响应率;
执行定期流量分析;
及时关注IP 的安全声誉;
严格执行JavaScript解析;
验证IP来源;
禁用monlist;
实施访问控制;
加强员工网络安全意识教育,不点击可疑链接和邮件;
正确使用Web应用程序防火墙。
03
DNS 劫持类攻击
发生DNS劫持攻击时,网络攻击者会操纵域名查询的解析服务,导致访问被恶意定向至他们控制的非法服务器,这也被成为DNS投毒或DNS重定向攻击。
DNS 劫持攻击在网络犯罪领域也很常见。DNS劫持活动还可能破坏或改变合规DNS服务器的工作。除了实施网络钓鱼活动的黑客外,这还可能由信誉良好的实体(比如ISP)完成,其这么做是为了收集信息,用于统计数据、展示广告及其他用途。此外,DNS服务提供商也可能使用流量劫持作为一种审查手段,防止访问特定页面。
DNS劫持类攻击主要的技术手段:
DNS欺骗
DNS欺骗又叫DNS缓存中毒,是网络犯罪分子用来诱骗用户连接到他们建立的虚假网站而不是合法网站的一种方法。有人通过域名系统请求访问网站,而DNS服务器回应不准确的IP地址时,这被认为是DNS欺骗攻击。然而,不仅仅是网站容易受到这种攻击。黑客还可以使用这种方法,访问电子邮件账户及其他私密数据。
DNS隧道
网络流量可以使用DNS隧道的方式绕过网络过滤器和防火墙等机制,以建立另外的数据传输通道。启用DNS隧道后,用户的连接将通过远程服务器路由传输互联网流量。不幸的是,黑客经常将此用于恶意目的。被恶意使用时,DNS隧道是一种攻击策略,数据通过DNS查询来传递。除了通过平常会阻止这类流量的网络秘密发送数据外,这还可用于欺骗内容、避免过滤或防火墙检测。
DNS重新绑定
DNS重新绑定是一种网络攻击方法,利用浏览器缓存的长期特性,欺骗受害者的浏览器在输入域名时联系恶意站点。攻击者可以使用任何联网设备(包括智能手机)来实施攻击,不需要任何类型的身份验证。受害者必须禁用浏览历史记录或打开浏览器隐身窗口,才能禁用缓存。利用该漏洞,攻击者可以将受害者浏览器对域名的请求,重新路由到托管有害内容的非法服务器。
DNS拼写仿冒
DNS拼写仿冒是一种受DNS劫持启发的社会工程攻击技术,它使用域名中的错别字和拼写错误。常见的DNS拼写仿冒攻击始于攻击者注册一个域名,这个域名和目标的网站域名非常相似。攻击者随后搭建一个虚假网站,网站内容旨在说服用户提供敏感信息,包括登录密码、信用卡资料及其他个人信息。
DNS劫持类攻击防护建议:
关闭不需要的DNS解析器;
在合法的DNS解析器处部署防火墙;
将名称服务器与DNS解析器分开;
开展及时有效的漏洞管理和修复工作;
对DNS注册商实施客户端锁定;
确保使用支持DNSSEC的DNS服务商;
始终启用DNSSEC配置功能;
为使用加密的VPN连接;
实施路由器密码安全政策。
参考链接:
https://heimdalsecurity.com/blog/anatomy-of-a-dns-attack/