2、协议欺骗攻击及其防范措施
2.1 源IP地址欺骗攻击
许多应用程序认为如果数据包能够使其自身沿着路由到达目的地,而且应答包也可以回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的前提。 假设同一网段内有两台主机A、B,另一网段内有主机X。B 授予A某些特权。X 为获得与A相同的特权,所做欺骗攻击如下:首先,X冒充A,向主机 B发送一个带有随机序列号的SYN包。主机B响应,回送一个应答包给A,该应答号等于原序 列号加1。然而,此时主机A已被主机X利用拒绝服务攻击 “淹没”了,导致主机A服务失效。结果,主机A将B发来的包丢弃。为了完成三次握手,X还需要向B回送一个应答包,其应答号等于B向A发送数据 包的序列号加1。此时主机X 并不能检测到主机B的数据包(因为不在同一网段),只有利用TCP顺序号估算法来预测应答包的顺序号并将其发送给目标机B。如果猜测正确,B则认为收到的ACK是来自内部主机A。此时,X即获得了主机A在主机B上所享有的特权,并开始对这些服务实施攻击。
要防止源IP地址欺骗行为,可以采取以下措施来尽可能地保护系统免受这类攻击:
·抛弃基于地址的信任策略: 阻止这类攻击的一种非常容易的办法就是放弃以地址为基础的验证。不允许r类远程调用命令的使用;删除.rhosts 文件;清空/etc/hosts.equiv 文件。这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。
·使用加密方法: 在包发送到 网络上之前,我们可以对它进行加密。虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性和真实性。
·进行包过滤:可以配置[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]使其能够拒绝网络外部与本网内具有相同IP地址的连接请求。而且,当包的IP地址不在本网内时,[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]不应该把本网主机的包发送出去。
有一点要注意,[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]虽然可以封锁试图到达内部网络的特定类型的包。但它们也是通过分析测试源地址来实现操作的。因此,它们仅能对声称是来自于内部网络的外来包进行过滤,若你的网络存在外部可信任主机,那么[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]将无法防止别人冒充这些主机进行IP欺骗。
2.2 源路由欺骗攻击
在通常情况下,信息包从起点到终点走过的路径是由位于此两点间的
[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]决定的,数据包本身只知道去往何处,但不知道该如何去。源路由可使信息包的发送者将此数据包要经过的路径写在数据包里,使数据包循着一个对方不可预料的路径到达目的主机。下面仍以上述源IP欺骗中的例子给出这种攻击的形式:
主机A享有主机B的某些特权,主机X想冒充主机A从主机B(假设IP为aaa.bbb.ccc.ddd)获得某些服务。首先,攻击者修改距离X最近的[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url],使得到达此[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]且包含目的地址aaa.bbb.ccc.ddd的数据包以主机X所在的网络为目的地;然后,攻击者X利用IP欺骗向主机B发送源路由(指定最近的[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url])数据包。当B回送数据包时,就传送到被更改过的[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]。这就使一个入侵者可以假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。
为了防范源路由欺骗攻击,一般采用下面两种措施:
·对付这种攻击最好的办法是配置好[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url],使它抛弃那些由外部网进来的却声称是内部主机的报文。
·在[url=http://www.hacker.cn/Get/lyjh/index.shtml]路由器[/url]上关闭源路由。用命令no ip source-route。