网络中IP欺骗原理及相关防范方法
来源:IT168 更新时间:2012-04-13
             如今的网络安全越来越重要,不仅要防止恶意用户的钓鱼式攻击,还得防止其用溢出工具或IP欺骗进行非法活动,如果一但让其得手,那企业付出的代价将是不菲的。身为企业网管或个人用户只有在深入了解了IP欺骗原理后才能对其进行更好的防御。


    IP简述
    普通用户在网络协议中最常用到的要数TCP/IP协议和UDP协议,两者都是通过IP层交换数据包来进行规则通信,而IP在网络层中占据生要地位是不容替代的,其接收由最低层(网络接口层如以太网设备驱动程序)发来的数据包,并把该数据包转发到更高层---TCP或UDP层,或者将接收到的TCP或UDP层的数据包传送到更低层,不区分数据包发送的先后顺序,不检查数据包的完整性,虽然IP确认中包含一个IP source routing,但此选项是为了测试而存在,可以用来指定发送它的主机的地址(源地址)和接收它的主机的地址(目的地址),此点造成了被恶意用户用来欺骗系统进行平常被禁止的连接,使许多依靠IP源地址做确认的服务产生问题,并且很容易让恶意用户利用虚假数据包对其进行欺骗式入侵,因此IP数据包是不可靠的,是对信任关系的一种破坏。


    IP欺骗过程
    IP欺骗由多个过程进行组合分工,当恶意用户选择了一台远程目标信任主机,其信任机制在被充份掌握的情况下对其下手,使目标机失去工作能力,并提取目标机发出的TCP序列号进行猜测数据序列号,成功后开始伪装被信任的远程计算机,同时建立基于地址验证的连接,连接一旦成功,恶意用户就会取代被信任主机的角色,使用相关命令放置后门程序,进行一系列的恶意行动。网络中著名的TCP SYN淹没就是利用客户端向服务器发送SYN请求,服务器返回一个SYN/ACK信号,一但数据超出TCP处理模块内的SYN请求上限,那超出队列长度的数据连接请求将会被拒绝,此时恶意用户就会利用这一特性向目标机的TCP端口发送大量的合法的虚拟IP地址,而目标机随即回应信号,但信号却无法连接到主机,此时IP包通知受攻击的主机TCP无法到达,但主机TCP层却认为是网络连接暂时错误,并尝试再次连接,直到确信无法连接,而大量的SYN请求却是一波接着一波,将其TCP队列排的满满的。此时给IP欺骗嬴取了时间使恶意用户堂而皇之的使用此IP地址进行欺骗。

           欺骗手法序列号取样和猜测
    此时恶意用户即可对目标主机进行攻击,在攻击恶意用户会对目标机的数据包序列号进行预测,首先建立一个端口连接(SMTP)并重复过程N次将目标机最后发送的ISN存储起来,并利用每秒ISN增加128000,每次连接增加64000的规则算出与被信任主机之间的RTT往返时间,这使得用于表示ISN的 32位计数器在没有连接的情况下每9.32 小时复位一次此时恶意用户就会发起真正的攻击,虚假的TCP数据包进入目标主机,此时如果估计的序列号是准确的,那进入目标机的数据将被放置在接收缓冲器以供使用,而如果估计出的序列号小于期待的数字,那么将被放弃,一旦大于期待数字并在缓冲内,TCP模块将等待其它缺少的数据,此时主机以丧失处理能力。恶意用户开始伪装成被信任主机的IP地址向目标主机发送513端口(rlogin的端口号)的连接请求。而Rlogin 是一个简单的客户、服务器程序,它利用TCP传输,允许用户从一台主机登录到另一台主机上,一旦数据取得目标主机的信任,目标机即作出回应发回一个SYN/ACK数据包,此时被信任主机将抛弃返回的SYN/ACK数据包,接着恶意用户会向目标主机发送ACK数据包,而目标主机将会通畅的接收该ACK,恶意用户可以顺利进行数据传输,并放置后门程序cat ++ >> ~/.rhosts,为下一次入侵建筑了基石。当然IP欺骗的方法还有很多种,这里就不一一简述了!


    IP欺骗的防止
    面对恶意用户的这种IP欺骗行为,相关人氏提出了针对这种初始序列号变量在Berkeley系统中要改变 间隔,让恶意用户无法算出精确时间,放弃以地址为基础的验证,删除.rhosts 文件并清空/etc/hosts.equiv 文件并禁止r*类远程调用命令的使用,有路由的用户要使用包过滤,过滤掉来自于公网与内网建立的连接请求,在数据通信时进行加密传输和验证,并使用随机序列号或随机增加,利用Bellovin分割序列号空间,使每一个连接都有其独立的序列号空间,但各连接之间不存在明显的换算关系,这样能有效地防止恶意用户实现IP欺骗,对用户来说其效果是十分理想的。


    后记
    当网络中安全人氏研发中一门新的安全技术时,恶意用户的技术也在随着时间的推移对所掌握的漏洞进行进一步的深入改造,以其更具破坏力,此时就需要网络管理人员或用户的细心放现计算机是否有异常情况,如反应变慢、非法连接数据、莫名程序及莫名用户等。为了能自动化防守计算机,相关人氏建议在安全策略上要做到精、细、准,在软件应用上要调节安全度,并提写相关日志文件,安装必备的防火墙,做好前置工作,才能以逸待劳!