分布式拒绝服务攻击(DDoS)原理及防范

Posted on

分布式拒绝服务攻击(DDoS)原理及防范

徐一丁, 高级工程师, 北京玛赛网络系统有限公司

简介: 分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。本文从概念开始详细介绍了这种攻击方式,着重描述了黑客是如何组织并发起的DDoS攻击,结合其中的Syn Flood实例,您可以对DDoS攻击有一个更形象的了解。最后作者结合自己的经验与国内网络安全的现况探讨了一些防御DDoS的实际手段。


DDoS攻击概念

DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。

DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 - 目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。

这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。

高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。


被DDoS攻击时的现象

  • 被攻击主机上有大量等待的TCP连接
  • 网络中充斥着大量的无用的数据包,源地址为假
  • 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯
  • 利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求
  • 严重时会造成系统死机

攻击运行原理

如图一,一个比较完善的DDoS攻击体系分成四大部分,先来看一下最重要的第2和第3部分:它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别,对第4部分的受害者来说,DDoS的实际攻击包是从第3部分攻击傀儡机上发出的,第2部分的控制机只发布命令而不参与实际的攻击。对第2和第3部分计算机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客连接到它们进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。

有的朋友也许会问道:"为什么黑客不直接去控制攻击傀儡机,而要从控制傀儡机上转一下呢?"。这就是导致DDoS攻击难以追查的原因之一了。做为攻击者的角度来说,肯定不愿意被捉到(我在小时候向别人家的鸡窝扔石头的时候也晓得在第一时间逃掉,呵呵),而攻击者使用的傀儡机越多,他实际上提供给受害者的分析依据就越多。在占领一台机器后,高水平的攻击者会首先做两件事:1. 考虑如何留好后门(我以后还要回来的哦)!2. 如何清理日志。这就是擦掉脚印,不让自己做的事被别人查觉到。比较不敬业的黑客会不管三七二十一把日志全都删掉,但这样的话网管员发现日志都没了就会知道有人干了坏事了,顶多无法再从日志发现是谁干的而已。相反,真正的好手会挑有关自己的日志项目删掉,让人看不到异常的情况。这样可以长时间地利用傀儡机。

但是在第3部分攻击傀儡机上清理日志实在是一项庞大的工程,即使在有很好的日志清理工具的帮助下,黑客也是对这个任务很头痛的。这就导致了有些攻击机弄得不是很干净,通过它上面的线索找到了控制它的上一级计算机,这上级的计算机如果是黑客自己的机器,那么他就会被揪出来了。但如果这是控制用的傀儡机的话,黑客自身还是安全的。控制傀儡机的数目相对很少,一般一台就可以控制几十台攻击机,清理一台计算机的日志对黑客来讲就轻松多了,这样从控制机再找到黑客的可能性也大大降低。


黑客是如何组织一次DDoS攻击的?

这里用"组织"这个词,是因为DDoS并不象入侵一台主机那样简单。一般来说,黑客进行DDoS攻击时会经过这样的步骤:

1. 搜集了解目标的情况 下列情况是黑客非常关心的情报:

  • 被攻击目标主机数目、地址情况
  • 目标主机的配置、性能
  • 目标的带宽

对于DDoS攻击者来说,攻击互联网上的某个站点,如http://www.mytarget.com,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例,一般会有下列地址都是提供http://www.yahoo.com服务的: 66.218.71.87 66.218.71.88 66.218.71.89 66.218.71.80 66.218.71.81 66.218.71.83 66.218.71.84 66.218.71.86

如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使66.218.71.87这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到http://www.yahoo.com的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。

所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,攻击同一站点的2台主机需要2台傀儡机的话,攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。

但在实际过程中,有很多黑客并不进行情报的搜集而直接进行DDoS的攻击,这时候攻击的盲目性就很大了,效果如何也要靠运气。其实做黑客也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。

2. 占领傀儡机 黑客最感兴趣的是有下列情况的主机:

  • 链路状态好的主机
  • 性能好的主机
  • 安全管理水平差的主机

这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何攻击并占领它们的。

首先,黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,象程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是黑客希望看到的扫描结果。随后就是尝试入侵了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。

总之黑客现在占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS攻击用的程序上载过去,一般是利用ftp。在攻击机上,会有一个DDoS的发包程序,黑客就是利用它来向受害目标发送恶意攻击包的。

3. 实际攻击 经过前2个阶段的精心准备之后,黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样,黑客登录到做为控制台的傀儡机,向所有的攻击机发出命令:"预备~ ,瞄准~,开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会"怜香惜玉"。

老到的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击。


DDoS攻击实例 - SYN Flood攻击

SYN-Flood是目前最流行的DDoS攻击手段,早先的DoS的手段在向分布式这一阶段发展的时候也经历了浪里淘沙的过程。SYN-Flood的攻击效果最好,应该是众黑客不约而同选择它的原因吧。那么我们一起来看看SYN-Flood的详细情况。

Syn Flood原理 - 三次握手 Syn Flood利用了TCP/IP协议的固有漏洞。面向连接的TCP三次握手是Syn Flood存在的基础。

TCP连接的三次握手 图二 TCP三次握手 图二 TCP三次握手

如图二,在第一步中,客户端向服务端提出连接请求。这时TCP SYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分段后,在第二步以自己的ISN回应(SYN标志置位),同时确认收到客户端的第一个TCP分段(ACK标志置位)。在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。

Syn Flood攻击者不会完成三次握手 图三 Syn Flood恶意地不完成三次握手 图三 Syn Flood恶意地不完成三次握手

假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)。

下面是我在实验室中模拟的一次Syn Flood攻击的实际过程

这一个局域网环境,只有一台攻击机(PIII667/128/mandrake),被攻击的是一台Solaris 8.0 (spark)的主机,网络设备是Cisco的百兆交换机。这是在攻击并未进行之前,在Solaris上进行snoop的记录,snoop与tcpdump等网络监听工具一样,也是一个很好的网络抓包与分析的工具。可以看到攻击之前,目标主机上接到的基本上都是一些普通的网络包。 …

… ? -> (broadcast) ETHER Type=886F (Unknown), size = 1510 bytes

       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes
       ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes

       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes

192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0]

192.168.0.210 -> 192.168.0.255 NBT Datagram Service Type=17 Source=ROOTDC[20] 192.168.0.247 -> 192.168.0.255 NBT Datagram Service Type=17 Source=TSC[0]

       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes

192.168.0.200 -> (broadcast) ARP C Who is 192.168.0.102, 192.168.0.102 ?

       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes
       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes

192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0] 192.168.0.66 -> 192.168.0.255 NBT Datagram Service Type=17 Source=GU[0]

