Webmaster网络安全讲座:7.攻击与渗透(6)
2008-04-09 04:11:34来源:互联网 阅读 ()
需要知道一点是,如果我们有足够的能力能够同时可以发出232个包,每个包由不同的ISN值,那么,猜中ISN的可能性是100%。但是,无论从带宽或计算机的速度来说都是不实际的。但是,我们仍然可以发大量的包去增加命中的几率,我们把这个发出的攻击包的集合称为Spoofing集合。通常,从计算机速度和网络数据上传速率两方面来考虑,含5000个包的Spoofing的集合对众多的网络用户是没有问题的,5000-60000个包的Spoofing集合对宽带网的用户也是不成问题的,大于60000个包的Spoofing集合则超出一般攻击者的能力。网络的速度和计算机性能的不断增加会提高那种使用穷尽攻击方法猜测ISN的成功率。从攻击者的立场,当然希望能够通过定制一个尽可能小的Spoofing集合,而命中的几率又尽可能高。我们假定我们攻击前先收集50000个包作为ISN值的采样,然后,我们把这些ISN用作对将来的ISN的值猜测的依据。
一种称为“delay coordinates”的分析方法
在动态系统和非线性系统中,经常使用一种叫做“delay coordinates”的分析法,这种方法使我们可以通过对以前的数据的采样分析来推想以后的数据。
我们试图以建立一个三维空间(x,y,z)来观察ISN值(seq[t])的变化,其中t取0,1,2, ……
(图6)
方程组(E1)
现在,对采样了的50000个ISN序列seq[t] 按照上面的三个方程式来构建空间模型A。这样,就可以通过A的图像特征来分析这个PNRG生成的ISN值的规律。A呈现的空间模型的3D特性越强,它的可分析性就越好。
接着,我们根据这个模型,去分析下一个ISN值seq[t],为此,我们用一个集合K(5000个)去猜测seq[t]。
如果我们知道seq[t-1],要求seq[t],那么,可以通过在这个三维空间中找出一个有良好特性的节点P(x,y,z),将P.x seq[t-1],我们就可以得到seq[t]。现在,我们将注意力放到怎样在这个三维空间中选择一些点来构成Spoofing集合,也就是怎样通过seq[t-1],seq[t-2],sea[t-3]来推知seq[t]。
由于seq[t-1],seq[t-2],seq[t-3]都可以很容易地在远程主机上探测到,于是,P.y和P.z可以通过以下的公式求出
(图7)
而对于P.x=seq[t]-seq[t-1], 由于seq[t-1]已知,所以,我们可以把它当作是空间的一条直线。如果,在对以前的ISN的采样,通过上面提到的构成的空间模型A呈现某种很强的特征,我们就可以大胆地假设,seq[t]在直线与A的交点上,或者在交点的附近。这样,seq[t]就这样确定了,于是,seq[t 1],seq[t 2]……,我们都可以推断出来。
(图8)
于是,我们大致将构造Spoofing集合分成3个步骤:
先选取L与A交点之间的所有点。如果,L与A没有交点,我们则选取离L最近的A的部分点。
假设现在 seq[t-1]=25
seq[t-2]=50
seq[t-3]=88
于是,我们可以计算出
y = seq[t-1] - seq[t-2]=25
z = seq[t-2] - seq[t-3]=33
而我们在集合A中找不到满足y=25,z=33这个点,但是,我们找到y=24,z=34和y=27,z=35这两个点,所以,我们要把它们加入Spoofing集合。
我们按照上面的方法,把在A附近(半径<=R1的空间范围内)点集M找出来,然后,我们根据这些点的相应的x值去推导相应的seq[t](按照一定的算法,后面会提到),于是,我们就得到很多的seq[t]。
根据点集M(j),我们在一定的变化浮动范围U里(-R2<=U<= R2)处理其x值,得出以下的集合K:
M(j).x 1 M(j).x-1 M(j).x 2 M(j).x-2 M(j).x 3 M(j).x-3 …… M(j).x R2 M(j)-R2
接着我们确定R1和R2的值
R1值的选取的原则:使M不为空集,一般为1-500个。
R2值的选取的原则:使K的个数为5000。
对TCP ISN的PRNG分析的总体流程:
(图9)
相关系数的意义:
R1 radius: 影响搜索速度。
R2 radius: 影响猜测ISN的成功率, R2越大,成功率越高,但代价越大。
Average error: 反映了在3.3.2中找出的点集的平均距离。一个过分大的平均距离是不需要的。可以通过是否有足够的正确的猜测值来计算Average error。
delay coordinates分析法的意义
站在攻击者的立场,他是千方百计地想缩小搜索空间,他希望先搜索一些最可能的值,然后再去搜索其它可能性没那么大的值。通过delay coordinates,他可以看去观察ISN数列的特征,如果,按照上面的方法构造的空间模型A呈现很明显的空间轮廓,如一个正方体,一个圆柱体,或者一个很小的区域,那么ISN很可能就是这个空间模型A中的一点,搜索空间就会可以从一个巨大的三维空间缩小到一个模型A。看一下一个设计得很好的PRNG(输出为32位):...2179423068, 2635919226, 2992875947, 3492493181, 2448506773, 2252539982, 2067122333, 1029730040, 335648555, 427819739...
(图10)
RFC 1948要求我们用31位的输出,但是,32位的搜索空间比31位的要大一倍,所以,在后面的PRNG的设计中,我采用了32位的输出。
下面,我们来看一下各种典型的空间模型以及对它们的评价。
(图11)
从空间特性可以看出,某些区域的值互相重叠,某些地方的空间形状很明显,呈针状型,这种PRNG设计得不好,重叠特性很强,攻击者可以从左图分析推断可能性比较大的重叠区域去搜索,这样可以大大减少搜索的难度。
(图12)
这种PRNG参杂了一些可以预测的随机种子,导致空间模型呈现很明显的片状。攻击者可以根据前面的一些ISN来推测后面的ISN。
(图13)
这种PRNG产生的随机数序列之间的差值非常小,但是,它的分布特性非常好。所以,虽然,它并没有扩展到整个空间,但是,它比上面几种模型要好的多。攻击者攻击的成功率要少得多。
(图14)
这个PRNG是以计算机时钟为随机源的。它的ISN值都分布在三个很明显的面上。三个面都在模型的中间有一个汇聚点。这样的PRNG设计的非常差,所以,我们在设计PRNG的时候,不能只是以时钟作为随机源。
各种操作系统的TCP ISN生成器的安全性比较
Windows 95 和Windwos 98 SE
(图15)
Windows 95 的序列号产生算法非常的弱,但很难明白为什么Windows 98的算法更弱。我们看到R1为0,也就是说,A的空间特性太明显,以致M集只需要一个点就可以算出seq[t]。我们看到,Windows 98的R2小于Windows 95的R2,换言之,Windows 98的seq[t]的搜索代价更少。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
