网络安全知识: 欺骗攻击的类型
2005-11-16 17:30
作者:冠群金辰
来源:eNet硅谷动力
[摘要] IP欺骗:公司使用其他计算机的IP地址来获得信息或者得到特权。
欺骗攻击类型
IP欺骗:公司使用其他计算机的IP地址来获得信息或者得到特权。
电子信件欺骗:电子信件的发送方地址的欺骗。比如说,电子信件看上去是来自TOM,但事实上TOM没有发信,是冒充TOM的人发的信。
WEB欺骗:越来越多的电子上午使用互连网。为了利用网站做电子商务,人们不得不被鉴别并被授权来得到信任。在任何实体必须被信任的时候,欺骗的机会出现了。
非技术类欺骗:这些类型的攻击是把经理集中在攻击攻击的人力因素上。它需要通过社会工程技术来实现。
※ IP欺骗
IP欺骗的三种基本形式是:
基本地址变化
使用源路由选择截取数据包
利用UNIX机器上的信息关系
(1) 基本地址变化
IP欺骗的最基本形式是搞清楚一个网络的配置,然后改变自己的IP地址,伪装成别人机器的IP地址。这样做会使所有被发送的数据包都带有假冒的源地址。这是非常低等级的技术,因为所有的应答都回到了被盗用了地址的机器上,而不是攻击者的机器。这被叫做盲目飞行攻击(flying blind attack),或者叫做单向攻击(one-way attack)。
这种攻击虽有一些限制,但就某一特定类型的拒绝服务攻击而言,只需要一个数据包去撞击机器,而且地址欺骗会让人们更难于找到攻击者的根源。对某些特定的攻击,如果系统受到了意想不到的数据包,说明对系统的攻击仍然在进行。而且因为UDP是无连接的,所以单独的UDP数据包会被发送到受害方的系统中。
(2)源路由攻击
有关欺骗的一个重要问题是被盗用的地址会收到返回的信息流,而攻击者从来不会接受到它们。但是对于更高级的攻击,攻击者更愿意看到对话的双方。
为了得到从目的机器返回到源机器的流量,一个方法是攻击者插入到正常情况下流量经过的通路上。这是非常困难的,因为攻击者必须攻击受害网络上的一台机器,而且不存在任何保障措施让流量继续通过攻击者的机器。我们知道互联网是采用动态路由的,它每天、每小时,甚至每分钟都会有变化。有一种方法能够保证数据包会经过一条给定的路径,而且作为一次欺骗,保证它经过攻击者的机器。这么做需要使用源路由,它被包含在TCP/IP协议组中。源路由允许指定一条数据包必须经过的路径。它包括两种类型的源路由:
宽松的源路由选择(LSR):
发送端指明了流量或者数据包必须经过的IP地址清单,但如果它需要,也可以经过一些其他的地址。换句话说,不用考虑数据包经过的确切地址,只要它经过这些地址就可以。
严格的源路由选择(SRS):
发送端指明IP数据包必须经过的确切地址。如果没有经过这一确切路径,数据包会被丢弃,并返回一个ICMP差错报文。换句话说,必须考虑数据包经过的确切路径,而且如果由于某种原因没有经过这条路径,这个数据包就不能被发送。
源站路由使用IP首部一个39个字节的源路由选项地址来工作。因为源站路由被放入了IP首部,所以对指定的IP地址数目会有限制。因为源路由选项字段是39个字节,其中3个字节是附加信息,那么剩下的36个字节是地址信息。每一个地址是4个字节。如果36除4,会有9个地址的空间,但情况不是那么简单。因为最后一个地址必须是目的地址,所以它只留下8个地址的空间。可知随着互联网的发展,会出现IP地址的数目大于8的情况。在这些情况下,就只能使用宽松的源站选路,因为如果不能找到确切的路径,那么严格的源路由选路就会丢弃那个数据包。
基本上源路由的工作过程是这样的:取出源站路由清单中第一个地址,使它成为目的地址。如果是严格的源路由选择,那么它必须是下一跳;如果不是,它就会被丢弃。对于宽松的源路由选择,在数据包到达清单上指出的地址以前,它经过多少跳是没有关系的。在它到达目的地址后,它从清单中取出下一个地址,使它变为目的地址。接下来它继续重复这个过程,直到找到目的地址或者数据包不能被路由为止。
需要指出的重要的一点是如果发送端指定了到达目的地址的源路由,那么目的机器能够自动地使用源路由返回到发送端,这就是为什么它那么危险的原因,可能不知道有人正在使用它。可能回答一个数据包,而且如果发送端使用了源路由,就会在未知的情况下使用它。
源路由为欺骗带来了巨大的利益。攻击者使用假冒的地址向目的地发送数据包,但指定了宽松的源路由选择,并把他的IP地址填入地址清单中。那么,当接受端回应时,数据包返回到假冒的IP地址处,而不是前面它经过的攻击者的机器。攻击者没有盲目飞行,因为他能看到对话双方。
(3)信任关系
在Unix领域中,信任关系能够很容易得到。假如在主机A和B上各一个帐户,在使用当中会发现,在主机A上使用时需要输入在A上的相应帐户,在主机B上使用时必须输入在B上的帐户,主机A和B把你当作两个互不相关的用户,显然有些不便。为了减少这种不便,可以在主机A和主机B中建立起两个帐户的相互信任关系。在主机A和主机B上你的home目录中创建.rhosts文件。从主机A上,在你的home目录中输入'echo " B username "> ~/.rhosts';从主机B上,在你的home目录中输入'echo " A username " >~/.rhosts'。至此, 你能毫无阻碍地使用任何以r*开头的远程调用命令,如:rlogin,rcall,rsh 等,而无口令验证的烦恼。这些命令将允许以地址为基础的验证,或者允许或者拒绝以IP地址为基础的存取服务。
这里的信任关系是基于IP地址的。