192.168.0.210 -> 192.168.0.255 NBT Datagram Service Type=17 Source=ROOTDC[20] ? -> (multicast) ETHER Type=0000 (LLC/802.3), size = 52 bytes

       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes
       ? -> (broadcast)  ETHER Type=886F (Unknown), size = 1510 bytes

… …

接着,攻击机开始发包,DDoS开始了…,突然间sun主机上的snoop窗口开始飞速地翻屏,显示出接到数量巨大的Syn请求。这时的屏幕就好象是时速300公里的列车上的一扇车窗。这是在Syn Flood攻击时的snoop输出结果: …

… 127.0.0.178 -> lab183.lab.net AUTH C port=1352

127.0.0.178 -> lab183.lab.net TCP D=114 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=115 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net UUCP-PATH C port=1352 127.0.0.178 -> lab183.lab.net TCP D=118 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net NNTP C port=1352 127.0.0.178 -> lab183.lab.net TCP D=121 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net TCP D=122 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=124 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net TCP D=125 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=126 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net TCP D=128 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=130 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net TCP D=131 S=1352 Syn Seq=674711609 Len=0 Win=65535 127.0.0.178 -> lab183.lab.net TCP D=133 S=1352 Syn Seq=674711609 Len=0 Win=65535

127.0.0.178 -> lab183.lab.net TCP D=135 S=1352 Syn Seq=674711609 Len=0 Win=65535 …

这时候内容完全不同了,再也收不到刚才那些正常的网络包,只有DDoS包。大家注意一下,这里所有的Syn Flood攻击包的源地址都是伪造的,给追查工作带来很大困难。这时在被攻击主机上积累了多少Syn的半连接呢?我们用netstat来看一下:

/# netstat -an | grep SYN …

… 192.168.0.183.9 127.0.0.79.1801 0 0 24656 0 SYN_RCVD

192.168.0.183.13 127.0.0.79.1801 0 0 24656 0 SYN_RCVD 192.168.0.183.19 127.0.0.79.1801 0 0 24656 0 SYN_RCVD

192.168.0.183.21 127.0.0.79.1801 0 0 24656 0 SYN_RCVD 192.168.0.183.22 127.0.0.79.1801 0 0 24656 0 SYN_RCVD

192.168.0.183.23 127.0.0.79.1801 0 0 24656 0 SYN_RCVD 192.168.0.183.25 127.0.0.79.1801 0 0 24656 0 SYN_RCVD

192.168.0.183.37 127.0.0.79.1801 0 0 24656 0 SYN_RCVD 192.168.0.183.53 127.0.0.79.1801 0 0 24656 0 SYN_RCVD

… …

其中SYN_RCVD表示当前未完成的TCP SYN队列,统计一下:

/# netstat -an | grep SYN | wc -l 5273 /# netstat -an | grep SYN | wc -l 5154 /# netstat -an | grep SYN | wc -l 5267 …..

共有五千多个Syn的半连接存储在内存中。这时候被攻击机已经不能响应新的服务请求了,系统运行非常慢,也无法ping通。

这是在攻击发起后仅仅70秒钟左右时的情况。


DDoS的防范

到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻击。一位资深的安全专家给了个形象的比喻:DDoS就好象有1,000个人同时给你家里打电话,这时候你的朋友还打得进来吗?

不过即使它难于防范,也不是说我们就应该逆来顺受,实际上防止DDoS并不是绝对不可行的事情。互联网的使用者是各种各样的,与DDoS做斗争,不同的角色有不同的任务。我们以下面几种角色为例:

  • 企业网管理员
  • ISP、ICP管理员
  • 骨干网络运营商

企业网管理员

网管员做为一个企业内部网的管理者,往往也是安全员、守护神。在他维护的网络中有一些服务器需要向外提供WWW服务,因而不可避免地成为DDoS的攻击目标,他该如何做呢?可以从主机与网络设备两个角度去考虑。

主机上的设置 几乎所有的主机平台都有抵御DoS的设置,总结一下,基本的有几种:

  • 关闭不必要的服务
  • 限制同时打开的Syn半连接数目
  • 缩短Syn半连接的time out 时间
  • 及时更新系统补丁

网络设备上的设置 企业网的网络设备可以从防火墙与路由器上考虑。这两个设备是到外界的接口设备,在进行防DDoS设置的同时,要注意一下这是以多大的效率牺牲为代价的,对你来说是否值得。

1.防火墙

  • 禁止对主机的非开放服务的访问
  • 限制同时打开的SYN最大连接数
  • 限制特定IP地址的访问
  • 启用防火墙的防DDoS的属性
  • 严格限制对外开放的服务器的向外访问

第五项主要是防止自己的服务器被当做工具去害人。

2.路由器 以Cisco路由器为例

  • Cisco Express Forwarding(CEF)
  • 使用 unicast reverse-path
  • 访问控制列表(ACL)过滤
  • 设置SYN数据包流量速率
  • 升级版本过低的ISO
  • 为路由器建立log server

其中使用CEF和Unicast设置时要特别注意,使用不当会造成路由器工作效率严重下降,升级IOS也应谨慎。路由器是网络的核心设备,与大家分享一下进行设置修改时的小经验,就是先不保存。Cisco路由器有两份配置startup config和running config,修改的时候改变的是running config,可以让这个配置先跑一段时间(三五天的就随意啦),觉得可行后再保存配置到startup config;而如果不满意想恢复原来的配置,用copy start run就行了。

ISP / ICP管理员

ISP / ICP为很多中小型企业提供了各种规模的主机托管业务,所以在防DDoS时,除了与企业网管理员一样的手段外,还要特别注意自己管理范围内的客户托管主机不要成为傀儡机。客观上说,这些托管主机的安全性普遍是很差的,有的连基本的补丁都没有打就赤膊上阵了,成为黑客最喜欢的"肉鸡",因为不管这台机器黑客怎么用都不会有被发现的危险,它的安全管理太差了;还不必说托管的主机都是高性能、高带宽的-简直就是为DDoS定制的。而做为ISP的管理员,对托管主机是没有直接管理的权力的,只能通知让客户来处理。在实际情况时,有很多客户与自己的托管主机服务商配合得不是很好,造成ISP管理员明知自己负责的一台托管主机成为了傀儡机,却没有什么办法的局面。而托管业务又是买方市场,ISP还不敢得罪客户,怎么办?咱们管理员和客户搞好关系吧,没办法,谁让人家是上帝呢?呵呵,客户多配合一些,ISP的主机更安全一些,被别人告状的可能性也小一些。

骨干网络运营商

