前言
现代 Internet通过发送和接收 IP 数据包来开展联网计算机与其他设备的通信,这就意味着早在互联网诞生之际就存在IP欺骗的风险。1980年,研究人员意识到黑客可以更改IP标头系统中的数据,并且撰写了相关的工作原理,但是这场内部人员之间的讨论并没有引起注意。
直到十年后,一场“年度计算机犯罪”才使得IP欺骗逐渐被人熟知。1994年,一位名叫下村勤的著名安全专家在圣诞节遭受了毁灭性的IP欺骗攻击,在经过媒体大幅度的报道之后,IP欺骗引起了民众和相关专家的注意。
鉴于每台计算机和服务器都有一个唯一标识符(互联网协议或IP地址),所以每个人都有可能受到IP欺骗的威胁。在这篇文章中,我们将讨论 IP 欺骗的定义、危害、常见的 IP 欺骗攻击类型,以及 IP 欺骗的一些合法用途。
什么是 IP 欺骗?
一般而言,IP 欺骗会通过获取Internet发送的部分数据进行更改,并使其看起来好像来自合法来源。IP 欺骗是许多不同攻击的广泛术语:
- IP 地址欺骗:直接混淆攻击者的IP地址以进行拒绝服务(DoS)攻击。
- 域名服务器 (DNS) 欺骗:修改DNS的源IP以将域名重定向到不同的IP。
- 地址解析协议(ARP)欺骗:ARP欺骗更复杂,它涉及使用欺骗性ARP消息将计算机的媒体访问控制(MAC)地址链接到合法 IP。
- IP 欺骗获取数据并在网络级别更改一些可识别信息,使得欺骗难以检测。
IP 欺骗是如何发生的
为了更好地理解 IP 欺骗,让我们先来了解一下互联网如何发送和使用数据。
每台计算机都有一个IP地址,发送的任何数据都被分成许多块(“数据包”),每个数据包单独传输,当这些数据包到达链的末端时,就会重新组装并作为一个整体呈现。此外,每个数据包还有其可识别信息(“标头”),其中包括来自源和目标的 IP 地址。
IP 欺骗使用源 IP 标头并更改一些细节以使其看起来更加真实,这使得IP欺骗难以被发现,网络工程师经常尝试寻找新的方法来保护通过网络传输的信息,例如通过使用IPv6来保护信息。IPv6是一种构建加密和身份验证的新协议,安全外壳 (SSH) 和安全套接字层 (SSL)有助于缓解攻击,虽然这并不能解决问题,但至少在理论上,实施的加密步骤越多,就越能保护计算机。
IP 欺骗的 3 种最常见的攻击类型
1. 僵尸网络
僵尸网络Botnet是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。黑客通过恶意软件等感染获得控制权,执行垃圾邮件攻击、DDoS 攻击、广告欺诈、勒索软件攻击等等。
造成这种情况的部分原因是IP欺骗。每个僵尸程序通常都有一个欺骗性IP,这使得恶意行为者难以追踪。也就是说,如果没有 IP 欺骗,就无法掩盖僵尸网络。
2. 拒绝服务 (DDoS) 攻击
通过制造并发送大流量无用数据,造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使被攻击主机无法正常和外界通信。这涵盖了几种相关的欺骗攻击和技术,它们结合起来形成了整个攻击。
DNS 欺骗
2006年09月12日,多地网友反映百度无法正常使用,出现“请求超时”(Request timed out)的信息,百度搜索服务在全国各地出现了近30分钟的故障。百度被黑事件的发生再次揭示了全球DNS体系的脆弱性,并说明互联网厂商如果仅有针对自身信息系统的安全预案,就不足以快速应对全面而复杂的威胁。
DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。通过冒充域名服务器,把用户想要查询的IP地址设为攻击者的IP地址,用户就直接访问了攻击者的主页,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
恶意用户会利用 DNS 欺骗来渗透网络,将与 DNS 关联的域名更改为另一个 IP 地址。至此,恶意攻击者可以进行任意方式的攻击,恶意软件感染是最常见的一种,通过将流量从合法来源转移到恶意来源而避免被检测到,导致更多的机器感染并创建僵尸网络以有效地执行 DDoS 攻击。
IP 地址欺骗
在 DNS 欺骗之后,攻击者将执行多个IP 地址欺骗,以帮助混淆网络中的攻击源。这通常一个随机化的过程,在这个过程中,IP 地址随机变化,这使得攻击源难以检测和追踪。这种网络级攻击使得用户无法检测,同时也难倒了许多服务器端专家。
ARP中毒
ARP 欺骗(或“中毒”)是进行 DDoS 攻击的另一种方式。它结合了掩蔽僵尸网络和 IP 欺骗,但较之复杂得多。
ARP中毒是指通过针对局域网 (LAN) 并发送恶意ARP数据包来更改MAC表中设置的 IP 地址。这是攻击者一次性攻击大量计算机的简便方法。ARP 中毒的目标是操纵受感染的计算机引导所有网络流量,攻击者可以通过他们的计算机选择进行 DDoS 或 MITM 攻击。
3.MITM攻击
中间人 (MITM) 攻击则更加复杂、高效且更具危害性。
通过在数据到达用户连接的服务器之前拦截,攻击者可以使用虚假网站与用户进行交互以窃取信息。在MITM 攻击中,所涉及的两方可能会觉得通信正常,但在消息到达目的地之前,中间人就非法修改或访问了消息。
一旦攻击者通过欺骗 IP 地址获得对个人通信帐户的访问权限,就可以跟踪该通信的任何方面:窃取信息、将用户引导到虚假网站等。
MITM 攻击依赖于 IP 欺骗,因为需要在用户不知情的情况下进行信息的获取和拦截,黑客甚至可以长期收集数据并将其出售给他人。
IP欺骗的危害性
IP 欺骗在低网络级别出现,几乎每个互联网上的用户都可能受到威胁。且IP欺骗通常难以察觉,这意味着用户不会有任何警惕的迹象,因此可能会交出敏感信息。
此外,攻击者的主要目标往往涉及关键业务,例如安全系统和防火墙,这就是企业这么重视网站安全的原因。企业不仅需要足够强大的安全功能来缓解攻击,还需要确保当前网络下用户的警惕性,避免被攻击者趁虚而入。
IP 欺骗的合法用途
上文我们提到,IP欺骗难以控制是由于它的合法性:其合法用途具有一定价值和无可替代性。
例如,在网站性能测试中,需要创建成百上千的“用户”(虚拟用户)执行测试网站的测试脚本,以模拟当系统上线和大量用户立刻登录时的预发情况。由于每个用户都会有自己的IP地址,商业测试产品可以使用IP欺骗,允许每个用户自己的“返回地址”。
一些公司还将在与系统漏洞无关的模拟练习中使用 IP 欺骗。例如,通过创建数千个 IP 地址来群发邮件;使用 IP 欺骗来模拟用户注册测试结果。也就是说,任何需要模拟许多用户的情况都可能会用到 IP 欺骗。
如何防止 IP 欺骗
每起网络攻击事件平均给企业造成200,000美元的损失。由于 IP 欺骗是最容易发起的攻击之一,也是最具破坏性的攻击之一,因此加强IP欺骗的防范是有意义的。
- 禁止基于IP的信任关系。IP欺骗的原理是冒充被信任主机的IP地址,这种信任关系建立在基于IP地址的验证上。如果禁止IP地址的信任关系,不允许R 类远程调用命令的使用,删除rhosts文件,并且清空/etc/hosts.equiv文件,使所有用户通过其他远程方式(如Telnet)等进行远程访问,可以有效防止IP欺骗。
- 安装过滤路由器。如果需要通过路由器接入Internet,可以利用路由器进行过滤。确信只有用户的内部LAN可以使用信任关系,而内部LAN上的主机对于LAN之外的主机要慎重处理。通过对信息包的监控来检查IP欺骗攻击是非常有效的方法之一,使用监控工具检查外接口的上包情况,如果发现两个地址都是本地域地址,就意味着有人要试图攻击,而这种监控正建立在IP地址溯源之上。
- 使用IP加密。在通信时要求加密传输和验证,当有多个手段并存时,加密是最有效的方法。
- 使用随机的初始序列号。IP欺骗的另一个重要因素是初始序列号不是随机选择或随机增加的。如果能够分割序列号空间,第一个链接有自己的独立序列号空间,序列号仍然按照之前的方式增加,但是这些序列号空间中没有明显的关系。用一个公式说明:ISN=M F(Locallhost,Localport.remotehost,remoteport),其中M,4微秒定时器IF,加密HAsH函数.F产生的序列号很难被猜测出来。