文章作者:马丁
martin@cdnsea.org 来自:
http://www.cnsea.org
前言:这个是给CIW写的,征得他们同意后,先在这里发一下。
考虑到面向的读者有可能不象论坛上的兄弟这么专业,我把这个写的有点科普,请做技术的兄弟不要笑话
另外,如果里面有哪些技术上不准确的地方,请一定一定指出,以便保证质量。先谢过了。
张大民是在国内互联网黑客圈子里小有名气的黑客。不但知道如何使用各种黑客工
具来找到所谓的“肉鸡”,也就是漏洞大开的主机。而且知道如何把它们组织起
来,做一些事情。张大民对互联网的结构也小有研究,知道整个互联刚口何运行和
其中的弱点。张大民不甘心只使用别人开发的黑客程序,只做一个script kiddie(脚
本小子)。他还努力学习网络安全知识,想成为一个白帽子黑客,能独立找到程序
中的漏洞。而且,张大民对如何攻击网络结构,而不是单一的一台电脑也很感兴
趣,对各种层次上的数据报文也很有研究。
由于对网络安全的热爱和不懈的努力,张大民逐渐在国内的黑客圈子里建立了一定
的权威。但他并没有就此满足,而是对新出现的网络技术一直感兴趣,并尽量从网
络安全方面来加以学习。最近,国家对IPv6的支持越来越明显,政府已经把实行
IPv6作为一个战略目标来进行,将来国内的互联网将以运行IPv6为主。黑客张大民
也对IPv6,尤其是IPv6的安全性产生了极大的兴趣,想好好研究一番,成为一个精
通IPv6安全的网络黑客。
张大民是攻击IPv4的黑客高手了,对网络侦察,第三层第四层报文的源地址伪装,
基本的针对IPv4的攻击手段如拒绝服务的攻击(DOS),病毒和网络蠕虫都小有研
究。对于一些基本的攻击工具象Land,Smurf等都烂熟于胸。但让张大民头痛的
是,关于如何攻击IPv6的资料很少,在国内自己还是开始进行研究的先驱,到底如
何下手呢?张大民的名气也不是白得的,他想出来一个很聪明的方法:既然我知道
如何攻击IPv4,那我就用相同的方法和工具来攻击IPv6,研究一下这些攻击方法
在IPv6上可行与不可行,在这个研究过程中,也对IPv6的安全性有了了解。
张大民对能想到这个方法很满意,也说做就做,开始了他对IPv6安全性的研究。
网络侦察
首先张大民开始了对IPv6网络侦察的研究。对IPv4网络的侦察是张大民要做的日常
工作。如使用ping进行IPv4地址段的主机扫描,来看哪一个IPv4的主机在线上。
使用NMAP对一段IP地址进行端口扫描,看主机都提供哪些网络服务。对主机上运
行的应用程序进行脆弱性扫描等等。网络侦察是黑客进行网络攻击的第一步,肉鸡
都是这么找出来的。那对IPv6的网络如何进行侦察呢?
张大民首先发现,IPv6的地址是128位的,也就是说,有可能2的128次方个IPv6网络地
址。而且和IPv4可变长度的子网掩码不同的是,IPv6中规定所有的子网掩码长度统
一是64位。也就是说,任何一个IPv6的网络,都可能有2的64次方台主机。这个发现让张
大民倒吸了一口冷气,因为他知道,2的64次方是一个非常大的数字。整个IPv4的可能的
IP地址数目也就是2的32次方个,而在IPv6上,一个网络上可能的主机数目就远远超过了这
个数目,这是一个天文数字。
我们再也不愁缺少IP地址了,张大民在想,如果火星上的母鸡也想要一个IP地址也
没问题了。但对于这些天文数字的IP地址数目,让我如何进行网络侦察啊!大民
想到这里,心情变得非常沮丧。他也做了一下计算,用现在的电脑,如果能每秒钟
进行一百万千主机的扫描,哪怕只对IPv6中一个单一的小网络进行网络侦察,扫描
整个2的64次方个IPv6地址,也要至少二十八年的时间。 “我可没这个功夫”,张大民沮
丧的想。看样子在IPv6的世界中,对IPv6网络进行类似IPv4的按照IP地址段进行网
络侦察是不可能了。
难道IPv6就真的没有安全问题了么?黑客张大民不甘心,而且以他多年的网络安全
工作经验,他知道任何网络系统都是有安全问题的。他潜下心来,对IPv6和相关的
技术进行了研究,还是发现了一下在IPv6世界里找到主机的方法。首先,不管是
IPv4还是IPv6,都需要使用DNS,还是应该很容易发现一个IPv6网络中的DNS服
务器的。也就是说,虽然无法对整个网络进行系统的网络侦察,但在每个IPv6的网
络中,总有那么几台主机是大家都知道网络名字的,也可以对这些主机进行攻击。
而且,因为IPv6的地址空间实在是太大了,很多IPv6的网络都会使用动态的DNS
服务。而如果攻击者可以攻占这台动态DNS服务器,就可以得到大量的在线IPv6
的主机地址。另外,因为IPv6的地址是128位,很不好记,网络管理员们可能会常
常使用一下好记的IPv6地址,这些好记的IPv6地址可能会被编辑成一个类似字典的
东西,系统的找到IPv6主机的可能性小,但猜到IPv6主机的可能性会大一些。而且
由郁IPv6和IPv4要共存相当长一段时间,很多网络管理员会把IPv4的地址放到IPv6
地址的后32位中,黑客也可能按照这个方法来猜测可能的在线IPv6地址。
研究到这里,张大民的心情稍微好了一些,看样子虽然难度增大了,但还不是没有
办法的。随着研究的深入,张大民发现,IPv6中的组发地址(定义在RFC2375中)定
义方式也给攻击者带来了一些机会。例如,IPv6地址FF05::3是所有的DHCP服务
器,就是说,如果向这个地址发布一个IPv6报文,这个报文可以到达网络中所有的
DHCP服务器。所以可能会有一些专门攻击这些服务器的拒绝服务的攻击。
张大民以黑客自居,但也是一个网络安全工作者,在对如何对IPv6网络进行侦察做
了研究后,他也提出了一些最佳的管理方法来防止黑客对IPv6网络进行网络侦
察。
·网络管理员在对主机赋予IPv6地址时,不应该使用好记的地址,也要尽量对
自己网络中的IPv6地址进行随机化,这样会在很到程度上减少这些主机被黑
客发现的机会。当然,对IPv6地址随机化也可能会带来管理上的困难,如果
你忘记了用过的IPv6地址,再找起来会很困难。张大民的建议是:对只在网
络内部使用的主机,使用统一容易记忆的IPv6地址来方便管理。对要上互联
网的主机使用随机的IPv6地址来减少这些主机被黑客发现的可能性。
·在网络的边界过滤一些私有的IPv6地址,拒绝这些地址进入和流出网络。
前面提到的IPv6地址FF05::3,就应该在网络的边界进行过滤。
·对于系统上的关键主机,使用标准的,但不是显而易见的IPv6地址命名方
式。主要的目的是增加外部黑客猜测IPv6网络地址的难度。
·在防火墙上过滤掉不需要的IPv6服务。虽然有观点说实行IPv6后,就不需要
防火墙了,但在实际的工程实践中,防火墙还要存在相当长的一段时间。
·对主机和应用程序要加强保护。在IPv4中是这样,在IPv6中就更是这样,因
为目前的防火墙和IDS还都不支持IPv6,如果把IPv6的主机放到互联网上,
这台主机受到的保护就更少了,需要特殊加以注意。
远程接入
通过多年对IPv4系统的研究,张大民对IPv4系统的开放程度深有了解。IPv4的设计
思想是:让任何一台主机都可以连接到任何一台主机。例如,如果网络上的一台服
务器有一个全局的IPv4地址,但这台服务器只是让单位内部的人员使用的,并不想
接受外部的访问。倒IPv4并不提供任何功能来保证这台主机只能由单位内部的人员
进行访问,网络管理员必须在单位的网络边界进行某种配置,或安装防火墙来防止
外部网络无关人员对这台服务器进行非法访问。
张大民在IPv6中发现,在IPv6的地址概念中,有了link-local(本地子网)地址和site-
Iocal(本地网络)地址的概念。而且一台主机的一个网卡上可以有多个IPv6的地址。
例如,一台主机上可以只有一个link local的地址,那么这台主机只能和一个子网内
部的其它主机通讯:一台主机上可以有一个link local和一个site local的地址,那么
这台主机不但可以和一个子网内部的其它主机通讯,也可以和单位其它的主机通
讯;一台主机上可以有一个link local和一个site local的地址,还有一个全局的IPv6
地址,那么这台主机不但可以和一个子网内部的其它主机通讯,可以和单位其它的
主机通讯,也可以和全球上任何其它有IPv6全局地址的主机建立联系。
“总安全角度来说,这样的地址分配为网络管理员加强网络安全管理提供了方
便”,张大民暗自着想。因为这样,如果有的主机只需要和一个子网内的其它主机
建立联系,那么网络管理员就可以只给它分配一个link local的IPv6地址;如果一台
服务器只为单位内部的员工提供访问,那么就可以只给这台主机分配一个site local
的IPv6地址。单位网络外部的任何人员都无法访问这些主机,而且也不需要再单独
安装防火墙什么的对这些主机加以特殊保护了。如果对哪些连接到互联网的主机,
如果在分配IPv6全局地址时尽量随机一些,难猜一些,哪有可以保证这些全局地址
不容易被黑客发现,又多加了一层安全措施。
对于网络管理员来说,IPv6的地址设计方法加强了网络安全,但对于黑客来说,增
加了攻击网络的难度。 “希望有的管理员不按照这样的地址分配,这样黑客还是有
机可乘的”,张大民又稍微有点沮丧。但他知道不是每个管理员都把网络安全放在
第一位的,不论是在IPv4还是在IPv6的世界中,粗心大意的网络管理员管理的网络
水远是黑客们第一个找到的目标。
张大民还柱意到,IPv4中的IP选项的部分被IPv6中的扩展报文头所代替了。这个发
现让黑客张大民大喜过望,又稍微找回了一点幸福的感觉。因为IPv4的选项部分就
已经很复杂了,网络管理员对这一部分管理上的疏忽常常给黑客可乘之机。IPv6中
一定也会有这种情况的发生。果然不出张大民所料,经过了一番研究,他发现IPv6
中规定,所有的IPv6的主机都要求接受并处理IPv6的路由扩展报文头,并转发路由
扩展报文头内的报文。 “那我就可以修改这个路由扩展报文头来改变报文的转发方
向了!”,张大民高兴的想。这样也可以绕过一些单位网络的防火墙。
找到了这个问题之后,作为一个有责任感的网络安全工作者,张大民对网络管理员
提出了如下的建议:
· 在IPv6网络中,网络管理员应该对单位内所有的IPv6主机进行查看,确认这
些主机配置成不会转发路由扩展报文头内的报文。如果因为某种原因,一定
要开启这个功能,那么也要在单位网络的边界进行过滤,来保证这些报文不
会被随意转发。
· 更进一步来说,网络管理员应该对什么IPv6扩展报文头能进入自己的网络
严加管理。网络管理员也要比较一些自己的网络在IPv4中对IPv4选项的安
全措施,实施到相应的IPv6IPv6扩展报文头中。网络管理员也好对
IPv61IPv6扩展报文头中包含的各项功能从安全上加以理解,以便进行更好
的过滤。
ICMPv4和ICMPv6
熟悉IPv4的人都知道,ICMPv4是一开始为方便管理IPv4而设计的。而同时也带来
的许多安全问题。许多管理员都对,ICMPv4的报文进行过滤,只允许有限的几种
ICMPv4报文进入单位的网络。张大民了解有的网络管理员千脆就不让任何
ICMPv4的报文进入单位的网络,虽然这样做有的时候会影响某些应用程序的正常
工作。
张大民发现,IPv6中也一并带来了ICMPv6。而且ICMPv6与IPv6之间的交互比
IPv4/ICMPv4之间还要多。他做了一下比较,如果网络管理员允许如下的ICMP报
文类型进入网络的话:
. ICMPv4类型0— 回声回应(PING回应)
. ICMPv4类型3编码0—目标地址不可达到
. ICMPv4类型3编码0—报文需要分片,但不许分片位(DF位)是置位。
. ICMPv4类型8— 回声请求(PING)
. ICMPv4类型11— 超时
那么对应于IPv6来说,就需要允许如下类型的ICMPv6报文进入网络:
. ICMPv6类型1编码0一没有到达目标地址的路由
. ICMPv6类型3— 超时
. ICMPv6类型128和类型129——回声请求和回声回复
而且,ICMPv6明确要求希望不要对如如下ICMPv6报文进行过滤,要让它们通过防火
墙。
. ICMPv6类型2——报文太大
. ICMPv6类型4——参数问题
ICMP也要求防火墙接受和支持如下ICMPv6报文
. ICMPv6类型2一 报文太大
. ICMPv6类型130—132一组发侦听报文
. ICMPv6类型133/134一路由恳求和路由发布
. ICMPv6类型135/136一邻居恳求和邻居发布
. ICMPv6类型4一 参数问题
IP分片
让张大民好奇,也是想看看IPv6如何处理的一个技术就是IP分片。张大民知道好多
专门针对IPv4的,P分片攻击技术,象著名的“死亡之吻”ping of death是利用
ICMP协议的一种碎片攻击。攻击者发送一个长度超过65535的Echo Request数
据包,目标主机在重组分片的时候会造成事先分配的65535字节缓冲区滥出,系统
通常会崩溃或挂起。还有Teardrop,只使用两个IPv4的碎片,第二片IP包的偏移
量小于第一片结束的位移,而且算上第二片IP包的Data,也末超过第一片的尾部,
这就是重叠现象(ovedap),IPv4接受这种重叠现象,并试图把这些重叠的报文
重新组合,而异常的重叠现象会导致一些操作系统的崩溃。另外IP分片也是黑客
们绕过防火墙的一个常用试探方法。
有这么多专门针对P分片的攻击技术,那么这些技术在IPv6的网络中会不会有效
呢?首先,张大民发现,在RFC2460中规定,传输的中间装置如路由器和交换机
在IPv6中不允许接受以它们为目标地址的IPv6分片报文。也就是说,向这些网络中
间装置发刊IPv6分片报文的攻击是没有用的。 “规定是规定,但黑客们可不管这么
多,看样子在IPv6中一个攻击的好方法是向这些中间装置发布一些IPv6的碎片,看
它们是否被处理了,还是被丢弃掉了”,张大民在想。
而且,RFC2460中还规定,不允许重叠现象的发生,当发生了重叠现象,IPv6会
把这些碎片报文丢弃。 “看样子有一些基于IP碎片的攻击在IPv6里面要无效了”,
张大民暗想。
但是,没有任何方法能够阻止黑客使用IPv6碎片来试图绕过防火墙,所以这个攻击
还是有效的。
张大民还发现,在RFC2460中规定IPv6最小的MTU是1280个串节。 “规定是规
定,但黑客们可不管这么多,看样子在IPv6中又一个攻击的好方法是向网络发布小
于1280串节的IPv6报文,看网络如何反应”,不错,张大民为自己的这些发现而
沾沾自喜。
但出于一个网络安全工作者的责任,张大民还是向网络管理员提出了如下的忠告:
·在网络中间装置上,如路由器,交换机和防火墙等等,一定不要忘记配置不
接收以它们为目标地址的IPv6分片报文。否则的话,就有可能会被黑各所利
用,遭到袭击。
·保证配置好合适的IPv6碎片报文过滤器。尤其要考虑IPv6的扩展报文头。
·一定不要接收任何小于1280串节的IPv6碎片,这些碎片在正常情况下是不
存在的,如果接收到了,那一定是黑客所为。
第三层地址假冒
IPv4源地址假冒是任何网络攻击中最常用的技术了。对于一个黑客来说,他可以使
用任意一个IP地址来作为他的攻击网络流量的源地址,而且这个地址可以随机产
生。跟踪和回溯假冒的IPv4地址的真正来源是一个让所有网络管理员和网络安全工
程师都头疼的问题。张大民很想知道,在IPv6中,他是不是还可以假目IPv6的源地
址。
他很决就发现,没有什么办法能阻止他发布假冒的IPv6报文。但在IPv6中,发布
假冒的IPv6报文的困难程度增大了。在IPv4的使用中,由于一开始计划的不好,
IPv4的地址零零散散分部在全世界各地,使进州IPv4的地址总结非常困难。而IPv6
的地址分配就考虑到了这一点,是对IPv6的地址进行总结变得很容易。使用IPv6的
互联网服务供应商(ISP)们可以对自己客户的IPv6地址段进行总结。然后使用
RFC2827中推荐的过滤器来对网络进行过滤,只允许自己客户可以使用的IPv6源
地址。这样,黑客们就不能任意使用随机的IPv6地址来伽IPv6源地址假冒了,因为
这样,这些报文会在,ISP的网络中被探测到,而被丢弃掉,从而达不到攻击的目
“规定归规定,如果IP不对自己的客户的网络进行总结和过滤,我照样可以任意
做IPv6的地址假冒,就象我在IPv4的时候—样”,张大民因为知道了能在IPv6的世
界里也做地址假冒而高兴。
有鉴于此,张大民对在IPv6网络中防止地址假冒做了如下建议。
. 网络管理员应该在自己的网络上配置类似RFC2827的网络过滤器来减少
IPv6的地址假冒。
. 而且网络管理员应该向自己的,ISP也提出相同的要求,促使他们也配置同样的
的网络过滤器。
病毒、互联网蠕虫和其它
病毒和互联网蠕虫是现在最让人头疼的网络攻击行为。如果到了IPv6的网络上,这
些东西还会存在吗?张大民也想把这个问题弄个明白。
很快,张大民就意识到,基于应用层的病毒和互联网蠕虫是一定会存在的,因为它
们对底层,如第三层的传输方法是IPv4还是IPv6并不敏感。所以电子邮件的病毒还
是会继续传播。
但是,他也发现了一些有趣的问题。现在的许多病毒和互联网蠕虫,在感染了一台
主机之后,就开始对其它的主机进行随机的扫描,在扫描到其它有问题的主机后,
再把病毒传染给其它的主机。但这种传播方式在IPv6的网络中就不适用了。因为
IPv6的地址空间实在是太大了,如果这些病毒或者蠕虫还想通过扫描地址段的方式
来找到有问题的其它主机,那就像在银河系中寻找有生命的星球—样,基本上不可
能了。所以,在IPv6的世界里,病毒、互联网蠕虫在IPv6的网络中传播将变得很困
难。
“这可真不错”,张大民在想,作为一个有正义感的黑客,他一向不很欣赏发布病
毒和互联网蠕虫那些人的所作所为。
在随后的日子里,张大民还发现,对于有些网络攻击技术,不管是在IPv4还是在
IPv6的网络中,都是适用的。它们是:
·报文偷看(Sniffing)。虽然IPv6提供了IPSEC最为保护报文的工具,但由于公
匙和密匙的问题,在没有配置IPSEC的情况下,偷看IPv6的报文仍然是可能
的。
·应用层的攻击。显而易见,任何针对应用层,如wEB服务器,数据库服务
器等的攻击都将仍然有效。
·中间人(man—in-the-middle)攻击。虽婀IPv6提供了IPSEC,但当使用“激
进”模式来交换密匙时,还是有可能会遭到中间人的攻击。所以,在使用
IPv6时,尽量使用正常的模式来交换密匙。
·洪水攻击。不论在IPv4还是IPv6的网络中,向被攻击的主机发布大量的网
络流量的攻击将是会一直存在的。虽然在IPv6中,追溯攻击的源头要比在
IPv4中容易一些。
总结
黑客张大民把最后的这些总结写完,抬头望望窗外,天已经蒙蒙亮了:“又是一个
不眠之夜”。张大民伸了一下懒腰。回想起自己这么多无所做的研究,他心里很是
欣慰,也颇有感慨。
作为一个黑客,他在IPv6的世界里发现了更多的安全性,使一些攻击变得更加困
难,让他沮丧:但同时也在IPv6的世界里找到一些可以攻击的漏洞,感受到了许多
获得新发现时的喜悦。
不管是沮丧还是喜悦,他都深深感觉到,任何系统,不管如何仔细设计,全面考
虑,都会有一些安全上的问题。既是是一个设计的天衣无缝的系统,在执行中也会
带来人为的疏忽,从而带来安全上的问题。真正保护这些网络系统的关键因素是
人,是网络管理员。一个经验丰富的网络管理员可以把一个使用原始技术的网络保
护的固若金汤,一个粗心大意的网络管理员也可以把一个使用IPv6的网络配置的漏
洞大开。
而不管这个粗心大意的管理员在地球上的那个角落,黑客们总有机会找到他,找到
他管理的网络中的漏洞。但这也正是黑客存在的正面意义。
在人体内部的生态系统中,如果没有病毒的存在,人体的免疫能力就会下降,人类
的体质就会下降,对整个人种的发展就会有不利影响。换句话说,病毒的存在是人
类不断的提高自己的免疫能力,不断强壮的动力。而病毒也在不断进化,越来越复
杂的病毒越来越多。两个系统在不断的斗争中不断发展自己,两个系统也都变得越
来越强壮。
相对于网络的发展也是—样,如果没有黑客的存在,不停的找到网络的漏洞,新的
攻击方式,网络也不可能变得象今天这样有这么多安全方面的技术,使网络更强
壮。黑客于网络就象病毒对人体的意义。黑客的存在使网络变得更强壮。
网络和黑客都在进化,彼此在进化之中都不断完善自己。会有越来越多的网络安全
技术涌现,网络的安全性会越来越高。黑客的攻击技术也会越来越复杂,攻击力也
越来越强。
但张大民预测, 绝对不会有那么一天,有一种技术可以从此让你的网络高枕无
忧。黑客技术不断发展,新的攻击技术会不断涌现,也会有新的网络安全技术防备
新的黑客攻击技术,也会有新的黑客攻击技术攻破新的网络安全技术。
这是一场持久战,不管两方面的力量消长任何,不会有一方是永远的胜利者,也不
会有一方是永远的失败者。但有一点是肯定的,在这个过程之中,我们的网络会越
来越强壮,网络安全技术会越来越完善,网络安全事业会越来越重要。
胡思乱想到这里,一阵困意袭来。黑客张大民打了个哈欠。该是睡觉的时候了,离
上班还有几个小时,可以赶紧睡一会,不过这次可别再迟到了。