他们提供了互联网存在的物理基础。如果骨干网络运营商可以很好地合作的话,DDoS攻击可以很好地被预防。在2000年yahoo等知名网站被攻击后,美国的网络安全研究机构提出了骨干运营商联手来解决DDoS攻击的方案。其实方法很简单,就是每家运营商在自己的出口路由器上进行源IP地址的验证,如果在自己的路由表中没有到这个数据包源IP的路由,就丢掉这个包。这种方法可以阻止黑客利用伪造的源IP来进行DDoS攻击。不过同样,这样做会降低路由器的效率,这也是骨干运营商非常关注的问题,所以这种做法真正采用起来还很困难。

对DDoS的原理与应付方法的研究一直在进行中,找到一个既有效又切实可行的方案不是一朝一夕的事情。但目前我们至少可以做到把自己的网络与主机维护好,首先让自己的主机不成为别人利用的对象去攻击别人;其次,在受到攻击的时候,要尽量地保存证据,以便事后追查,一个良好的网络和日志系统是必要的。无论DDoS的防御向何处发展,这都将是一个社会工程,需要IT界的同行们来一起关注,通力合作。

参考资料

关于作者 徐一丁,北京玛赛网络系统有限公司方案设计部高级工程师,从事IT工作多年。目前主要进行国内外安全产品评测与黑客攻击的研究。有丰富的网络安全设计与实施经验,并给各大电信公司如中国电信、吉通公司、联通公司等进行过系列安全培训。

