IP欺骗攻击(精选七篇)
IP欺骗攻击 篇1
在计算机网络飞速发展的同时,网络资源所遭受到的攻击和破坏也日益严重。从网络特征上来分,攻击可以分为主动性攻击和被动性攻击两大类。被动攻击只是被动地监听网络数据,不会对数据作任何修改;而主动攻击则是通过绕过或攻破安全防护、注入恶意代码、置换网络数据、破坏系统完整性等行为来达到对网络资源的非法使用和破坏的目的。主动攻击占网络攻击的绝大部分,身份欺骗是其中一类行之有效的主动性攻击手段。
身份欺骗利用网络结构以及相关协议在实现过程中存在的安全漏洞来实现攻击目的,其方式非常多,常见的有IP欺骗、MAC地址欺骗、电子邮件欺骗、帐户名欺骗、TCP会话劫持、ARP欺骗、DNS欺骗、路由欺骗以及通过代理服务器欺骗等,其中IP欺骗使用最为广泛,通过IP欺骗能够有效地隐藏攻击者的身份甚至嫁祸于人。
IP欺骗是利用主机之间的正常信任关系,通过修改IP数据包中的源地址,以绕开主机或网络访问控制或隐藏攻击来源(比如防火墙或主机的日志数据)的攻击技术。利用IP欺骗技术,可以实现中间人攻击、会话劫持攻击、源路由攻击、拒绝服务攻击、信任关系利用等多种攻击,IP欺骗之所以能够得以实现,其根本原因是TCP/IP协议本身的缺陷。IP协议是TCP/IP协议族中面向连接的、非可靠传输的网络层协议,它不保持任何连接状态信息,也不提供可靠性保障机制,这使得我们可以在IP数据报的源地址和目的地址字段填入任何满足要求的IP地址,从而实现使用虚假IP地址或进行IP地址盗用的目的。IP欺骗的主要步骤有:
(1)发现信任关系。
(2)攻击被信任主机使其瘫痪。
(3)伪造TCP数据包,猜测初始序列号。
(4)与目标机建立连接,获取访问目标主机的权限。
(5)进一步提升权限,从而完全控制目标主机。
2 IP欺骗的原理及实现
2.1 IP欺骗与访问控制
访问控制是网络安全防范和保护的主要策略,它控制用户和系统与其他系统和资源进行通信和交互。访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源,其技术包括入网访问控制、网络全线访问控制、目录级控制以及属性控制等多种。
IP欺骗只适用于那些通过IP地址实现访问控制的系统。因为如果系统还有其他访问控制策略,比如应用级的用户权限和口令等,即使攻击者能够伪造合法的IP地址,也不能实现对网络资源的非法访问。本文讨论在基于IP地址实现访问控制的系统上实现IP欺骗的原理。
在网络中,计算机之间的交互是以在认证和信任关系为基础之上进行的。认证是网络中各计算机相互之间识别的过程。经过相互认证,两台建立连接的计算机之间就会建立信任关系。
当两台计算机之间形成了信任关系,第三台计算机就能冒充建立了信任关系的两台计算机中的之一对另一台进行欺骗,说得简单一点就是盗用被攻击者信任方的IP地址。此外,随意伪造IP地址也是黑客用于隐藏自己攻击者身份的IP欺骗手段之一。因此,IP欺骗的表现形式主要有两种,一种是攻击者伪造的IP地址不可达或根本不存在;另一种IP欺骗则利用的是被攻击的目标主机与其它主机之间的信任关系,通过伪造被攻击方信任的IP地址来进行冒充,从而获得对目标主机的访问权。
比如,在UNIX主机中,存在一种特殊的信任关系,即:若用户user在主机A和主机B上各有一个帐号user,那么,用户在主机A上登录时需要输入主机A上的帐号user,而在主机B上登录时需要输入主机B上的帐号user,两主机会将user当作是两个独立的互不相关的帐号,这就使得用户在多服务器环境下的工作存在诸多的不便,为了解决这个问题,通常的做法是在主机A和主机B之间建立两个帐号的相互信任关系,其方法是:在两台主机上都分别在user用户的home目录中创建.rhosts文件,然后在主机A的user用户的home目录中运行命令#echo“主机B user”>~/.hosts,同时在主机B的user用户的home目录中运行命令#echo“主机A user”>~/.hosts,这样,就建立了主机A与主机B的信任关系。这种信任关系一旦建立,用户就可以方便地使用任何以r开头的远程调用命令,如远程登录rlogin、远程执行rsh、远程复制文件rcp、远程显示当前注册用户rwho等。
由于rlogin命令是基于信任关系的验证,其命令是使用TCP协议进行传输的。并且,如果发出命令的主机是目标主机信任的,该命令将允许在不应答口令的情况下使用目标主机上的资源,也就是说,这种特殊的信任关系使得其访问控制只有通过IP地址进行的状况。那么,如果攻击者能够伪造出目标机信任的主机的IP地址(即将IP数据包中源IP地址替换为目标机信任的主机的IP地址),即可以运行rlogin命令,在不需要权限口令验证的情况下获得对目标机资源的访问权限。
在UNIX系统中,除了“R”服务外,依赖于IP地址执行主机鉴别的NFS,也很容易受到IP欺骗攻击。
2.2 IP欺骗的特征与实现
实际上,仅仅简单地通过修改IP数据报中的源IP地址是实现不了IP欺骗的,IP欺骗的技术非常复杂。这是因为TCP协议会对IP数据包进行进一步的封装。TCP协议是一个面向连接的可靠的传输层协议,需要连接双方确认同意才能进行数据交换,并且,TCP协议还要保证两台通信设备之间的数据包要顺序传输。TCP协议的这种可靠性是依靠数据包中的序列号(SYN)和数据确认(ACK)这样的多位控制字来实现的。TCP会为每一个数据字节分配一个序列号,并对已经成功接受的源地址所发送的数据包进行确认,并在确认数据包中携带下一个期望接收到的数据包的序列号。并且,TCP协议的通信双方需要在正式传输数据之间,采用“三次握手”的方式建立一个稳健的连接。
因此,在上述建立了特殊信任关系的两台主机A和B中的A主机上运行rlogin命令的时候,其详细的工作过程如下:
(1)连接请求方即主机A向服务方即主机B发送带有初始序列号SYN标志的的数据段,以便通知主机B需要建立TCP连接,并告诉B自己的初始序列号位SYNa。
(2)主计B在接收到主机A传输过来的TCP数据段后,向A会传一个带有SYN和ACK标志的数据段,以便通知主机A自己的初始序列号SYNb,并确认B发送来的第一个数据段,将ACK设置为SYNa+1。
(3)A确认收到B的数据段,并将ACK设置为SYNb+1。
此时,双方的连接建立完成,开始进行数据传输了。
因此,IP欺骗攻击的实现过程通常可以按如下方法实现:
(1)先与被攻击主机A的某个端口(如rlogin服务的端口为513)建立正常的连接,并记录在实现这个正常连接时主机A所产生的ISN和从本机到主机A的大致的RTT(往返时间)值,多次进行该步骤,从而得到RTT的平均值,从而获得其ISN的增加规律。
(2)在获得主机A的ISN值和增加规律后,立即进行入侵(因为一旦在这期间有其他主机与主机A进行连接,主机A的ISN值将会比实现获得的ISN增加64000)。即构造虚假的TCP数据包并发送给主机A。如果此次攻击所估计的ISN是正确的,那么,这些数据包将被缓存到主机A的缓冲区中。如果估计的值小于真正的ISN值,那么,这些数据包将会被丢弃;如果估计值大于真正值,并且载入缓冲区的大小之内,这个数据包也会被缓存起来,该TCP连接会继续等待其他“缺少”的数据,如果不在缓冲区之内,主机A将会丢弃数据包并返回一个带有其期望得到的序列号的数据包。
以利用rlogin实现IP欺骗为例,其欺骗过程为:攻击者先获取主机A的信任方主机B的IP地址,然后向主机A发送带有SYN表示的数据段请求连接,并将该请求数据包中的源IP地址填写为主机B的IP地址,目的端口则填写为主机A的rlogin的专用TCP端口513。主机A在接收到这个数据包后,向主机B发回SYN+ACK数据段,显然,此时真正的主机B根本无法或不会响应(因为要么主机B没开机,要么主机B已经被攻击者陷入瘫痪状态),而同时,攻击者则马上向主机A发送填写由猜测的ISN的ACK数据包。如果这个ACK数据包中的ISN猜测正确的话,欺骗便成功,连接就正式建立。而此时由于连接建立后所运行的服务是rlogin,那么,攻击者就可以不需要口令等验证而访问主机A了,入侵也就成功了。
TCP的这种可靠性使得并非简单地改变IP数据包中的源IP地址就能够实现IP欺骗。从上面的过程可以看出,要对主机A进行IP欺骗,必须要知道主机A使用的初始序列号ISN。为了防止因为延迟、重传等扰乱三次握手的进行,ISN并不是随意选取的,而且,不同的系统有不同的选取ISN的算法。
由于用于存放序列号的控制字段是32位的,因此,实际上SYN可以看成是一个32位的计算器。初始序列号约每秒增加128000,如果有连接出现,每次连接将把计数器的数值增加到64000,这使得用于表示初始序列号的ISN的32位计数器在没有连接的情况下约每9.32小时便要复位一次。而且,各个系统产生初始序列号的算法又不同,因此,实际上要预测出攻击目标的序列号是非常困难的。可见,IP欺骗虽然从原理上来说是比较切实可行的,但要真正实现IP欺骗却是非常困难的。
3 IP欺骗的防范措施
IP欺骗利用的是IPv4协议本身的缺陷来实现的,解决IP欺骗最根本的方法是施行密码认证机制。目前IPv6虽然能够借助IPSec提供的安全服务有效地防止诸如IP欺骗之类的网络攻击行为,但从IPv4到IPv6的过渡还需要很长的一段时间。因此,目前应该采用有效的检测和防范IP欺骗的措施。从以上的原理分析可以看出,IP欺骗之所以能够实施是因为主机之间的信任主机之间的访问控制是建立在IP地址的验证上,并且,序列号估计是非常难得,其估计精度是欺骗成功与否的关键,针对这些特征,可采用的防范策略有:
(1)禁止建立基于IP地址的信任关系,不采用使用源地址认证的服务系统,而采用基于密码的认证机制。IP欺骗之所以能实现因为目标机有信任的主机可供攻击者冒充,因此,只要主机没有信任对象,就可彻底杜绝IP欺骗。
(2)在路由器上进行过滤处理。但是,这种过滤措施只能减少IP欺骗发生的可能性,并不能从根本上杜绝其发生。可以在路由器上通过对数据包的监控来检测IP欺骗,如果发现数据包的源IP和目的IP地址都是本地域的地址,就可以肯定有人试图要攻击系统。因为同一个域中的通信是不需要经过路由器的。
(3)数据加密也是阻止IP欺骗的一个有效方法,即在通信时要求加密传输和验证。
(4)采用IP安全协议也是目前防范IP欺骗的主要方法之一,比如S/MIME、Open PGP、SSL、PPTP、IPsec等。
4 总结
IP欺骗是通过伪造来自可信任IP地址的数据包,以使一台主机认证另一台主机的复杂技术。本文深入分析了IP欺骗的原理和实现过程,并指出了一些比较有效的监测防范措施。
摘要:IP欺骗利用IP协议本身的缺陷,利用信任主机之间的访问控制漏洞来实施攻击。本文深入剖析了IP欺骗的原理,分析了IP欺骗攻击的实现过程和特征,并在此基础上给出了一些检测防范措施。
关键词:访问控制,IP欺骗
参考文献
[1]Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated volume 2:The Implementation,北京:机械工业出版社,2000.
[2]Susan Yong Dave Aitel.The Hacker’s Handbook The Strate-gy behind Breaking into and Defending Networks,北京:机械工业出版社,2006.
[3]牛少影,江为强.网络的攻击与防范——理论与实践,北京:北京邮电大学出版社,2006.
IP欺骗攻击 篇2
关键词:防火墙,SYN攻击,RED算法
随着网络的发展,网络攻击的手段越来越多,其中以IP欺骗形式的SYN攻击所占的比例较大,众多的专家学者都致力于研究如何有效控制SYN攻击。也提出了较多的方法,例如状态检测算法,该算法主要是利用TCP连接过程中的几个状态[1],判断是否为攻击性数据包,但是该算法存在一些缺陷,对每个数据包都要检测其状态,而且要保存较多的数据包信息,这对系统的吞吐量和内存都有较大的影响。因此,本实验防火墙致力于提高正常包的通过率,以及系统吞吐量。对于轻度和中度攻击时的系统性能有很大的提高。
1系统相关知识
1.1防火墙
防火墙是防止网络攻击的主要手段之一,目前的防火墙得到很大的发展,它防止外部网络对内部网络的攻击,一个防火墙的参考模型[2]如图1所示。
1.2RED算法
RED算法[3]利用当前队列的平均长度计算数据包的丢弃概率,具体由三个原则确定,如图2所示。
(1)当平均队列长度Lav小于给定的数据包队列长度最小门限值minth时,数据包丢弃概率P=0;
(2)当平均队列长度Lav大于给定的数据包队列长度最大门限值maxth时,数据包的丢弃概率P=1;
(3)当平均队列长度在minth和maxth之间,数据包的丢弃概率在0—1之间。而且P=max{(Q-min)/(maxth-minth)}。
2总体设计
因为IP欺骗形式的SYN攻击,是采用的伪造IP地址和端口,主机发送ACK数据包,攻击机器是不会做出回应的[4]。所以判断正常包就可以让客户机其超时重传,从而检测是否是真实IP。防火墙的设计主要是针对SYN请求数据包,利用RED算法计算当前的TCP连接请求数据包到来时的TCP缓冲区的平均队列长度Q,如果平均队列长度Q小于给定的最小队列门限值minth,则说明当前没有SYN攻击或者只有少数的SYN数据包,这种情况下不会影响本机性能,可以直接接受数据包。如果平均队列长度大于最大门限值maxth,说明当前遭受到较强的SYN攻击,则随机地丢弃数据包。如果平均队列长度在最小门限minth和最大门限值maxth之间,则计算当前数据包的随机丢弃概率P,如果P小于给定的阈值Pm,则接受数据包,如果P大于给定的阈值,则先到哈希表中查找是否存在相同数据包信息的元素(哈希表存放的是被丢弃的数据包的相关信息),如果找到则接受数据包到本机,如果没有找到则保存数据包相关信息到哈希表中,同时丢弃该数据包。如图3所示。
3防火墙关键技术实现
3.1包检测模块
采用RED算法实现对数据包的处理,判断进入到主机的TCP连接请求数据包的丢弃概率,首先要定义RED算法中用到的参数:
队列的平均长度是判断丢弃概率的关键因素,利用函数red_cmp_thresh实现RED算法的队列长度判断,对于不同的返回值,计算丢弃概率。
3.2哈希表
一个TCP连接请求数据包的丢弃概率经过上面的函数计算以后,根据和预定的概率值进行比较,如果概率小于给定的阈值,则接受数据包通过主机,如果概率大于给定阈值,则到哈希表中进行查找,哈希表中存在相同的数据包信息则接受数据包进入主机,如果不存在则删除数据包,同时保存数据包的相关信息到哈希表中。
定义哈希结构PACK_hash,为了方便系统的快速查找,在这里将其定义为大小为4096的哈希数组。
进行哈希函数的查找和插入的哈希函数,可以利用数据包的源地址表示,将源地址的前16位和后16位相加,得到的结果除留余数,具体的函数可以是:
3.3数据包信息结构和定时器
在后面的处理过程中,只用到了数据包的源地址和目的地址,所以可以定义数据包的信息结构:
3.4数据包匹配
数据包在哈希表中查找相应的节点,匹配数据包的源地址和目的地址是否相同。
基于数据包的源IP 地址进行匹配:
4结论
本防火墙的设计采用的拥塞控制算法RED算法,同时利用了哈希表相关知识。构建了一个简单实用的小型防止IP地址欺骗的SYN攻击的防火墙,经过实验测试,该防火墙在轻度和中度攻击时,有较好的防御能力,正常包的通过率保持在98%左右,系统性能也较好,吞吐量也较大。
参考文献
[1]毛德操,胡希明.Linux内核源代码情景分析.杭州:浙江大学出版社,2001
[2]周剑岚,冯珊.运用hook技术实现的软件防火墙.华中科技大学学报(自然科学版),2004;32(3):83—85
[3]陈军,陈志刚.主动队列管理RED算法的改进与实验仿真研究.计算机工程,2006;9(6):44—47
[4] Potter B.Open source firewall alternatives.Network Security,2006;18(6):16—17
DNS欺骗攻击及其防护研究 篇3
关键词:DNS,欺骗攻击,防护研究
0 引言
域名系统 (Domain Name System, DNS) 是一个将Domain Name和IP Address进行互相映射的Distributed Database。DNS是网络应用的基础设施, 它的安全性对于互联网的安全有着举足轻重的影响。但是由于DNS Protocol在自身设计方面存在缺陷, 安全保护和认证机制不健全, 造成DNS自身存在较多安全隐患, 导致其很容易遭受攻击。很多专家就DNS Protocol的安全缺陷提出了很多技术解决方案。例如IETF提出的域名系统安全协议 (Domain Name System Security, DNSSEC) , 其目标就在于解决这些安全隐患。这个Protocol增加了安全认证项目, 增强了Protocol自身的安全功能。但是新增加的安全机制需要占用更多的系统和网络资源, 同时要升级Database和System Manggament Software, 这些基于DNSSEC协议的软件还不成熟, 距离普及应用还有较长时间。目前, 常见的措施是定期升级DNS软件和加强相关的安全配置, 禁用不安全的端口等。本文对以侦听为基础的DNS ID欺骗 (DNS ID spoofing) 进行了探讨, 并提出了相关的防护解决方案。
1 DNS SERVER的服务工作过程
DNS是一种实现Domain Name和IP Address之间转换的系统, 它的工作原理就是在两者间进行相互映射, 相当于起到翻译作用, 所以称为域名解析系统。DNS System分为Server和Client两部分, Server的通用Port是53。当Client向Server发出解析请求时, Local DNS Server第一步查询自身的Database是否存在需要的内容, 如果有则发送应答数据包并给出相应的结果;否则它将向上一层DNS Server查询。如此不断查询, 最终直至找到相应的结果或者将查询失败的信息反馈给客户机。如果Local DNS Server查到信息, 则先将其保存在本机的高速缓存中, 然后再向客户发出应答。日常我们上网是通过Browser方式来申请从Domain Name到IP Address的解析, 即Client向DNS Server提交域名翻译申请, 希望得到对应的IP Address。这里以笔者所在院校为例, 说明DNS的工作原理。
例如Client的Address为10.252.2.16, 学校DNS Server为218.30.19.40, 从此客户机来访问西安财经学院网站。在地址栏键入学校网站的www.xaufe.edu.cn, 通过DNS Server查找其对应的IP Address。这个申请从10.252.2.16的一个随机PORT发送出去, 由218.30.19.40的53绑定端口接收到此申请并进行翻译, 首先在218.30.19.40的高速缓存中查找www.xaufe.edu.cn的IP Address, 若存在对应的映射关系, 就直接将IP Address发送给客户机, 若缓存中没有, 则218.30.19.40会向上层DNS SERVER查询, 最后将查询到的结果先发送到218.30.19.40, 最后由218.30.19.40将西安财经学院的IP Address (281.195.32.1) 返回给Client 10.252.2.16。这样10.252.2.16就可以和西安财经学院站点建立连接并访问了, 其具体过程如图1所示。
2 DNS欺骗攻击原理
2.1 欺骗原理
Client的DNS查询请求和DNS Server的应答数据包是依靠DNS报文的ID标识来相互对应的。在进行域名解析时, Client首先用特定的ID号向DNS Server发送域名解析数据包, 这个ID是随机产生的。DNS Server找到结果后使用此ID给Client发送应答数据包。Client接收到应答包后, 将接收到的ID与请求包的ID对比, 如果相同则说明接收到的数据包是自己所需要的, 如果不同就丢弃此应答包。根据攻击者的查询和应答原理, 可使用不同方法实现攻击, 如:
(1) 因为DNS Message仅使用一个简单的认证码来实施真实性验证, 认证码是由Client程序产生并由DNS Server返回结果的, 客户机只是使用这个认证码来辨别应答与申请查询是否匹配, 这就使得针对ID认证码的攻击威胁成为可能。
(2) 在DNS Request Message中可以增加信息, 这些信息可以与客户机所申请查询的内容没有必然联系, 因此攻击者就能在Request Message中根据自己的目的增加某些虚假的信息, 比如增加其它Domain Server的Domain Name及其IP Address。此时Client在受到攻击的Domain Server上的查询申请均被转向此前攻击者在Request Message中增加的虚假Domain Server, 由此DNS欺骗得以产生并对网络构成威胁。
(3) 当DNS Server接收到Domain Name和IP Address相互映射的数据时, 就将其保存在本地的Cache中。若再有Client请求查询此Domain Name对应的IP Address, Domain Server就会从Cache中将映射信息回复给Client, 而无需在Database中再次查询。如果黑客将DNS Request Message的存在周期设定较长时间, 就可进行长期欺骗。
2.2 DNS欺骗攻击的方式
DNS欺骗技术常见的有内应攻击和序列号攻击两种。内应攻击即黑客在掌控一台DNS Server后, 对其Domain Database内容进行更改, 将虚假IP Address指定给特定的Domain Name, 当Client请求查询这个特定域名的IP时, 将得到伪造的IP。
序列号攻击是指伪装的DNS Server在真实的DNS Server之前向客户端发送应答数据报文, 该报文中含有的序列号ID与客户端向真实的DNS Server发出请求数据包中含有的ID相同, 因此客户端会接收该虚假报文, 而丢弃晚到的真实报文, 这样DNS ID序列号欺骗成功。客户机得到的虚假报文中提供的域名的IP是攻击者设定的IP, 这个IP将把客户带到攻击者指定的站点。
2.3 DNS 序列号欺骗攻击原理
DNS 序列号 (ID) 欺骗以侦测ID和Port为基础。在Switch构建的网络中, 攻击方首先向目标实施ARP欺骗。当Client、攻击者和DNS Server同在一个网络时, 攻击流程如下:①攻击方向目标反复发送伪造的ARP Request Message, 修改目标机的ARP 缓存内容, 同时依靠IP续传使Data经过攻击方再流向目的地;攻击方用Sniffer软件侦测DNS请求包, 获取ID序列号和Potr;②攻击方一旦获得ID和Potr, 即刻向客户机发送虚假的DNS Request Message, Client接收后验证ID和Potr正确, 认为接收了合法的DNS应答;而Client得到的IP可能被转向攻击方诱导的非法站点, 从而使Client信息安全受到威胁;③Client再接收DNS Server的Request Message, 因落后于虚假的DNS响应, 故被Client丢弃。当Client访问攻击者指向的虚假IP时, 一次DNS ID欺骗随即完成。
3 DNS欺骗检测和防范思路
3.1 检测思路
发生DNS欺骗时, Client最少会接收到两个以上的应答数据报文, 报文中都含有相同的ID序列号, 一个是合法的, 另一个是伪装的。据此特点, 有以下两种检测办法:
(1) 被动监听检测。即监听、检测所有DNS的请求和应答报文。通常DNS Server对一个请求查询仅仅发送一个应答数据报文 (即使一个域名和多个IP有映射关系, 此时多个关系在一个报文中回答) 。因此在限定的时间段内一个请求如果会收到两个或以上的响应数据报文, 则被怀疑遭受了DNS欺骗。
(2) 主动试探检测。即主动发送验证包去检查是否有DNS欺骗存在。通常发送验证数据包接收不到应答, 然而黑客为了在合法应答包抵达客户机之前就将欺骗信息发送给客户, 所以不会对DNS Server的IP合法性校验, 继续实施欺骗。若收到应答包, 则说明受到了欺骗攻击。
3.2 防范思路
在侦测到网络中可能有DNS欺骗攻击后, 防范措施有:①在客户端直接使用IP Address访问重要的站点, 从而避免DNS欺骗; ②对DNS Server和Client的数据流进行加密, Server端可以使用SSH加密协议, Client端使用PGP软件实施数据加密。
对于常见的ID序列号欺骗攻击, 采用专业软件在网络中进行监听检查, 在较短时间内, 客户端如果接收到两个以上的应答数据包, 则说明可能存在DNS欺骗攻击, 将后到的合法包发送到DNS Server并对DNS数据进行修改, 这样下次查询申请时就会得到正确结果。
4 DNS防护方案
4.1 进行IP地址和MAC地址的绑定
(1) 预防ARP欺骗攻击。
因为DNS攻击的欺骗行为要以ARP欺骗作为开端, 所以如果能有效防范或避免ARP欺骗, 也就使得DNS ID欺骗攻击无从下手。例如可以通过将Gateway Router 的Ip Address和MAC Address静态绑定在一起, 就可以防范ARP攻击欺骗。
(2) DNS信息绑定。
DNS欺骗攻击是利用变更或者伪装成DNS Server的IP Address, 因此也可以使用MAC Address和IP Address静态绑定来防御DNS欺骗的发生。由于每个Network Card的MAC Address具有唯一性质, 所以可以把DNS Server的MAC Address与其IP Address绑定, 然后此绑定信息存储在客户机网卡的Eprom中。当客户机每次向DNS Server发出查询申请后, 就会检测DNS Server响应的应答数据包中的MAC Address是否与Eprom存储器中的MAC Address相同, 要是不同, 则很有可能该网络中的DNS Server受到DNS欺骗攻击。这种方法有一定的不足, 因为如果局域网内部的客户主机也保存了DNS Server的MAC Address, 仍然可以利用MAC Address进行伪装欺骗攻击。
4.2 使用Digital Password进行辨别
在不同子网的文件数据传输中, 为预防窃取或篡改信息事件的发生, 可以使用任务数字签名 (TSIG) 技术即在主从Domain Name Server中使用相同的Password和数学模型算法, 在数据通信过程中进行辨别和确认。因为有Password进行校验的机制, 从而使主从Server的身份地位极难伪装, 加强了Domain Name信息传递的安全性。
安全性和可靠性更好的Domain Name Service是使用域名系统的安全协议 (Domain Name System Security, DNSSEC) ) , 用Digital Signature的方式对搜索中的信息源进行分辨, 对DATA的完整性实施校验, DNSSEC的规范可参考RFC2605。因为在设立Domain时就会产生Password, 同时要求上层的Domain Name也必须进行相关的Domain Password Signature, 显然这种方法很复杂, 所以InterNIC域名管理截至目前尚未使用。然而就技术层次上讲, DNSSEC应该是现今最完善的Domain Name设立和解析的办法, 对防范Domain Name欺骗攻击等安全事件是非常有效的。
4.3 优化DNS SERVER的相关项目设置
对于DNS Server的优化可以使得DNS的安全性达到较高的标准, 常见的工作有以下几种:①对不同的子网使用物理上分开的Domain Name Server, 从而获得DNS功能的冗余;②将外部和内部Domain Name Server从物理上分离开并使用Forwarders转发器。外部Domain Name Server可以进行任何客户机的申请查询, 但Forwarders则不能, Forwarders被设置成只能接待内部客户机的申请查询;③采用技术措施限制DNS动态更新;④将区域传送 (zone transfer) 限制在授权设备上;⑤利用事务签名对区域传送和区域更新进行数字签名;⑥隐藏服务器上的Bind版本;⑦删除运行在DNS服务器上的不必要服务, 如FTP、telnet和Http;⑧在网络外围和DNS服务器上使用防火墙, 将访问限制在那些DNS功能需要的端口上。
4.4 直接使用IP地址访问
对个别信息安全等级要求十分严格的WEB站点尽量不要使用DNS进行解析。由于DNS欺骗攻击中不少是针对窃取客户的私密数据而来的, 而多数用户访问的站点并不涉及这些隐私信息, 因此当访问具有严格保密信息的站点时, 可以直接使用IP地址而无需通过DNS解析, 这样所有的DNS欺骗攻击可能造成的危害就可以避免了。除此, 应该做好DNS Server的安全配置项目和升级DNS软件, 合理限定DNS Server进行响应的IP地址区间, 关闭DNS Server的递归查询项目等。
4.5 对DNS数据包进行监测
在DNS欺骗攻击中, Client会接收到至少两个DNS的数据响应包, 一个是真实的数据包, 另一个是攻击数据包。欺骗攻击数据包为了抢在真实应答包之前回复给Client, 它的信息数据结构与真实的数据包相比十分简单, 只有应答域, 而不包括授权域和附加域。因此, 可以通过监测DNS响应包, 遵循相应的原则和模型算法对这两种响应包进行分辨, 从而避免虚假数据包的攻击。
5 结束语
本文对DNS解析及DNS欺骗的原理进行了阐述, 对DNS欺骗攻击的方式、检测和防范的思路进行了探讨, 最后给出了一些预防DNS欺骗的常见方法。相信这些方案的应用, 可以大大提高DNS的安全性和可靠性。但网络的发展和应用日新月异, 在实践中还要不断紧跟技术变化的步伐, 不断学习和总结才能有效抵御各种新类型的DNS故障。
参考文献
[1]滕步炜.DNS欺骗技术的实现[J].连云港职业技术学院学报, 2007 (12) .
[2]闫伯儒, 方滨兴, 李斌, 等.DNS欺骗攻击的检测和防范[J].计算机工程, 2006 (21) .
[3]孔政, 姜秀柱.DNS欺骗原理及其防御方案[J].计算机工程, 2010 (2) .
IP欺骗攻击 篇4
目前, 利用ARP欺骗进行的网络攻击十分普遍, 然而, 随着网络管理防范意识的加强和各种防范ARP攻击措施如MAC与IP双绑定, PC安装ARP防火墙的实行, ARP攻击变的不再那么容易。可以说, ARP攻击和防御手段都已经日趋成熟。然而, 笔者目前发现交换环境下一种不同于A R P攻击的新的M A C欺骗攻击方式出现, 可以轻易的绕过A R P防火墙使现有的一些ARP攻击防范措施失效。
1 传统的ARP欺骗攻击分析
1.1 ARP欺骗攻击的原理
1.1.1 ARP协议原理
ARP协议 (Address Resolution Protocol) 即地址解析协议, 是局域网中解决I P地址到硬件M A C地址映射的协议。在TCP/IP参考模型中, IP地址只是主机在网络中的逻辑地址, 若将网络层中传输的数据报交给目的主机, 必须知道该目的主机的物理地址 (MAC地址) , 这是因为二层的以太网交换设备并不能识别32位的IP地址, 而是以48位的物理地址 (MAC地址) 传输以太网帧的;因此IP地址与MAC地址之间就必须存在一种对应关系, 并且计算机中应当存放这种对应关系的转换表, 同时能够进行动态更新, 而ARP协议就很好地解决了这些问题。
ARP协议工作的过程是:数据报时, 在其ARP表中查看有无主机B的IP地址。如有, 即可查出对应的MAC地址, 然后, 将该数据报发往此MAC地址。在查不到主机B的IP地址的情况下, 主机A就自动运行ARP, 并按照以下步骤找出主机B的M A C地址。
(1) A R P进程在本局域网上广播发送一个A R P请求分组, 此分组上有主机B的IP地址, 也有主机A自身IP到MAC地址的对应关系。
(2) 在本局域网中的所有主机上运行的ARP进程都收到此ARP请求分组。
(3) 主机B在ARP请求分组中见到自己的IP地址, 就向主机A以单播的形式发送一个A R P响应分组, 写入自己的MAC地址, 同时, 主机B将请求分组当中的主机A的IP地址到M A C地址的对应关系写入自己的A R P表当中。
(4) 主机A在收到主机B的ARP响应分组后, 就在其ARP表中写入主机B的IP地址到MAC地址的对应关系。
如上所述, ARP协议可以很好的保证同一网段内主机之间或者与网关之间的通信, 但是, ARP协议是基于网络之中所有的主机或者网关都是可以信任的前提工作的, ARP协议中缺乏认证机制, 局域网内的任何一台主机都可以随意的伪造ARP包, 因此, 针对ARP协议的攻击是很容易的。
1.1.2 ARP攻击过程
(1) 攻击者可在两台正在通信的主机A, B之间充当中间人 (man-in-the-middle) , 假冒主机B的IP地址, 而MAC地址为攻击者的M A C地址来欺骗主机A将数据发往攻击者的机器, 并且攻击者可开启IP路由功能, 将数据包再转发至主机B。同样, 对主机B可实施类似的欺骗, 因此, 主机A, B之间的所有通信内容都被攻击者窃听。
(2) 对主机A发送伪造的ARP应答报文, 假冒主机B的IP地址, 但MAC地址设为不存在的一个硬件地址, 主机A接收此报文后错误地刷新ARP高速缓存中主机B的IP地址与MAC地址的映射关系, 导致主机A与主机B的网络通信中断。这种方法属于拒绝服务 (Denial of Service, DoS) 攻击, 网络上流行的网络执法官等软件就是采用ARP欺骗机制, 发送错误的网关M A C地址给非法用户, 使其通信中断。
1.2 ARP欺骗攻击的防范
针对ARP欺骗, 解决办法有很多, 目前主要有主机与交换机双向的MAC地址绑定, 在PC端使用ARP防火墙等防护软件。
主机与交换机双向的MAC地址绑定是针对ARP欺骗动态实时更新的特点, 将IP和MAC静态绑定。在网关和主机都进行IP和MAC的绑定, 这样双向绑定令ARP欺骗无从进行。
ARP防火墙等防护软件一般有被动和主动防御的功能。被动防御方式中根据预先设定的网关静态的IP和MAC的绑定, 拦截伪ARP包, 保护ARP缓存, 从而实现保护。而主动防御方式则是在网络上不断广播主机正确的IP和MAC, 从而令伪ARP包建立的错误IP-MAC映射无法存在, 但会给这种方式网络带来一定负荷。
2 MAC欺骗攻击的分析
2.1 MAC欺骗攻击的原理
在交换环境中, 接入层交换机的转发过程是这样的:交换机的一个端口收到一个数据帧时, 首先检查改数据帧的目的MAC地址在MAC地址表 (CAM) 对应的端口, 如果目的端口与源端口不为同一个端口, 则把帧从目的端口转发出去, 同时更新M A C地址表中源端口与源M A C的对应关系;如果目的端口与源端口相同, 则丢弃该帧。交换机可以识别数据包中的M A C地址信息, 根据M A C地址进行转发, 并将这些MAC地址与对应的端口记录在自己内部的一个地址表中 (如图1) 。具体的工作流程如下:
(1) 当交换机从某个端口收到一个数据包, 它先读取包头中的源M A C地址, 这样它就知道源M A C地址的机器是连在哪个端口上的。
(2) 再去读取包头中的目的MAC地址, 并在地址表中查找相应的出往端口。
(3) 如表中有与这目的MAC地址对应的端口, 把数据包直接复制到这端口上。
(4) 如表中找不到相应的端口则把数据包广播到所有端口上, 当目的机器对源机器回应时, 交换机又可以学习一目的MAC地址与哪个端口对应, 在下次传送数据时就不再需要对所有端口进行广播了。
不断地循环这个过程, 对于全网的MAC地址信息都可以学习到, 交换机就是这样建立和维护它自己的地址表, 这是交换机的基本工作过程 (如图1) 。
现有如下的工作场景:一个4口的switch, 端口分别为Port.A、Port.B、Port.C、Port.D对应主机A, B, C, D, 其中D为网关。当主机A向B发送数据时, A主机按照OSI往下封装数据帧, 过程中, 会根据IP地址查找到B主机的MAC地址, 填充到数据帧中的目的MAC地址。发送之前网卡的MAC层协议控制电路也会先做个判断, 如果目的MAC相同于本网卡的MAC, 则不会发送, 反之网卡将这份数据发送出去。Port.A接收到数据帧, 交换机按照上述的检查过程, 在MAC地址表发现B的MAC地址 (数据帧目的MAC) 所在端口号为Port.B, 而数据来源的端口号为Port.A, 则交换机将数据帧从端口Port.B转发出去。B主机就收到这个数据帧了。这个寻址过程也可以概括为IP->MAC->PORT, ARP欺骗是欺骗了IP/MAC的对应关系, 而MAC欺骗则是欺骗了MAC/PORT的对应关系。
2.2 MAC欺骗攻击过程
工作环境为上述的4口swith, 和ARP攻击类似, 攻击者可在两台正在通信的主机A, B之间充当中间人 (man-in-themiddle) , 这里, 是A主机劫持B主机和网关之间通信的数据。
首先, A发送任意da=网关.mac、sa=B.mac的数据包到网关。这样就表明b.mac对应的是port.a, 在一段时间内, 交换机会把发往b.mac的数据帧全部发到a主机。这个时间一直持续到b主机发送一个数据包, 或者另外一个da=网关.mac、sa=b.mac的数据包产生前。接下来, A主机收到网关发给B的数据, 记录或修改之后要转发给B, 在转发前要发送一个请求B.MAC的广播, 这个包是正常的MAC信息为:da=FFFFFFFFFF、sa=a.mac。这个数据帧表明了a.mac对应port.a, 同时会激发b主机响应一个应答包MAC信息为:da=a.mac、sa=b.mac这个数据帧表明了b.mac对应port.b至此, 对应关系已经恢复, A主机将劫持到的数据可顺利转发至B。只要A主机保持高发包的频率, 保持错误的映射关系, 就能成功的对交换机欺骗从而不断的获得本该发送给B主机的数据包。而如果A主机没有将数据转发B主机的过程, 这就变成一种拒绝服务攻击, B主机的网络连接就将受到影响。
2.3 MAC欺骗攻击的危害及防御措施
和A R P欺骗攻击类似, 这种M A C欺骗攻击也会造成各种危害, 如通过拒绝服务攻击造成网络的混乱甚至瘫痪。如果攻击主机截取数据再加以修改转发, 利用部分主机IE浏览器等漏洞, 或者通过网页挂马等方式在网络中传播, 窃取网络中用户的数据, 将直接威胁网络信息安全。
由于这种M A C欺骗攻击方式并非利用A R P地址解析协议的漏洞, 而是针对交换机PORT-MAC映射关系的欺骗, 因此, 针对传统ARP欺骗的一些防御措施比如IP-MAC双绑定, ARP防火墙等方式无法防御这种攻击。为防御这种攻击方式, 可以采取划分静态VLAN的方式, 减小其危害。如果要从根本上解决这种攻击, 针对其攻击的原理只有在交换机上进行IP-MAC-PORT的绑定。但如果采用的是现在接入层大量应用的自适应交换机, 无法进行绑定操作的话, 这种攻击将很难防范。
3 结语
本文所讨论的这种攻击方式, 尚未如ARP欺骗攻击那样被病毒利用大规模的流行, 但已经出了一些利用这种方式进行嗅探和劫持的软件。为了网络信息的安全, 网络管理员应认真分析攻击的特点, 加强安全防范, 保护网络系统的信息安全。
参考文献
[1]谢希仁.计算机网络[M].北京:电子工业出版社.2003.
[2]任斌.ARP攻击分析及防御解决方法[J].长春工程学院学报 (自然科学版) .2008.
通过帧过滤自动防御ARP欺骗攻击 篇5
ARP欺骗攻击病毒的泛滥严重干扰网络的正常运行, 防治ARP欺骗攻击病毒成为网管人员的一项重要任务。病毒利用了一种通过ARP欺骗实现网络监听的技术。当LAN过渡到单播式交换型以太网之后, 基于广播式以太网的监听技术就失效了。但是很快有人发明了通过ARP欺骗在交换型以太网实现监听的技术。这种技术利用了ARP协议固有的两个漏洞:一是ARP协议缺乏身份认证的机制, 欺骗者可以构造假冒的ARP帧来假冒其它用户;二是利用免费ARP, 欺骗者可以随时广播假冒的ARP帧方便地实施假冒行为。图1是这种技术的原理图。C代表监听者, 它想监听A、B之间的通信。C事先向A发送假冒的免费ARP帧, 将自己假冒为B;同时向B发送假冒的免费ARP帧, 将自己假冒为A。这样A原本要发送给B的帧将错误地发送给C;B原本要发送给A的帧将错误地发送给C。C得以成功地拦截A、B之间的通信。为了防止监听行为被发现, C在A和B之间拦截数据的同时, 也中转A、B之间的帧。在A和B看来, 似乎一切正常。当然, 监听者也可以在转发帧前篡改帧, 或者有选择地丢弃某些帧, 以达到某种不可告人的目的。
ARP病毒不仅危害主机的安全, 而且会影整个LAN的正常运行, 甚至会使整个LAN瘫痪。经过分析, 主要原因如下: (1) ARP病毒要中转LAN内所有主机和网关之间的数据流, 这是个很大的开销。主机的处理能力有限, 如果流量大到感染病毒的主机一时无法处理, 来不及处理的数据要么延迟超时, 要么被丢弃掉, 这样就会出现掉线的情况。 (2) 当网络有多台主机中了ARP欺骗攻击病毒, 可能出现一些无法意料的情况, 比如形成数据传输环路, 生成大量数据垃圾, 堵塞网络。 (3) 病毒本身的Bug导致数据中转过程出现问题。不少病毒的框架代码是从网上下载的, 这些框架代码是演示性的, 并不完善。如果病毒编写者直接引用这些代码, 不加完善, 出问题是很正常的。如果帧中转机制出了问题, 出现掉线的情况就不奇怪了。
2 ARP欺骗攻击的检测
这种攻击的检测非常简单, 网络管理员可以在网关设备上显示ARP表来确定ARP欺骗攻击的存在。图2是个发生ARP欺骗攻击时的例子, 我们可以看到大量IP地址对应于同一个物理地址0090-2742-1c05, 这就是中了病毒的主机的物理地址, 它将许多其它IP地址对应的物理地址篡改成了它自己的物理地址。
3 ARP欺骗攻击的防治策略
查杀病毒是治本的方法。通过检查ARP表, 可以迅速获得中病毒主机的MAC地址。如果对主机的MAC地址做了登记, 可以很快的查出出问题的主机, 通知机主立即中断主机与网络的连接, 查杀病毒。只有当病毒清除完毕之后才可以恢复与网络的连接。
但是, 查找和清理病毒需要时间;有些不自觉的机主不积极配合也是个很大的问题。在病毒清除之前, 网络可能长时间出于瘫痪状态。所以还需要辅之以其它的一些手段。
从图1可以看出, 如果主机和网关采用静态绑定IP地址和MAC地址的方法可以有效的防止ARP欺骗攻击。为了防止病毒假冒网关的物理地址, 主机可以手工绑定网关的IP地址和它的物理地址。比如, Windows系统通过下面的命令将IP地址157.55.85.212和物理地址00-aa-00-62-c6-09绑定起来。
另外, 一些安全工具具备自动绑定网关IP地址和MAC地址的功能, 即使不熟练的用户也可以使用。
不过这只是解决了一半的问题, 网关也需要将LAN内的各个主机的IP地址和它们的物理地址绑定起来。这才是问题的关键, 因为在网关上绑定地址不是那么简单。网络中的主机如果很多, 工作量将特别大。而且, 一旦绑定工作完成, 新增用户、用户更换网卡或者修改IP地址都需要增加绑定关系或者修改绑定关系, 对于用户和网管人员来说都非常麻烦。
最好的解决方案是给网关设备开发抵抗ARP欺骗攻击的能力。随着ARP欺骗攻击日益普遍, 一些设备厂商开发了抵抗ARP欺骗攻击的技术, 作为产品的卖点。如果网络采用DHCP方式分配IP地址的话, 可以考虑采用DHCP Snooping技术。DHCP Snooping也是一种构建ARP表的技术, 但是它不是通过ARP协议。DHCP Snooping通过检测可信DHCP Server为主机分配IP地址的帧 (其中包含主机的物理地址和DHCP Server为它分配的IP地址) 来发现IP地址和物理地址的映射关系, 由此构建ARP表。由于它不是基于ARP协议的, 自然对ARP欺骗攻击免疫。可惜的是这种解决方案不具备通用性, 一是不是所有的网络都是采用DHCP来分配IP地址;二是这种方案对设备的要求高, 它需要将所有接入层交换机更换为支持DHCP Snooping的交换机, 代价太高了。
4 通过帧过滤防止病毒“污染”ARP表
在经过了一段时间的对付ARP欺骗攻击的实践后, 我们发现过滤假冒ARP帧是一种防止病毒"污染"网关设备ARP表的有效方法。它具备代价小, 响应速度快的特点。
它的原理如下: (1) 发现攻击源的MAC地址; (2) 配置帧过滤规则, 拒绝接受来自攻击源的ARP帧; (3) 清除ARP表中和攻击源有关的条目
通过上述步骤, 交换机不再接收任何来自攻击源的ARP帧, 攻击源也就无法污染交换机的ARP表了。下面以华为6509交换机为例, 介绍具体的实现方法。
发现攻击源MAC地址的方法在第二节已经介绍过了, 方法是搜索ARP表, 查找有多个条目的MAC地址。显示ARP表的命令是:disparp
要启用帧过滤模式, 首先要开启帧过滤模式, 相应的命令是:acl mode link-based
然后创建一个用于帧过滤的访问控制列表 (ACL) :acl name antiarpcheat link
上面的命令添加了一条名为antiarpcheat的帧过滤ACL。然后可以在这个ACL中加入对应的过滤规则, 比如:
acl name antiarpcheat link
rule 1 deny arp ingress 5078-4c71-194e
为名为antiarpcheat的ACL加入一条规则, 拒绝接受来自5078-4c71-194e的任何ARP帧。这条规则要起作用, 还需应用到对应的端口上 (端口号可以从ARP表中获得) , 比如:
接下来应该清除攻击源在ARP表中的假冒条目。可惜的是各种交换机都没有清除动态ARP条目的命令, 所以也无法实现这个功能了。不过这不是什么问题, 一旦攻击源的干扰消失, 通过超时和更新机制, ARP表会逐渐恢复正常的状态。
5 程序实现
程序采用Borland C++Builder 4.0开发, 采用图形化界面, 运行于Windows平台。程序有一个主窗口, 用来显示运行中的各种状态、操作和报警信息。程序菜单包括以下命令:
开始:连接并登录到交换机上, 然后启动定时器, 定时间隔默认是10秒。当定时时间到达后, 程序向交换机发送"disp arp"命令, 获得完整的ARP表。如果搜索ARP表发现可疑攻击源, 将发送警报 (通过声音报警并显示在主窗口内) , 并按照第4节介绍的方法构造过滤规则并应用到相应的端口上, 最后将操作显示于主窗口并记录于日志文件中。
停止:关闭定时器, 关闭到交换机的连接。
解除过滤:如果攻击源的病毒被清除, 需要解除对它的过滤。这个命令弹出一个对话框, 供管理员选择要解除过滤的主机MAC地址。当管理员选择好MAC地址并确定后, 程序负责将响应的过滤规则删除掉。
查看日志:显示程序运行日志信息。
选项:用于配置程序的各类选项, 包括定时器间隔、交换机IP地址和账号信息等参数的配置。
一般地, 这个程序运行在网络中心的工作站上。
摘要:本文介绍了ARP cheat attack的原理和危害, 讨论了ARP欺骗攻击的检测和防治策略, 特别是通过帧过滤程序自动防止这种攻击。
关键词:ARP欺骗攻击,防御,帧过滤
参考文献
[1]rfc-826-Ethernet Address Resolution Protoco
典型网络欺骗攻击原理及防范的研究 篇6
伴随着网络应用的不断发展,网络安全问题层出不穷。正是由网络本身具有的开放性、互联性、多样性以及不均匀性等特征,使其极易受到各种攻击;因此,如何保障网络的安全是当前面临的首要问题。
网络欺骗攻击就是利用网络存在的安全缺陷进行攻击。在实施攻击的过程中,攻击方会极力想办法得到网络的信任,其原因是网络操作都是倾向于可信系统[1]。一旦建立乐信任关系,受信系统的管理员就能够实施工作并维护相应的系统安全级别。通常,如果一个系统A是受到另一个系统B的信任的,此时若有一个系统C假装成B,则C就轻易地获得B的一些权力。
2 几种主要的网络欺骗攻击
2.1 ARP欺骗攻击
ARP协议的主要功能是将IP地址转换成对应的MAC地址,依靠在内存中保存的转换表让IP能够在网络中获得目标主机的响应。在ARP协议中,为了减少数据的通信的数据量,主机会将收到的ARP应答包插入到自己的ARP缓存表中,不论这个包是否是自己所请求的,如此便使ARP欺骗实施成为可能[2]。如图1所示,若攻击者想获知网络中两个用户间的通信,向两个用户主机发送一个ARP应答包,此时两个用户都会将攻击者的主机MAC地址误以为是对方的MAC地址。如此一来,攻击者便可以获知双方通信的内容,通信双方看似直接通信的过程,中间实际都是通过攻击者的主机来间接实施的[3]。
2.2 DNS欺骗攻击
域名系统(DNS)是一种分布式数据库,主要用于实现主机名和IP地址的转换,是广大网络应用的基础。然而协议本身存在的设计缺陷且没有适当的信息保护和认证机制,导致DNS极易受到攻击[4]。在DNS解析过程中,客户端先向DNS服务器发送查询数据包,随后服务器将查询结果用相同的ID号发回给客户端。客户端将响应数据包的ID与之前发送的查询包的ID进行比较,若一致,则说明此响应数据包正是自己的。在此过程中,若攻击者假冒DNS服务器提前给客户端发送响应数据包,客户端收到的域名对应的IP地址就可由攻击者指定了,当客户端访问所需网站时实际上访问到的是攻击者指定的网站[5]。攻击过程如图2所示。
2.3 IP欺骗攻击
IP欺骗是一种伪造数据包源IP地址的攻击,即是向目标主机发送源地址非本机IP地址的数据包。攻击的简要过程如图3所示,攻击方X对目标B实施拒绝服务攻击使其崩溃无法应答,随后向A发送源地址为B的数据包,尝试与A建立连接,从而达到欺骗的目的。
3 网络欺骗攻击的防御
3.1 ARP欺骗攻击的防御及测试
在ARP欺骗攻击过程中需同时欺骗网络中的其他主机和网关交换机,从而实施“中间人攻击”。可以从以下方面进行控制:
(1)将网管的ARP表项绑定到用户的主机上,防止中间攻击者的arp relay报文更新用户的网管ARP表。
(2)将用户主机的ARP表绑定到网关交换机,防止中间攻击者的arp relay报文更新网关交换机的ARP表。
防御ARP攻击的方法很多,例如:
(1)在交换机上阻止“中间人攻击”。通常,在支持网管的交换机上都能绑定用户的ARP,通过端口的port security将端口上的可学习MAC数及用户主机的MAC地址进行绑定,或使用dhcp snooping将用户主机的IP地址和MAC地址进行绑定。
(2)在用户主机上控制“中间人攻击”。在接入交换机上启用pvlan或者port-isolated功能隔离不同用户,从而使被攻击主机的arp relay不能发给网络上其他主机。
(3)在端口开启802.1x认证,利用802.1x客户端实现二层网络的用户认证,将帐号、端口及MAC等信息和用户终端绑定,从而防止中毒的主机侵入内部网络。
实验测试环境如图4,在网络中用户主机上不能ping通公网地址,有的主机甚至ping不通自己的网关。
在核心交换机上抓取的数据包如下:
从故障的表现及抓包的情况可以判定是受到ARP攻击;随后,将连接发送大量ARP数据包主机的交换机断电,网络上其他用户能够正常上网。为了防止再次受到类似攻击,可以采取如下措施:
1)在每个接入交换机上进行MAC绑定,对端口的接入主机数进行设定。
2)在核心交换机上实施IP与MAC绑定,阻止虚假arp数据进入网络;同时,开启抑制广播风暴功能,防止核心交换机因内存或CPU占用过高影响接入交换机工作。
3)在防火墙上布置安全策略。
4)在有访问权限的主机上做一个批处理,将本机IP与MAC进行绑定,同时将本机网关的IP与MAC绑定。设置开机启动该批处理程序。
3.2 DNS欺骗攻击的防御
DNS欺骗攻击的实现主要包括中间人攻击和缓存投毒攻击两种形式,其中中间人攻击主要针对的对象是DNS查询客户端。防御DNS欺骗攻击,必须要同时保护DNS客户端和DNS服务器。由此,给出防御DNS欺骗的解决方法如下:
(1)对于网络中有设定的DNS服务器,要及时更新服务器的版本,将动态更新和区域传输范围进行限制。
(2)对用户主机来说,防御DNS的主要措施有如下几点:1)禁用主机DNS缓存;2)给主机指定DNS服务器和本地UDP端口号。通过指定UDP端口号,防火墙的设置更加精确,从而能够进一步提高整体安全性。
3.3 IP欺骗攻击的防御
IP欺骗攻击的原理比较简单,但实际实施却很困难,需要进行序列号猜测和建立信任关系等过程。然而要成功实施IP欺骗也不无可能,因此,也要对IP欺骗攻击进行防范,主要方法有:
1)尽量不要使用源地址认证的服务系统以及基于IP的认证机制,对于远程Telnet服务考虑由SSH替代。
2)在边界路由器上采取源地址过滤措施,检查进入本网数据包的源IP,防止使用本地IP的外部数据进入本网络,从而防御IP欺骗攻击。
4 总结
对网络来说,除了满足功能性需求外,还要保证网络的安全,防止网络受到各种安全性攻击。在网络安全中协议漏洞是最严重的安全漏洞,给攻击者创造了成功机会。ARP欺骗攻击正是利用了ARP协议自身的安全漏洞,通过专用攻击工具让攻击极易成功。IP欺骗攻击也是利用TCP/IP协议存在的漏洞来实施的。对于类似网络攻击,用户除了做好网络和终端设备等硬件的安全防范工作外,还要不断提高安全意识,不断了解防范欺骗类攻击的最新技术,真正做到防患于未然。
参考文献
[1]谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2008.
[2]李浩.ARP.病毒攻击分析及其防御措施[J].宁波广播电视大学学报,2007.
[3]李成友,韩昧华.互联网协议中地址解析的欺骗问题研究[J].网络安全技术与应用,2010.
[4]郑亚,谢琳.DNS的原理及其应用[J].软件导刊,2012.
校园网环境下ARP欺骗攻击及防御 篇7
虽然基于ARP欺骗的病毒攻击已经有很久的历史,但直到现在,它还是一种较难防范和根治的病毒类型。主要是因为ARP欺骗是基于ARP协议的先天缺陷对网络进行攻击的,因此很难从根本上避免ARP欺骗造成的网络攻击,进一步研究与探讨防御ARP欺骗攻击的技术对校园网安全具有重要的意义。
1 ARP协议
ARP协议全称为Addre s s Re s olution Protocol(地址解释协议),它是TCP/IP协议族中的基础协议之一,工作在ISO参考模型中的第二层即数据链路层,其功能是将主机IP地址转换成MAC地址,MAC (Me dia Acce s s Contro1) 地址是网络中唯一能标识计算机的硬件地址 (存于网卡的EPROM芯片内) ,每块合法的网卡在出厂时都被赋予了一个MAC地址,且每一块网卡的MAC地址都是唯一的。数据在数据链路层中是以“帧”的形式进行传输的,而“帧”必须封装源主机和目的主机的MAC地址,在以太网中传输的数据帧最终是靠MAC地址来确定目的主机的,但是在通信中只是给出了目的主机的IP地址,此时就需要将目的主机的IP地址转换成目的主机的MAC地址,这一过程就是由ARP协议来实现的。
ARP协议的具体工作过程如下:在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,记录着该主机已知的本局域网内其它主机的IP地址和MAC地址之间的映射关系。假设当主机A需要和主机B之间进行通信时,主机A首先查询自己的ARP缓存表,如果查询到主机B的IP地址和MAC地址之间的映射关系,则将主机B的MAC地址封装进数据帧进行通信。如果没有查询到相应的记录,则主机A广播发送出目的MAC地址为FF-FF-FF-FF-FF-FF的ARP请求数据包,请求获得主机B的MAC地址。此时,本广播域内所有的主机都会接收到主机A的ARP请求,并将主机A的IP地址和MAC地址之间的映射关系保存到自己的ARP缓存表中,但是只有主机B做出回应,主机A在接收到主机B的响应信息后将主机B的IP地址和MAC地址之间的映射关系保存到自己的ARP缓存表中,并将主机B的MAC地址封装进数据帧进行通信。如果主机A一直没有收到ARP响应数据包,表示ARP查询失败。
ARP缓存表中的IP—MAC地址映射记录是有生存期限的,在一段时间内如果ARP缓存表中的某条记录没有使用,该记录就会被删除。
2 ARP欺骗攻击原理
从ARP协议的工作过程可知:ARP是以信任本广播域内所有主机为基础的,即某台主机只要接收到ARP数据包,就会对自己的ARP缓存表进行刷新,而并不验证该数据包的真实性和可靠性。这样做虽然效率很高,但却存在致命的风险,ARP欺骗攻击正是基于ARP协议的这一先天缺陷对网络进行攻击的,攻击者可以通过伪造ARP的响应数据包并发送给想要攻击的主机,使被攻击的主机获得错误的IP—MAC地址映射表。这一点非常容易实现,因为ARP协议并没有规定必须在接收到ARP的请求数据包后才能发送ARP的响应数据包,因此可以人为的制造很多个携带错误的IP—MAC地址映射表的ARP响应数据包并发送到广播域中,从而达到欺骗攻击的目的,造成被攻击的主机无法进行正常的网络通信。
3 ARP欺骗攻击的种类
3.1 假冒网关欺骗攻击
攻击者伪造ARP响应数据包发送到广播域,在伪造的ARP响应数据包中IP地址为网关的IP地址,但是MAC地址却不是网关的MAC地址,广播域内的主机根据接收到的伪造ARP响应数据包刷新自己的ARP缓存表,获得错误的网关IP地址和MAC地址之间的映射关系。此时,被攻击的主机发送到网关的所有流量全部被重定向到伪造的网关MAC地址,造成被攻击主机无法正常访问外部网络。
在受到假冒网关欺骗攻击时,Windows用户在cmd命令提示行下输入arp-a,可以查看到本机上的ARP缓存表中网关的IP所对应的MAC地址并非是网关真正的MAC地址。
3.2 中间人欺骗攻击
中间人欺骗攻击又称为ARP双向欺骗攻击,主要用于网络监听。攻击者S为了监听A和B两台主机之间的通信,先向主机A发送一个伪造的ARP响应数据包,在伪造的ARP响应数据包中IP地址为主机B的IP地址,而对应的MAC地址则为攻击者S的MAC地址,接着向主机B发送一个伪造的ARP响应数据包,在伪造的ARP响应数据包中IP地址为主机A的IP地址,而对应的MAC地址则为攻击者S的MAC地址,被攻击的主机A和主机B根据接收到的伪造ARP响应数据刷新自己的ARP缓存表,此时,主机A和B的通信数据实际上都发送给了攻击者S,再由攻击者S进行转发。在此,攻击者S扮演了中间人的角色,实现了对A和B两台主机通信的监听。
3.3 泛洪攻击
ARP欺骗木马病毒制造大量的ARP请求数据包,泛洪发往本广播域中的所有设备,导致交换机及主机等设备忙于处理ARP请求,致使这些设备的CPU使用率快速上升,直至CPU满载,导致网络中断。
4 ARP欺骗攻击的防御
4.1 IP地址与MAC地址的双向绑定
ARP欺骗攻击是由于被攻击的主机使用了伪造的ARP响应数据包刷新自己的ARP缓存而导致的。所以只要不让网关设备和网内主机刷新自己的ARP缓存表即可防御ARP欺骗攻击。在默认情况下,ARP缓存表是动态刷新的。为防范ARP欺骗攻击,可以将IP地址和对应的MAC地址进行静态的绑定,使之不进行刷新。
主机上对网关设备的IP地址和MAC地址进行静态的绑定方法为:在命令行模式下,输入命令:
arp-s网关IP地址网关MAC地址
需要注意的是,在主机重启后,ARP缓存表内容会丢失,即静态绑定的网关设备IP地址与MAC地址的映射关系也会丢失。因此往往将ARP绑定操作写成批处理文件并放置到“开始—程序—启动”中,使其在系统启动时即被加载执行。
这种方式的缺点是在网关设备上将校园网内所有主机的IP地址与MAC地址进行绑定是一个繁重的工作,因为校园中的主机数量多,而且还有很多笔记本等移动用户,使得MAC地址的静态绑定不易实现,另外主机上IP地址与MAC地址的绑定对没有计算机基础的普通用户来说也一件困难的事情。
4.2 使用AR P防火墙
对于普通用来说,使用ARP防火墙是一种简单有效的防御ARP欺骗攻击的方法,一般ARP防火墙都具备双向拦截的功能,一方面拦截接收到的外部ARP欺骗数据包,保证系统不受ARP欺骗攻击的影响;另一方面拦截本机对外发送的ARP欺骗数据包,避免本机感染基于ARP欺骗的木马病毒后成为攻击者。
理论上只要校园网的所有主机都安装上ARP防火墙,就可以有效防御ARP欺骗攻击的发生,但是要做到校园网内所有主机都安装ARP防火墙几乎是不可能做到的。
4.3 合理划分VLAN,减少广播域
ARP欺骗攻击是在同一个VLAN中进行的,一旦有某一台主机感染了基于ARP欺骗木马病毒,会迅速传染至整个VLAN中有漏洞的其它主机,如果VLAN过大,很容易形成泛洪攻击,另一方面也造成定位攻击者的困难,而如果通过合理划分VLAN,减小广播域,则可以将基于ARP欺骗的攻击有效地抑制在一个很小的范围内,确保网络其它VLAN中的主机不受攻击,而且还可以快速定位到攻击者,以便对其时行及时处理。
4.4 建立PPPoE接入服务器
PPP协议(Point-to-Point Protocol)又称点对点协议,是为了在同等单元之间传输数据包这样的简单链路设计的链路层协议,在以太网上通过PPP协议来进行用户认证接入的方式称为PPPoE (PPPover Ethe rne t),它的工作过程是这样的:
主机A要跟外界通信,首先主机A发一个PADI广播包,如果在这个以太网上存在PPPoE服务器,那么PPPoE服务器就会回复一个PADO单播给主机A,然后主机A再发一个PADR给PPPoE服务器请求建立连接,服务器收到后,则回复一个PADS单播包,分配一个Se s s ion ID, PPPoE连接建立。PPPoE属于点到点链路,这种链路的特点是一端发送的数据总会被另一端原顺序的接受到。连接建立后就可以不需要MAC地址,不涉及ARP协议,也就没有了ARP欺骗攻击之类的问题。网络连接如图1:
我校的校园网目前就是使用这种方法来解决ARP欺骗攻击问题的,其主要缺陷是PPPoE服务器数据交换压力过大,无法实现线速交换,用户在内部网络传送大文件时,速度要比直接接在交换机上要慢,其次就是无法对某一用户组分别设定外网带宽限制及内网的带宽限制。
4.5 全网部署802.1x认证系统
802.1x协议是IEEE为了解决基于端口的接入控制而定义的标准,也称为基于端口的访问控制协议,它提供了一种对设备进行认证和授权的方法,在认证和授权过程失败的情况下防止对端口进行访问。
在校园网接入层全面部署安全接入交换机,配合用户认证系统和安全策略平台,实现基于IEEE802.1x协议的身份认证系统,全校园网的用户必须要经过统一集中的身份认证方能允许接入网络。统一的身份认证系统利用802.1x协议基于MAC地址的逻辑端口认证特性,保障了认证服务器能够在用户认证过程中获取到用户真实的IP-MAC对应信息,认证服务器在接受用户端的上网认证请求后,要进行一系列的处理,当允许用户接入上网时,首先记录合法用户的IP和MAC地址并填入相关数据库的ARP列表,然后一方面给客户端发送允许上网的命令并下发记录在数据库中的对应该用户这一网段的正确的ARP列表内容,特别是网关的IP和MAC地址,并由802.1x认证客户端程序进行静态绑定,另一方面用这份正确的ARP列表更新网关中的ARP列表,并在网关重新静态绑定更新后的ARP列表,实现了网关及客户端IP-MAC地址双向静态绑定。当有新的用户请求接入时,重复以上操作,就可以保证绑定的ARP列表实时更新。当用户下线时在数据库的ARP表项中删除该客户端的IP-MAC记录并向网关及其它在线客户端发送更新后的ARP列表,重新进行静态绑定,所有的这些操作对用户来说都是透明的。实现过程如图2所示:
这是目前解决ARP欺骗攻击最完美的方案之一,唯一的缺点是成本较高,目前大部份中职学校的校园网尚未能全面部署802.1x认证系统。
5 方案的总结比较
上述五种方案各有优缺点,实现的成本也各不相同,我们可以根据本校校园网规模的大小以及客户端用户性质等实际情况,对这些方案进行重新优化组合以寻求到最适合本校校园网防御ARP欺骗攻击的解决方案。
参考文献
[1]Jeff Doyle, Jennifer Carroll.TCP/IP路由技术[M].人们邮电出版社, 2007.
[2]谢希仁.计算机网络 (第5版) [M].电子工业出版社, 2008.
[3]Cisco Systems公司.思科网络技术学院教程[M].人民邮电出版社, 2007.
相关文章:
家乡的葡萄作文100字(9篇)01-20
家乡的葡萄作文200字 家乡的葡萄作文400字(9篇)01-20
ARP欺骗防御01-20
MAC地址欺骗01-20
我爱家乡的葡萄作文500字 我爱家乡的葡萄作文300字左右优秀(十六篇)01-20
ARP欺骗检测方法01-20
欺骗诗歌01-20
欺骗技术01-20
ARP欺骗及防范方法01-20