来源: [http://www.ibm.com/developerworks/cn/security/se-ddos/](http://www.ibm.com/developerworks/cn/security/se-ddos/)

以下是参考资料页内容:

Last modified: Thu Jul 4 15:06:53 PDT 2013

Distributed Denial of Service (DDoS) Attacks/tools

  • Some General Subjects/Themes


Dave Dittrich \

本教程为在win7系统中安装苹果 Mountain Lion 双系统的图文教程

Posted on

本教程为在win7系统中安装苹果 Mountain Lion 双系统的图文教程

本教程为在win7系统中安装苹果 Mountain Lion 双系统的图文教程, 如果仅是想要安装苹果尝鲜,建议在虚拟机中安装,请参考:VMware虚拟机安装MAC OS X Mountain Lion详细图文教程 如果对PC机安装黑苹果有兴趣的朋友,请详细观看本教程,以免带来不必要的麻烦。 在安装苹果MAC OS X双系统之前,确认BIOS可以开启AHCI(必须) 安装苹果MAC OS X双系统步骤: A、工具准备 B、制作维护盘 C、分区并写入维护盘镜像MacPE D、安装windows版变色龙 E、变色龙引导制作完整安装盘 F、变色龙引导完整安装盘安装Lion系统 A、工具准备

  1. Win7下软件准备(A-E下载:Windows下相关软件.rar(大小7138k,下载次数:41830),F:下载地址) a. Windows版Chameleon b. HFS+Explorer、JRE c. TransMac9.1 d. 硬盘安装助手 e. DiskGenius f. JRE
  2. 安装盘文件准备(下载地址:安装盘所需文件准备.part1.rar(大小15729k,下载次数:30937) 安装盘所需文件准备.part2.rar(大小13237k,下载次数:24621)) a. MAC OS X 系统安装文件 b. 根目录放置Extra文件夹,其目录结构如下: Extra/dsdt.aml (非必需, 假如碰到AppleACPIPlatform.kext、IOPCIFamily.kext的错误请尝试加上自己的dsdt) Extra/org.chameleon.Boot.plist (1105版变色龙起,之前版本请用com.apple.Boot.plist) Extra/smbios.plist (非必需) Extra/Extensions/AppleACPIPS2Nub.kext Extra/Extensions/ApplePS2Controller.kext Extra/Extensions/FakeSMC.kext Extra/Extensions/NullCPUPowerManagement.kext c. App、Utilities.plist、InstallerMenuAdditions.plist和Frameworks & PrivateFrameworks(制作维护盘需要)。 d. Mac OS X 镜像(下载:InstallESD.rar(大小43k,下载次数:6923)) B、制作维护盘
  3. 安装jre,之后安装HFS+Explorer.exe。
  4. 用7-zip提取InstallESD-10.8.dmg至InstallESD-10.8文件夹,之后会在InstallESD-10.8InstallMacOSX.pkg下得到InstallESD.dmg Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片1
  5. 提取InstallESD.dmg。打开HFS+Explorer, 点file-load file system from file…,载入刚才解压得到的InstallESD-10.8InstallMacOSX.pkgInstallESD.dmg,弹出对话框选择 Apple_HFS 后点确定 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片2 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片3
  6. 提取BaseSystem.dmg、mach_kernel及Packages文件夹,提取到Temp目录,弹出对话框选是。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片4 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片5 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片6 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片7
  7. 用HFSExplorer载入BaseSystem.dmg,打开菜单Tools-Create disk image...重新打包建立新的可写盘dmg,命名为BaseSystem-Install,保存在Temp文件夹下面 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片8 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片9 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片10
  8. 替换Osinstall,放置Extra、mach_kernal、及 Packages 文件夹。打开TransMac9.1,菜单file-open disk image,打开刚才保存的BaseSystem-Install.dmg文件 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片11 a. 把Extra文件夹及mach_kernel拖拽复制至TransMac窗口根目录HFS+ Volume文件夹下 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片12 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片13 b. 把OSInstall拖拽至System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Versions/A/文件夹下替换原文件 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片14 c. 删除System/Installation/下的Packages快捷方式并新建一个Packages文件夹,并把刚提取的Packages下的OSInstall.mpkg文件拖拽拷贝至Packages文件夹。我们这里不拷贝整个Packages到System/Installation/下,不然会提示空间不足无法拷贝完。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片15 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片16 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片17
  9. 实际上进行到上一步,就完成了大家常说的懒人版的制作过程。剩下Packages文件夹该怎么办呢,大家常用的方法是先用硬盘助手把镜像写入硬盘,再安装MacDriver后进win系统反复一堆操作之后打开mac盘去拷贝替换这些文件。这里不使用这个方法,我们会给这个dmg添加三个软件:Finder、Chameleon Wizard和invisibliX。这样我们之后增删文件及安装mac版变色龙等操作就不再需要win系统,直接引导维护盘就可以进行之后操作。下面我们多做几步: a. 将Finder拖拽复制到System/Library/CoreServices目录内(Finder要对应系统版本,这里是10.8):Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片18 b. 将Chameleon Wizard和invisibliX拖拽复制到/Applications/Utilities下 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片19 c. 解压 Frameworks & PrivateFrameworks.7z后到Frameworks & PrivateFrameworks文件夹,拖拽复制SystemLibraryFrameworks下的Collaboration.framework和AddressBook.framework到dmg的对应目录,拖拽复制SystemLibraryPrivateFrameworks下的PhoneNumbers.framework和InternetAccounts.framework到dmg的对应目录(Frameworks & PrivateFrameworks同样对应系统版本,这里是10.8): Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片20 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片21 d. 将InstallerMenuAdditions.plist和Utilities.plist分别拖拽复制到dmg的/System/Installation/CDIS/Mac OS X Installer.app/Contents/Resources/和/System/Installation/CDIS/Mac OS X Utilities.app/Contents/Resources/目录替换原文件(作用是在menubar上添加Finder和软件的菜单,并可以在安装器和实用工具之间来回切换,大家可以参考这两个文件的内容照猫画虎,若用用记事本修改,保存时需用utf-8编码。另外只有少数几个软件可以在安装盘下运行) Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片22 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片23 这样类似PE的dmg维护盘镜像便制作完成,体积不大,可写入U盘或者移动硬盘的一个分区,作增改文件维护之用。我们称之为MacPE、维护盘都可以,也可以叫它没有packages的懒人版,且在接下来加入Packages文件夹制作完整安装盘的操作过程也不再依靠Win环境和MacDriver,仅依靠该dmg镜像即可。 C、分区并写入维护盘镜像MacPE 说在前面,建议新手或者不细心的朋友再第一次做分区及写镜像操作时在移动硬盘上进行,若你的机器没办法从移动硬盘引导,则建议在进行分区及后续操作之前先用DiskGenius备份硬盘的分区表,之后把分区表保存在本机之外的地方(若你的WinPE是32位就用32位的DiskGenius来备份,64位DiskGenius备份出来的可能用不了): Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片24 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片25 分区概况: 1.5G - PE维护盘(BaseSystem-Install.dmg)5G - 完整安装盘(BaseSystem-Install.dmg+Packages)10G - Lion系统(若你打算把Lion作为常用系统的话建议分60G以上) 先保证有30G左右的空闲空间,我这里的例子,已有的主分区不超过2个,100M保留空间已占用一个主分区(如果已经有3个主分区,那新压缩的分区都只能是逻辑分区不能转为主分区,或者你无需努力尝试转为主分区,逻辑分区亦可,在逻辑分区上安装后可能需要借助WinPE来修复Win系统的引导及激活Win分区为活动分区,这里不表。注:转换为逻辑分区请不要把win系统盘转为逻辑分区了,如果你实在转不了或者完全没有头绪,建议转主分区这几个过程略过即可)。 a. 桌面,我的电脑右键选择管理,打开的界面选择磁盘管理。从最后一个分区开始压缩,我们这里先压缩25G左右给安装盘和Lion系统盘,你也可以多压缩一些能多分一个区来给mac系统保存数据。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片26 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片27 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片28 b. 在未分配上点右键选 新建简单卷,分配1.5G给维护盘,自动分配一个驱动器号,不格式化。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片29 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片30 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片31 在剩余空间分配5G左右给安装盘,剩下的都分给Lion系统,不分配驱动器号,不格式化 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片32 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片33 c. 打开DiskGenius,以我的操作为例,先把E盘转为逻辑分区,然后把在刚才分出来的20G左右分区上点右键选择“转换为主分区”,最后点保存更改(注意:转换为逻辑分区请不要把win系统盘转为逻辑分区了,如果你实在转不了或者完全没有头绪,建议转主分区这几个过程略过即可)。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片34 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片35 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片36 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片37 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片38 作为示例,这样分出来的分区图貌似不大好看,不过目的达到了。我的建议是如果想重新来过的话,弄掉那100M隐藏分区,硬盘分区的时候前面可以准备两三个主分区,这样扩展分区就排在后面。 d. 以管理员方式运行硬盘安装助手,选择刚才制作的BaseSystem-Install.dmg,勾掉红圈的地方,目标分区选刚分出来的安装分区,点开始后不要做其他操作,等待日志出现Change partition type to AF: Success. All done, have fun! Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片39 e. 打开DiskGenius,修改刚才三个盘的分区参数,手动输入AF,确认后点保存更改。 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片40 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片41 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片42 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片43 D、Windows版变色龙安装 管理员方式运行Chameleon Install 1806 for win下的Chameleon Install.exe,点安装。如果有100M隐藏分区,要先打开磁盘管理给该分区分配一个盘符,然后点安装,安装后再删掉100M分区盘符 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片44 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片45 E、变色龙引导制作完整安装盘 安装完变色龙之后重启,选择chameleon选项 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片46 选择最后一个苹果图标的选项,底部boot处可以输入一些命令,比如输入-v,可以命令行方式引导方便我们查看可能碰到的问题,若什么都不输则以图形方式引导,之后按回车继续 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片47 之后按回车继续 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片48 等待一点时间,会引导至如下界面 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片49 下拉选择框内选择一种语言之后继续 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片50 在menubar上点“实用工具”,选择“磁盘工具” Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片51 文件-菜单-打开磁盘映象,找到BaseSystem-Install.dmg并打开 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片52 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片53 先选择之前的5G分区,切换到抹掉标签,格式改为Mac OS扩展(日志式),然后抹掉 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片54 接下来点选恢复标签,Mac OS X Base System设为源磁盘,之前的5G为目的磁盘,确认无误后点恢复按钮,弹出对话框选抹掉 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片55 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片56 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片57 接下来会把Packages文件夹拷贝至该安装盘分区内 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片58 关闭磁盘工具后在menubar上点“实用工具”,选择“Finder…”,menubar上会显示Finder菜单,文件下拉选择“新建Finder窗口” Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片59 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片60 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片61 菜单,选Finder偏好设置,边栏标签里勾选“电脑”,进入如图所示目录设置显示选项 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片62 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片63 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片64 勾选项目简介后方便识别刚写入的安装盘,在安装盘上点右键显示简介,把名称更改为Lion 10.7.3 Install方便我们识别 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片65 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片66 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片67 新建一个Finder窗口,找到最开始提取出来的Packages文件夹,拷贝到Lion 10.7.3 Install/System/Installation路径,覆盖原文件夹 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片68 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片69 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片70 至此,完整的安装盘已经制作完毕。重启引导进入Lion系统安装过程 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片71 F、变色龙引导完整安装盘安装Lion系统 与E步骤引导过程一样,这里选择Lion 10.7.3 Install引导系统安装,若要看命令行方式,则在左下角输入-v,方便我们观察引导过程中如果出现失败可以知道大概出在什么问题上 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片72 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片73 进入安装界面后,选择实用工具下的磁盘工具,选择分给Lion的分区,设置如图,然后抹掉,之后关闭磁盘工具 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片74 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片75 安装器中点继续 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片76 选择Lion分区,单击安装,然后等待10分钟左右 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片77 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片78 安装完毕,重启 Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程图片79 论坛火爆热帖推荐: U盘安装Windows8教程 **Win8 硬盘安装过程图解 [Windows 8 RTM正式版试用](http://diybbs.zol.com.cn/1/34036_1214.html) [Windows 8 Enterprise N RTM正式版下载(32位+64位+简体、繁体语言包下载)**](http://diybbs.zol.com.cn/1/34036_1211.html)

来源: <【Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程】-MAC OS论坛-ZOL中关村在线>

破解Google Gmail的https新思路

Posted on

破解Google Gmail的https新思路

最近,Google针对Gmail被攻击事件,全面默认启用了始终以https访问Gmail的方式了。但是,对于可以动用整个国家力量的黑客来说,从网络通讯数据中(在此不讨论对用户电脑种木马破解https的情况,只讨论在网络通讯数据中破解https的方法)破解https除了暴力破解(暴力破解https即使按照现在的集群计算能力仍旧需要几百至几万年不等)之外真的别无他法了吗?事实并非如此。

我们知道,https的安全性主要是由SSL证书中的公钥和私钥来保证的。浏览器与服务器经过https建立通讯的时候(不考虑SSL代理方式需要用户提交证书的情况,因为我们现在讨论的是浏览器访问网站,和SSL代理无关)会按照以下步骤保证通讯的安全性:

1、浏览器连接服务器,服务器把SSL证书的公钥发送给浏览器

2、浏览器验证此证书中的域是否和访问的域一致(比如用户访问https://mail.google.com/时,浏览器验证服务器发送过来的SSL证书的公钥中的域是否为mail.google.com或/*.google.com)并没有过期

3、如果浏览器验证失败,浏览器通知用户证书有问题,让用户选择是否继续

4、如果浏览器验证成功,那么浏览器随机生成一个对称密钥并使用接收到的SSL证书的公钥进行加密并发送给服务器

5、服务器通过SSL证书的私钥对收到的信息进行解密并得到浏览器随机生成的对称密钥

6、最后服务器和浏览器都通过这个对称密钥进行通讯了(为什么不直接使用公钥和私钥进行通讯?因为非对称加密比对称加密效率低)

这个方案看似完美,却无法抵御中间人攻击,攻击者可以按以下步骤实施攻击截取https通讯中的所有数据:

1、攻击者伪造一个Gmail的SSL证书,使其中的域为mail.google.com或/*.google.com,并设置合适的证书过期时间

2、攻击者等待访问者的浏览器访问Gmail时,通过DNS劫持或IP伪造(对于有路由器控制权限的黑客来说简直轻而易举)的方法使其访问到攻击者的服务器上

3、攻击者把伪造的SSL证书公钥发送给浏览器

4、浏览器验证SSL证书的域和过期时间都没错,认为访问到的就是Gmail本身,从而把对称密钥发送给黑客服务器

5、黑客服务器把伪造的Gmail网页通过收到的对称密钥加密后发送给浏览器

6、访问者通过浏览器输入Gmail帐户,发送给黑客服务器,黑客服务器通过收到的对称密钥解密后成功获得访问者的Gmail密码

为了抵御这种中间人攻击,SSL证书需要由可信的SSL证书颁发机构颁发,形成一个证书链(比如Gmail的证书链为:最底层为网域mail.google.com,上一层为Thawte SGC CA证书颁发机构,最顶层为很有名的VeriSign证书颁发机构)。那么,浏览器除了需要验证域和有效期外,还要检查证书链中的上级证书公钥是否有效,上级的上级证书公钥是否有效,直至根证书公钥为止。这样就可以有效避免中间人攻击了,因为根证书公钥都是预装在操作系统中的,黑客如果不是暴力破解,无法得到根证书的私钥,如果黑客自己生成一个私钥,浏览器验证根证书公钥的时候发现无法通过操作系统中预装的公钥加密数据后使用这个私钥进行解密,从而判定这个公钥是无效的。这个方案也是现在https通讯通常的方案。

那么,这个现在所有的浏览器正在使用的https通讯方案就无懈可击了吗?答案仍是否定的。我们可以看到,在后一个方案中,https的安全性需要在证书颁发机构公信力的强有力保障前提下才能发挥作用。如果证书颁发机构在没有验证黑客为mail.google.com的持游者的情况下,给黑客颁发了网域为mail.google.com的证书,那么黑客的中间人攻击又可以顺利实施:

1、攻击者从一家不验证mail.google.com持有者的SSL证书颁发机构WoSign那里得到了网域为mail.google.com的证书,此证书的证书链为:最底层为网域mail.google.com,上一层证书颁发机构为WoSign,顶层证书颁发机构为VeriSign

2/3、第二、第三个步骤同上一个方案的中间人攻击的第二、第三个步骤

4、浏览器验证SSL证书的域和过期时间都没错,继续验证证书链:

4.1、最底层的网域mail.google.com证书公钥不在操作系统中,无法验证其访问到的就是Gmail本身,继续验证上一层证书颁发机构

4.2、上一层证书颁发机构WoSign的公钥也不在操作系统中,仍旧无法验证其有效性,继续验证上一层证书颁发机构

4.3、浏览器看到顶层证书颁发机构VeriSign的公钥在操作系统中,认为证书链有效,从而把对称密钥发送给黑客服务器

5/6、第五、第六个步骤同上一个方案的中间人攻击的第五、第六个步骤。黑客成功获得访问者的Gmail密码

然而,不验证域名持有者就颁发证书的情况在国外几乎不会发生,但是在国内就不一定了。针对破解目标,国内证书颁发机构WoSign(在此只是举例国内比较有名的证书颁发机构WoSign,并不代表WoSign今后一定会这么做)很有可能为了上级要求颁发了证书给非域名持有者的黑客,从而使得破解目标的Gmail密码被黑客截取。

那么,国内的破解目标是不是使用https的Gmail也无法保证安全了呢?欢迎与我进行探讨。 来源: [http://www.williamlong.info/archives/2058.html](http://www.williamlong.info/archives/2058.html)

成为一个破坏者的第一部分:Web安全

Posted on

成为一个破坏者的第一部分:Web安全

成为一个破坏者的第一部分:Web安全

在我看来,没有什么比挑战安全领域更有挑战性。当强大的软件一个接一个接踵而至,你所需要做的就是破解他,这好比是一场围棋游戏。当你每下一步棋,你的对手——软件的设计者和开发者,通过代理——作出相应的回应。正如你所知的,赢的途径只有一条,你将会利用大脑的每一部分,找出链条中的弱点。

当我找到正确的击破点,并且整个系统崩溃的时候,我觉得我找到了自己。你也会的。

序言

这篇博客的目的并不是要全面地去讨论;实际上,它是相反的。我的目的是教会你关于安全上足够的东西——尤其是软件安全——你可以自己去深入学习其他东西。为了轻松去学习,我会在通篇博客中放置各种资源的链接;在这里,Google也是你最好的朋友,它在这个主题上有上百万的资源。

在你读了正文部分后,你可以跳去其他的你认为合适的任何部分(包括其他由之而来的博客),因为它们是独立编写的。

这篇博客主要关注Web安全。对于底层安全和加密的博客即将发布。

正文

预备知识

要想出一些安全领域的预备知识是比较难的,这知识由于这领域的涉及面太广。然而,下面的东西还是必需要有的:

  • 熟悉一种或多种编程语言(没有人会让你用你不会的语言来写小说)。如果你感兴趣的是底层的安全,那就必需要会一种底层语言;C是最好的。
  • 了解计算机的原理和它是怎样工作的。不要求你能够用铁罐和线组装层一个CPU,但你要能够解析:

  • (Web) HTML是怎样转换的以及JS是怎样在页面上交互的。

  • (Web) HTTP协议是怎样工作的。

  • 实际上,写一个代理。你最后就做了很多这些东西。(这实际上是足够重要的,某天我可能会写一个关于这个的博客。)

  • (底层) 指针是怎样工作的,栈是怎样布局的,堆是什么东西,以及(附加要点)系统调用是怎样工作的。

在需要的地方,我会讲下更多的特殊预备知识。

心态

在我继续之前,我需要触摸一下破坏者的心态。你的目标并不是保存用户交互,或是程序的数据流。你的目标是回答一个简单的问题:在什么情况下,程序无法完成其既定目标?

或许对此最好的例子就是网络应用中存在的跨站脚本攻击;攻击者可以在页面之外输出未经过滤的内容,允许其在页面中插入任意的HTML代码。正常的数据流存留——从用户到页面的数据——但由于数据中含有HTML代码,页面被完全损坏了》

预期和实际行为的区别在于你对所有可能性的探寻——无论是下节中描述的标准bug,还是你正测试的问题域的特有逻辑缺陷。

网络安全

必用工具

下面是一个你的兵器库中必备工具的列表。其中一些是很多工具的集合——除非特别提及,它们大多是可以相互替换的。

  • HTTP(S) 代理——你会经常用到,它将允许你在传输过程中分行和修改数据。

  • Burp 代理——除非有理由,否则你值得拥有。这是业内标准,学习曲线很浅。

  • mitmproxy
  • Charles 代理 (界面非常糟糕,只在对 AMF 时使用它。)
  • DirBuster —— 对查找“隐藏”的文件/目录很有用。
  • PadBuster —— 侦查填充溢出漏洞很有用。
  • Python or Ruby —— 对任务进行自动化处理。

跨站脚本漏洞(XSS)

跨站脚本是网站最常见的漏洞。这个概念很简单:攻击者的数据发送到页面没有经过合适的过滤,使攻击者的代码可以在页面上下文内执行。

反射XSS(Reflected XSS)是攻击者的注入(比如查询字符串)后页面直接显示攻击结果。这是最常用的也是使用最多的CSRF攻击方式(见下一节)。他们可以被许多现代Web框架默认防御掉。

存储XSS(Stored XSS)是攻击者把数据注入到存储单元中——一般是数据库——在此后的某个时段无过滤的输出结果。这种XSS没有反射XSS普遍,但是杀伤力更大,因为很容易影响到大量用户。和反射XSS一样,许多框架默认也可以防御。

基于DOM的XSS(DOM-based XSS)是注入到JavaScript中,浏览器无过滤的输出结果。这种XSS相当罕见但是无法被框架防御。因而相对别的XSS形式,基于DOM的XSS在逐渐增多。

在所有情况下,他们都可以被输出前的数据过滤阻止,但重要的是正确地编码数据。例如HTML编码没办法防御数据中script标签中的代码;这样JS字符串也需要编码。

  • OWASP (The Open Web Application Security Project)
  • Wikipedia

    跨站请求伪造(CSRF)

CSRF攻击很简单,但很常见很有效。基本的原理是攻击者把受害者引导(重定向或Email中的链接)到目标网站上。这个页面带有执行请求的数据,比如银行事务。从后端看,就像是用户自己做的一个正常的请求。

防御CSRF的方法是在表单数据中加入随机令牌(token)。每次请求后端都验证token,确定用户会话token和表单数据token相同,否则拒绝请求。尽管主流框架都内置CSRF防御,但CSRF仍然是常见的攻击方式。

SQL注入

SQL注入是目前Web应用中最著名最普遍的漏洞。它是利用SQL查询时没有合适的转义,攻击者可以阻断原有查询并添加自己的查询代码。

根据代码和数据库配置情况,他可以造成从较大(盲注入查询数据)到在灾难级(任意代码执行,文件访问权限和数据破坏等)的破坏。主流的框架使用自带的ORM防御SQL注入:所有都用预备参数查询。当原生查询和攻击数据混合时,必须进行合适的转义。

Shell注入非常罕见,但非常严重。如果用户无过滤的传递shell命令,有可能——通过引号,分号或其他符号——同时执行其他命令。

使用用户数据调用shell命令最好把命令打包数组里(这是自然免疫)提供给程序,而且对原始命令字符串拼接的命令恰当的转义。

目录遍历

目录遍历通常用于将用户信息直接指向系统中文件路径的情形。这样,如果没有适当的过滤,可能插入一个 “..” 目录的引用,就可以查阅目录树。它可能允许任意的读/写/删除文件操作,这是一个非常常见的漏洞。

授权不足 指的是某些功能或数据没有设定访问控制的情形。有个例子,一个正确设定访问控制的管理控制台有一个对有管理员身份需求的功能的链接,而此功能本身并未正确的设置访问控制。

这通常用于强制浏览攻击,以非法控制数据。

强制浏览

强制浏览——又叫 直接对象引用——是一种嫁给你实现细节以可修改的方式暴露给用户的漏洞类型。通常,它的形式是在请求中出现一个可以很容易修改的 id 参数,使攻击者可以轻易的列举出可能的标识符,以访问和修改数据。

其它

上面的话题是一个很好的开始,它们是我在测试现实世界中的应用时,不断出现的东西。当然,我给出的列表并不全面,所以下面列出了一些其它的主题,你应该读一下:

处于对 Natas 网络安全的兴趣,我在近期指点了很多人。在这网络游戏中,你将使用到很多我在本文中提到过得技术,还有一些技术我并没有提及。它们也很有趣。

其它优质资源:

深入学习

希望完成练习并深入到实际应用中去?现在,很多公司都有 Bug 奖励系统,这样你不仅可以合法的测试它们的软件,同时还可以由自己发现的 Bug 获取报酬。你可以在 这里找到这些软件的列表。 Happy hacking,

时间:2013-03-19 08:47来源:开源中国社区 作者:oschina责任编辑:陈华才

来源: [http://www.linuxeden.com/html/news/20130319/137120.html](http://www.linuxeden.com/html/news/20130319/137120.html)

电信数据网安全评估准则的研究

Posted on

电信数据网安全评估准则的研究

电信数据网安全评估准则的研究

原文链接:http://www.securitycn.net/html/research/service/3205.html

摘要 提出电信数据网的安全评估框架,重点讨论了电信数据网安全评估准则、电信数据网安全等级划分原理、电信数据网安全评估过程、电信数据网安全评估工具。最后,指出了电信数据网安全评估发展趋势。

电信数据网作为国民经济的基础设施,与国民经济各领域的联系日益紧密,网络安全问题对整个国民经济信息化进程有着举足轻重的战略作用。电信数据网安全作为国家信息安全的一个重要组成部分,要与国家信息安全总体要求和总体部署保持一致,要坚持积极防御、综合防范的方针,提高网络防护能力和风险识别能力,加强对电信网的安全评估工作。

近年来,中国电信网络环境更加复杂,网络安全威胁更加严重,病毒、黑客、垃圾邮件等频繁困扰着企业和用户。网络安全对今天的电信运营商来说已是重中之重。随着电信网络从原来的信息传输通道走向今天的多元化网络平台,再加上运营商本身竞争的加大以及客户对服务质量的不断提升,电信网络的安全、可靠成了运营商必须面对的问题。因此,电信网络运营商要保证电信网络的正常运行,就必须对其进行全面的安全评估。电信系统在进行网络安全设备选型、网络安全需求分析、网络建设、网络改造、应用系统试运行、内网与外网互联、与第三方业务伙伴进行网上业务数据传输、电子政务等业务之前,进行安全评估会帮助电信运营商在一个安全的框架下进行组织活动。通过安全评估来识别风险大小,通过制定信息安全方针,采取适当的控制目标与控制方式对风险进行控制,使风险被避免、转移或降至一个可被接受的水平。

本文就电信数据网安全评估的若干关键问题,包括电信数据网安全评估准则、电信数据网风险分析方法、电信数据网安全等级划分原理、电信数据网安全评估过程、电信数据网安全评估工具等,进行了探讨。

1、TDN安全评估体系

为了使评估结果达到更好的可比性,评估应在权威的评估体制内执行。

其中,电信数据网安全评估认证中心是经电信主管部门授权,代表国家对电信数据网进行安全评估认证的管理机构。电信数据网安全评估认证中心根据国家授权,依据电信数据网安全评估准则,结合相关的国家质量认证的法律、法规点开展评估认证工作。

授权评估机构是电信数据网安全评估认证中心根据业务发展和管理需要而授权成立的、具有评估能力的独立机构。

最终的评估结果应进入认证过程,该过程是一个针对评估结果的独立检查,并为评估发起者生成最终的证书或正式批准文件,如图1所示。

TDN安全评估体系

图1 TDN安全评估体系

2、电信数据网安全评估准则

电信数据网安全评估准则是GB/T 18336在电信领域的扩展和补充。它以信息技术安全性评估准则为基础,吸取ITU X.800系列的有关安全的建议,通过对BS7799、SSE-CMM进行结合、扩展和补充,形成对电信数据网安全性评估的评估准则。

2.1 电信数据网的关键资产

资产是所要保护的数据网对象,所有威胁都必须针对资产才能产生影响,只有通过资产载体才会影响数据网使命的完成与实现。资产可以分为三大类:物理资产、信息资产和服务资产。物理资产的安全审查着重于保护那些对持续运转非常关键的设备(如,路由器、交换机,数据存储设备和主机等)。数据网络中传统的内部服务资产包括交换系统、运营支持系统、网络管理系统和辅助的支持系统。近来,还包括了信令处理系统及其部件、数据库服务器设备、智能网络管理、支撑网设备等。外部服务资产包括远程智能维护和测试、服务器托管或租赁、网络广告服务、各种业务的网络接入和电信企业一些无形资产等。信息资产通常是最有价值的资产,在数据网运营过程中产生的同数据网本身相关的有价值的信息以及数据网所存储、处理和传输的各种相关的业务、管理和维护等信息,包括知识资产、客户资料、业务信息流和管理信息等。

2.2 电信数据网的安全径纬度

对数据网安全性的评估从安全功能、安全域和安全活动三个角度构成一个三维结构,如图2所示。

TDN安全评估准则的三维结构

图2 TDN安全评估准则的三维结构

第一维(x轴)是安全功能,给出了被保护对象的基本安全功能需求,包括身份认证、访问控制、数据保性、数据完整性、不可抵赖、可靠性、可用性和安全审计。

访问控制,保证只有授权的人员和设备才允许访问网络元素、存储的信息、信息流、业务和应用;身份认证,保证参与通信的实体声称的身份的有效性,并保证实体不企图伪造或以非授权的方式回放前面的通信流;不可抵赖,不可抵赖性是防止用户事后否认其实施了某一行为的能力。这些行为包括制造、发源、收到和发送内容,例如发送或接收消息、发起或接受呼叫、参加语音和视频会议等等。不可抵赖性要求提供对数据发送或接收的不可伪造的证明,防止发送者否认一个正确的消息或接收者否认接收。网络可提供下面两种或其中之一形式:数据接收者得到数据来源的证明以避免发送者不诚实地否认其发送了数据或其内容;或发送者得到数据传送的证明以免接收者事后否认接收了数据或其内容。数据保密性,保证数据内容不被非授权的实体理解;可靠性,保证信息只在授权的端点之间流动,而不被拦截或转移;数据完整性,保证数据的正确性或精确性,非授权活动能够被检测;可用性,保证对网络元素、存储的信息、信息流、业务和应用的授权访问不被否决;安全审计,保证即使通过对网络活动进行观察也不能获得有用的信息,这些信息包括地址位置、IP地址等。

第二维(y轴)是安全域,给出了数据网的三大安全域,包括核心层、汇接层和接入层。每个安全域的具体功能如下:

(1)核心层区域:主要放置核心交换设备,用于汇接数据流连接骨干网或进行本局域网不同区域之间有条件的信息交互;

(2)汇接层区域:主要放置汇接设备和交换设备,用于汇接数据流连接核心层网络或本局域网内的有条件信息交互;

(3)接入层区域:主要放置各种接入设备及其交换设备,用于汇接数据流连接汇接层网络或本局域网内的有条件信息交互;

第三维(z轴)是安全平台,从管理、控制、用户三个角度去考虑系统的安全问题。

安全活动分别讨论与网络管理活动、网络控制或信令活动和终端用户活动相关的特定安全需求。在安全管理中详细讨论的管理层面关注运行、管理、维护和提供(OAM&P)服务活动,如向某个用户或网络提供服务。控制层面与独立于网络所用的媒介和技术的端到端通信的建立(和修改)方面的信令有关。终端用户层面讨论用户访问和使用网络的安全,也包括保护用户数据流。

3、电信数据网等级划分原理

由于数据网本身的复杂性:覆盖地域广阔、结构复杂、涉及的行政部门和人员众多等,其涉及的安全问题从物理安全、网络安全、系统安全一直到应用安全、数据安全、安全管理、安全组织等等。凡是涉及到影响正常运行的和业务连续性的都可以认为是电信数据网安全问题。同时电信数据网由于不同地区、不同级别,不同地域和行政隶属层次的安全要求属性和强度存在较大的差异性。不同的电信数据网系统有着不同的安全需求,所以必须从实际出发,综合平衡安全成本和风险,优化电信数据网安全资源的配置,保护重点。为了达到这一目的,应该进行电信数据网的安全等级划分,以此来保证最有效的进行安全评估。

针对电信数据网的特点,以评估对象框架为经,以安全对策框架为纬,对评估对象逐个进行威胁分析,从而形成电信数据网安全等级划分体系(见图3)。

等级化安全评估体系设计

图3 等级化安全评估体系设计

具体从三个方面进行等级划分:

一是评估对象的等级化;通过资产识别和复制,建立评估对象框架,把评估对象分级。

二是安全保护策略的等级化设计对策框架,这本身就是等级化的一种手段。

三是威胁等级化;分析系统将遭遇的威胁,通过综合考虑威胁的强度和概率,将威胁也划分为若干个等级。

由于电信数据网结构的复杂性和庞大性,电信数据网中的设备数量和类型众多,而安全性评估过程是一个复杂和繁复的过程我们不可能对所有的设备利用该模型进行评估。因此可以利用上面提出的模型对电信数据网中的设备划分出等级,根据不同级别的安全需求对不同级别的设备进行评估。

在电信数据网安全评估的过程中,由于决定电信数据网评估对象价值的因素众多,其各个因素的取值又多具有模糊性,可以采用多因素模糊综合评判模型来对其进行分析。

4、电信数据网评估过程

电信数据网评估过程就是在评估标准的指导下,综合利用相关等级划分原理、评估工具,针对电信数据网展开全方位的评估工作的完整历程。

4.1 评估的角色

电信数据网的安全评估是一个复杂的过程,需要各种人员的参与。具体包括:评估发起者、评估者、电信运营商、电信设备制造商和软件提供商、监督和认证机构等。评估者指具有资质的TDN评估企业或者政府机构。评估发起者通常是电信运营商或者其主管部门。监督和认证机构指由权威的电信数据网认证机构来担任。

4.2 评估的过程简介

基于TDN安全评估准则的电信数据网评估过程可以分为三个阶段:

第一阶段:文档准备。该阶段用于准备需要的评估文档,主要包括电信数据网的安全目标(TDN ST)和待评估的电信数据网的相关文档。只有这两个文档完成后,评估过程才能继续。

第二阶段:执行评估。该阶段的主要内容是根据第一阶段的文档,按照电信数据网安全评估方法(TDNEM)对TDN进行评估,最后得出TDN的评估技术报告(ETR)以及风险分析报告(RAR)。

第三阶段:结论及认证。在该阶段,评估者把评估技术报告提交给认证者。经认证者批准后形成认证报告(VR)。风险分析报告有助于电信运营商改编组织安全策略减少安全风险,保护电信数据网的资产。

每个阶段的不同参与者分别执行不同的任务,共同完成电信数据网安全评估的全过程。

5、分布式评估工具系统的设计

电信数据网具有分布式的结构,包括多个节点,每个节点可能成百上千种设备,并且分布在不同的地理位置上。评估过程相当复杂,需要采集大量的数据,系统需要保留所有采集数据以备日后查询、核对、检验、分析,而且需要评估人员具有丰富的评估经验。评估过程需要评估发起者、评估者、电信设备和软件提供商、认证机构、被评估机构等各种人员的参与和配合。因此,开发一个适合于分布式环境的电信数据网安全评估辅助工具系统就显得至关重要(见图4)。这对于减少电信数据网评估的时间、降低评估的复杂性、节省资源、提高评估结果的客观性和准确性具有重大的意义。

分布式评估工具系统的网络拓扑图

图4 分布式评估工具系统的网络拓扑图

系统的实现可以基于浏览器/HTTP服务器/业务服务器/数据库服务器的四层模式。业务服务器运行的EJB或者JSP组件,在Eclipse环境下 用Java语言设计实现。这些组件包括安全评估模块、风险分析模块、等级保护模块、标准查询模块和报表生成模块,是本系统的核心部分。业务服务器和数据库 服务器之间的通信接口为JDBC。需要参与到评估过程中的各个角色如评估人员、电信网运营人员、评估管理机构以及电信设备生产者等可以通过浏览器将与评估 相关的记录输入到系统中。系统将这些信息自动保存到MySQL数据库中。

在数据库系统中有包括三个子系统:基本数据系统,评估数据系统,漏洞数据库。基本数据系统为电信网安全评估提供必需的基础理论。基本系统由评估标准 库和评估规程库组成。评估数据系统主要包括风险分析数据库和等级化保护数据库。在对电信数据网安全域划分的基础上,对电信数据网的关键资产建立基于 MySQL的良好扩充性的漏洞数据库。完成系统漏洞相关数据,包括系统漏洞特征描述、应对措施(主要是系统补要程序)、系统安全配置策略等的存储。漏洞库 是系统安全隐患分析的核心,集中了常见的各类系统漏洞特征和相应的应对措施、网络系统当前的脆弱性状态,以及和系统漏洞分析应对措施相关的系统安全配置策 略。为了使系统具有较强的开放性,我们为每一条漏洞都提供了CVE编号。CVE是个行业标准,为每个漏洞和暴露确定了惟一的名称和标准化的描述,可以成评 价相应入侵检测和漏洞扫描等工具产品和数据库的基准。这样,如果在一个漏洞报告中指明一个漏洞有CVE名称,就可以快速地在任何其他CVE兼容的数据库中 找到相应的对应信息。

6、结论

为了解决电信数据网的安全问题,需要建立一套完整的评估认证体系。本文论述的以CC为基础的电信数据网安全评估体系及关键技术。

基于CC的电信数据网安全评估发展趋势:

本文研究了对已经存在的电信数据网的安全评估方案,而对于计划建设和正在建设的电信数据网安全评估过程及方法还有待讨论。

电信数据网硬件设备和软件的保护轮廓PP的制定。如果没有一定数量的PP,基于CC的电信数据网安全评估将成为空话。

具有一定智能的分布式评估工具系统的开发。地动化的评估工具有助于缩短评估的周期、减少评估的代价、保证评估结果的客观性。