基于攻击图的渗透测试方案自动生成方法.pdf

上传人:wj 文档编号:14653907 上传时间:2023-06-25 格式:PDF 页数:5 大小:530.69KB
下载 相关 举报
基于攻击图的渗透测试方案自动生成方法.pdf_第1页
第1页 / 共5页
基于攻击图的渗透测试方案自动生成方法.pdf_第2页
第2页 / 共5页
基于攻击图的渗透测试方案自动生成方法.pdf_第3页
第3页 / 共5页
基于攻击图的渗透测试方案自动生成方法.pdf_第4页
第4页 / 共5页
基于攻击图的渗透测试方案自动生成方法.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于攻击图的渗透测试方案自动生成方法.pdf

《基于攻击图的渗透测试方案自动生成方法.pdf》由会员分享,可在线阅读,更多相关《基于攻击图的渗透测试方案自动生成方法.pdf(5页珍藏版)》请在冰点文库上搜索。

基于攻击图的渗透测试方案自动生成方法.pdf

收稿日期:

20100114;修回日期:

20100303。

作者简介:

崔颖(1981),女,辽宁沈阳人,硕士研究生,主要研究方向:

网络信息安全;章丽娟(1980),女,安徽蚌埠人,博士研究生,主要研究方向:

网络信息安全;吴灏(1965),男,江苏无锡人,教授,主要研究方向:

网络信息安全。

文章编号:

10019081(2010)08214605基于攻击图的渗透测试方案自动生成方法崔颖,章丽娟,吴灏(信息工程大学信息工程学院,郑州450002)cuiying0922hotmailcom摘要:

为满足网络安全管理需要,提出一种新的渗透测试方案自动生成方法。

该方法利用被测试目标网络脆弱点间的逻辑关系,结合原子攻击知识库,通过前向广度优先搜索策略产生渗透攻击图,然后深度优先遍历渗透攻击图生成渗透测试方案,并基于该方法设计实现渗透测试预案自动生成原型系统。

实例表明该方法能够有效生成可行的渗透测试方案。

关键词:

渗透测试;攻击图;原子攻击;攻击推理;网络安全中图分类号:

TP309;TP311文献标志码:

AAutomaticgenerationmethodforpenetrationtestprogramsbasedonattackgraphCUIYingZHANGLi-juanWUHaoInstituteofInformationEngineeringInformationEngineeringUniversityZhengzhouHenan450002ChinaAbstractInordertofulfiltheneedfornetworksecuritymanagementanewautomaticgenerationmethodofpenetrationtestprogramswasproposedinthispaperThepenetrationattackgraphwassetupwiththeinferencerelationofthevulnerabilitiesinthetargetnetworkthroughtheforwardbreadth-firstsearchstrategywhichcombinedknowledgeofatomicattackThesystemproducedpenetrationtestprogramsthroughreversedepth-firsttraversalattackgraphAprototypeofpenetrationtestprogramsautomaticgeneratingsystemwasdesignedandimplementedonthebasisofthismethodTheillustrationindicatesthatthismethodcaneffectivelysetupthepenetrationtestprogramswhichprovideausefulreferencefornetworksecurityanalysisKeywordspenetrationtestingattackgraphatomicattackattackreasoningnetworksecurity0引言渗透测试是近年来新兴的一种网络安全稽核方法。

测试人员以黑客的角度,在实际网络环境下,从一个攻击者可能存在的位置,对目标网络环境作深入的安全探测,找出目标网络存在的脆弱环节,并采用各种攻击方式主动利用系统中存在的安全漏洞对目标网络进行模拟攻击,从而探查出目标网络中逻辑性更强、更深层次的漏洞。

测试人员需要向目标网络管理员提交渗透测试报告,证实网络存在的安全隐患并协助其制定更完善的安全防御措施。

当前网络安全漏洞种类繁多,导致渗透测试对象颇为复杂,一次有效而全面的渗透测试需要运用多种攻击技术。

以往的测试方法大多依赖测试人员的专业经验,对探测出的漏洞逐一进行利用,为了提高测试人员的工作效率和准确率,使测试结果的结构性和可用性更好,需要构造测试模型,用于组织并指导测试实验。

目前常用的渗透测试模型包括OSSTMM和NISTSP800-42,但其仍是采用遍历漏洞的方法进行测试,这种测试方法往往会忽略网络中各漏洞之间的逻辑关系,难以体现多阶段网络攻击和协同攻击对系统造成的影响,从而导致测试结果不够全面。

为了弥补现有渗透测试模型的不足,研究人员借鉴成熟的攻击建模思想来构造渗透测试模型,张继业等人1提出基于攻击图的渗透测试模型,杨涛等人2提出基于有色Petri网的渗透测试模型,但是基于这两种模型生成的渗透测试案例图存在冗余路径,从而导致可能生成多套冗余测试方案。

本文借鉴文献1的渗透测试模型思想,对其进行优化,提出一种新的基于攻击图的攻击测试方案生成方法。

该方法简化了攻击测试图的规模,使生成的测试方案更加优化。

1渗透测试实施流程图1描述了渗透测试的一般流程。

测试人员首先需要与客户充分沟通,了解客户法律和行业管理规定需要,说明风险与应变方式,确定测试目标。

根据所掌握测试环境信息量的多少,决定采用哪种测试方式。

测试方式有黑盒测试、灰盒测试、白盒测试。

确定测试方式后,测试人员进行测试准备,从攻击者角度进一步采集目标系统信息,包括对目标网络信息勘察、目标主机信息勘察以及社会工程勘察,确定目标脆弱点,找出入侵的可能切入点,进行模拟攻击测试。

根据模拟攻击得到的新信息,确定新脆弱点,进行进一步攻击测试,此过程循环进行,直至不再发现可进行攻击的新脆弱信息为止。

随后测试人员根据测试过程,对目标网络的服务性和防御措施进行分析评估,生成分析报告书,向客户提供防御措施改进方案。

第30卷第8期2010年8月计算机应用JournalofComputerApplicationsVol30No8Aug20102基于攻击图的渗透测试预案生成系统分析渗透测试实施的流程,可以看出测试的关键阶段是图1中的虚线框框定的部分,即测试人员从已获信息中确定目标网络具有哪些脆弱点,并判断应该如何利用这些脆弱点,采用何种攻击手段进行模拟攻击。

当前多阶段、协作式网络攻击通常会包含一系列有逻辑关系的原子攻击,每个原子攻击都是对目标网络某个脆弱点的一次利用。

前一阶段原子攻击的结果,往往是后一阶段原子攻击的前提,所以可以根据网络中存在的脆弱点之间的逻辑关系对攻击过程进行模型,对测试过程进行组织。

图1渗透测试实施流程21渗透测试预案生成系统框架黑盒测试34又被称为“0知识测试”,是指渗透测试操作人员完全处于对系统一无所知的状态。

白盒测试是指测试者可以通过正常渠道向被测者要求,取得各种资料。

灰盒测试则是指测试人员获取的信息介于这两者之间的测试。

所以白盒及灰盒测试根据可见信息获悉的多少可能省去部分信息收集的操作,黑盒测试包含了渗透测试的所有步骤和功能。

为了使渗透测试预案的适用性更广,我们面向黑盒测试方式构建渗透预案自动生成系统。

基于攻击图的渗透测试预案生成系统框架如图2所示。

图2渗透测试预案生成系统框架测试人员利用自动探测工具,如Nessus、Xscan、Saint等对目标网络进行扫描,获取到目标网络信息及主机信息,综合利用社会工程学方式或者在攻击测试过程中获取到的用户相关信息,提取出有可能成为测试攻击切入点的目标的脆弱点。

对照原子攻击知识库,确定原子测试步骤,并根据原子攻击知识库中的推理规则,推理产生后续的原子测试行为,重复推理,直至达到测试目标,生成测试攻击图。

渗透攻击图就是测试案例的集合,遍历所生成的攻击图,最终生成测试攻击路径;同时对每条测试攻击路径进行风险计算;最后生成可视化测试攻击路径图,为测试人员组织测试提供有益参考。

22原子攻击知识库测试人员利用自动扫描器勘察目标网络,能够得到目标漏洞信息,但针对具体单个漏洞应该用哪种原子攻击方式来进行模拟测试,需要查询原子攻击知识库中的漏洞同抽象原子攻击之间的映射关系。

漏洞映射关系以三元组VulnName=VulnClass,Chracter表示,VulnName对应于漏洞的唯一标识,比如CVE标号;VulnClass对应于该脆弱点可能被利用的抽象原子攻击集合;Character描述了该漏洞存在的特征,比如该漏洞存在的软件名字、版本等。

例如CVE-2009-3951=Dos,AdobeAIR-152表示漏洞CVE-2009-3951的存在特征是AdobeAIR-152软件,针对该漏洞可以采用拒绝服务类原子攻击进行模拟攻击测试。

原子攻击知识库中定义并存储了网络钓鱼、跨站脚本攻击、远程溢出、脚本注入、拒绝服务、远程系统口令猜解等多种已知原子攻击的推理规则。

每条推理规则描述原子攻击得以进行的前提条件和攻击结果。

鉴于文章篇幅,本文以跨站脚本类攻击推理规则为例进行描述。

跨站脚本类推理规则:

假设测试人员Utester探测出网站Website的SWeb服务程序存在跨站脚本漏洞XSSVuln,Utester利用该漏洞向Website提交含有脚本攻击代码code的请求,SWeb将code输出到网页page中,从而构造出攻击网页page。

若用户Uvictim浏览该网页,则嵌入其中的攻击代码就会执行,从而获取用户Cookie中的敏感数据,得到Uvictim在该网站的AWeb账户权限。

本系统利用prolog系统作为推理引擎,对应的prolog语言描述如下:

Privilege(Utester,AWeb,SWeb):

VulExists(SWeb,Website,XSSVuln),Cheatingpage(Utester,code,XSSVuln,page),Privilege(Uvictim,AWeb,SWeb),Visite(Uvictim,code)23渗透攻击图定义1渗透攻击图。

渗透攻击图是测试者为了达到渗透测试目的,对目标计算机网络系统进行模拟测试攻击预案的集合。

本系统采用正向广度优先策略生成测试攻击图。

正向是指根据目标网络状况及前期获取的信息等初始条件,推理产生原子攻击结果,从而决定后续测试步骤,直至达到测试目的。

广度优先搜索策略保证渗透攻击图的完备性,能够产生所有的渗透测试方案。

攻击图生成算法如图3所示。

系统对前期确定的目标脆弱点信息进行初始化,确定有可能进行测试的原子攻击类型加入待攻击状态队列,取队列中首元素与原子攻击知识库中的每个攻击推理规则的前置条件进行匹配,如果全部都被满足,则根据该攻击推理规则的后置条件进行状态转换。

为了避免生成的攻击图存在状态爆炸问题,采用三级判断语句限制其规模,如果所有的判断语句均满足,将此新状态节点及边加入攻击图,循环进行,直至待攻击状态队列为空。

三级判断语句分别用于限制攻击成功负责度阈值、合并7412第8期崔颖等:

基于攻击图的渗透测试方案自动生成方法相同节点、限制攻击图深度。

下面分别加以详细介绍。

1)判断原子攻击成功复杂度是否大于阈值。

定义2原子攻击成功复杂度。

原子攻击复杂度是用来衡量测试者成功利用该原子攻击难易程度的一种度量。

由于原子攻击事件带有随机性因素,是一个概率事件,受漏洞的危险级别,可利用的难易程度、先验知识多少、扫描结果可信度等影响,难以进行精确的度量,只能近似表达不同攻击之间的差别。

图3攻击图生成流程原子攻击复杂度的取值可以通过专家打分得到。

参考文献56对几百种弱点的利用方法和工具进行的分析和比较,给出了攻击复杂度的量化标准,如表1所示。

表1攻击复杂度的量化标准等级成功复杂度描述109无需测试工具有详细的测试方法207有现成可用的测试工具和详细的测试方法305无测试工具但有较详细的测试方法403公开报告此弱点粗略地提及测试方法501公开报告此弱点未给出测试方法成功复杂度低的原子攻击,成功概率较低,不易被攻击者所利用。

将这类原子攻击过滤掉,可以缩小攻击图的规模,提高后续生成测试预案的效率。

2)判断是否为状态相同的攻击节点。

参考Ammann等人7提出的单调性假设,该假设认为攻击者获得的能力是不断增长的,并且已经获得的能力不会失去。

若攻击图中含有前提及结果相同的攻击节点,则说明测试者经过攻击,其攻击能力没有变化,这与该假设相悖,所以需要合并这类具有相同状态的节点。

3)判断是否达到最大测试步骤。

定义3最大测试步骤。

最大测试步骤指一套渗透测试方案中可最多包含的原子攻击步骤数。

测试步骤过多的测试方案,说明其达到测试目标的效率较低,相应的攻击者采用此方法进行攻击的效率及成功率也较低,其对目标安全性危害较小,某些情况下可以忽略。

删除测试步骤过多的测试路径,可以有效降低攻击图的深度,控制攻击图的规模。

24测试预案定义4测试预案。

测试预案是一条由多个原子攻击组成的测试路径。

生成测试攻击后,从目标节点出发,逆向深度优先搜索渗透攻击图,就能得到一条从初始节点到目标节点的渗透测试路径。

但此时这条路径有可能存在冗余。

比较如下两条路径:

abcd同abd,两条路径都能从a到d,显然前一条路径是后一条路径的冗余路径。

所以生成的测试路径集中要消除这类冗余路径。

预案生成流程如图4所示。

首先逆向深度优先搜索攻击图,生成从目标状态到初始状态的所有攻击路径,组成集合Allpaths。

初始化最简路径集合B,令其为空集,搜索Allpaths中的最短路径shotpath,并加入集合B中。

搜索并去掉Allpaths中包含shotpath的路径,组成中转集合C,若C集合为空,说明Allpaths中的所有路径均包含shotpath路径,均为shotpath的冗余路径。

若C集合不为空,说明除shotpath外,还有其他走向的,能够到达目标的测试路径。

令Allpaths=中转集合C,重新计算新的最简路径,并加入到最简攻击路径集合B中,循环往复,直至C集合为空,则此时B集合即为最简攻击路径集合。

图4测试预案生成流程25最优测试方案的生成定义5测试路径成功概率。

测试路径成功概率是对测试者能够成功实施某套测试预案的度量。

假设为达到某一测试目标,生成的渗透测试预案集L中共有l(l1)条测试路径,其中渗透路径li(1il)共包括s(s1)步原子测试攻击,若第j(1js)步原子攻击成功复杂度为j,则测试路径li的成功概率由式

(1)计算得到:

HLi=sj=1j

(1)定义6最优测试方案成功概率最大的测试路径为该渗透测试预案集中的最优测试方案。

计算每条测试路径的成功概率,对比结果,利用式

(2)计算预案集L中的最大成功概率HL=max(HL1,HL2,HLl)

(2)最大成功概率对应的测试路径即为测试代价最小,最易8412计算机应用第30卷达到测试目的攻击路径,为预案集中的最优测试方案。

这类攻击路径可被攻击者成功利用的可能性也更大,测试人员应该首先利用该方案进行渗透测试,为网络管理员提供及时的防御策略。

26渗透测试方案生成方法性能分析本小节从有效性和复杂度两个方面,对渗透方案生成方法的性能进行分析。

261有效性传统的渗透测试主要采用线性遍历漏洞方式进行测试,难以模拟实际遇到的攻击,并且其效率低、周期长,测试结果不完善,对测试人员的技术水平依赖性较高。

使用基于攻击图的渗透测试方法,能够从被测试网络全局角度出发,分析网络中存在的各脆弱点之间的关系,同时对生成的测试方案集进行进一步检查,删除冗余方案,相比较文献12,生成的渗透测试预案更客观、准确、有效。

262复杂度基于攻击图的渗透测试预案的复杂度主要取决于生成渗透攻击图的复杂度及生成测试预案集的复杂度。

1)生成渗透攻击图的复杂度。

渗透攻击图的复杂度主要取决于被测试网络中存在的脆弱点数目及原子攻击的数量。

文献1主要参考文献8中提供的渗透测试项目,其生成的攻击图具有一定的局限性。

本文对原子攻击进行归类,构建原子攻击知识库,在测试方式完整全面的前提下,降低了攻击图的复杂度。

2)生成渗透预案集的复杂度。

生成渗透预案集的复杂度主要取决于前期生成的渗透攻击图的规模和深度,为O(n)。

本文在攻击图的生成过程中,通过限定原子攻击复杂度阈值、合并状态相同节点、限制攻击图的深度,攻击图的规模得到了有效控制。

随着网络规模的增大,攻击图规模仍在可接受范围内,相应的渗透预案集的生成时间也更加实际可行。

3应用实例31实验环境以一个简单实验网络为例,介绍如何利用该系统生成测试预案,如图5所示。

图5实验网络环境测试人员可以通过Internet从外部访问实验网络。

防火墙使用安全策略将实验网同Internet隔离开,防火墙的安全策略包括:

允许进入WebServer的网络连接和实验网向Internet的连接,切断其他一切进入实验网的流量。

实验网中各主机存在的漏洞情况如表2所示。

假设测试者前期已获得了Liu用户的相关信息,并且在该实验网络中Red主机存有大量备份资料,属于重要主机。

因此本次测试以获取Red主机的权限为目标,分析测试人员可采取的模拟攻击路径。

表2实验网主机漏洞情况表主机名用户账户名服务程序脆弱点端口FTPServerAdminFTP匿名访问21WebServerRootHTTP远程溢出漏洞80RedwangTerminal远程控制3389BlueLiuOffice本地溢出漏洞32网络安全性分析步骤步骤1将前期获取的信息转化为prolog语言,得到初始状态清单list0,如图6所示。

步骤2分析信息清单,结合原子攻击知识库,找出满足前提条件集的原子攻击,按照图3所示流程,进行攻击推理。

推理结束后生成渗透攻击如图7所示。

步骤3参考专家建议,为每步原子攻击确定成功复杂度,如表3所示。

步骤4按图4所示测试预案生成流程,遍历攻击图生成4套测试方案,计算相应的成功概率。

结果如表4所示。

图6初始信息清单表3原子攻击成功复杂度对应表攻击成功复杂度攻击成功复杂度攻击成功复杂度05070306090703010503表4测试方案成功概率对应表攻击方案攻击步骤成功概率1007500200135030004414003150根据表4计算出的测试方案及对应的成功概率对实验网络的安全状况进行分析。

通过比较,发现方案1为测试者能够成功取得Red主机权限可能性最大的方案,即测试者先通过远程溢出取得WebServer主机权限,然后以此为跳板,通过远程系统口令猜解攻击取得Red主机权限。

4结语从实践的角度来看,实现渗透测试方案的自动生成是十分必要的,它可以提高测试人员效率与准确率,对于发现潜在的多点脆弱性也是十分有益的。

9412第8期崔颖等:

基于攻击图的渗透测试方案自动生成方法图7渗透攻击参考文献:

1张继业谢小权基于攻击图的渗透测试模型的设计J计算机工程与设计2005266151615182杨涛郭义喜张弘有色Petri网在渗透测试中的应用J计算机工程20093511561853VPNpenetrationtestRNetworkIntelligencePenetrationTestTeam20044渗透测试操作实务EB/OL20091201http/wwwxfo-cusnet5张永铮云晓春胡铭曾基于特权提升的多维量化属性弱点分类法的研究J通信学报20042571071146汪立东操作系统安全评估和审计增强D哈尔滨哈尔滨工业大学计算机科学与技术学院20027AMMANNPWIJESEKERADKAUSHIKSScalablegraph-basednetworkvulnerabilityanalysisC/Proceedingsofthe9thACMConferenceonComputerandCommunicationsSecurityNewYorkACM20022172248HERZOGPOpen-sourcesecuritytestingmethodologymanualEB/OL20091210http/isecomsecurentledcom/osstmmes21pdf(上接第2141页)图2漏洞静态严重性评估系统4结语本文从评估漏洞的静态严重性的问题出发,分析了漏洞的属性,从中提取了评价漏洞静态严重性的4个指标:

威胁性、影响度、流行性和修补难易,并将属性综合评判系统理论应用于漏洞的静态严重性评估中。

应用实例证明,本文所提出的基于属性综合评价系统理论的静态严重性评估方法,漏洞的静态严重性评估结果以定性值和定量值组成的二元组方式给出,能准确有效地判定漏洞定性的静态严重性级别,又能给出定量的静态严重性分值,且静态严重性分值的大小可体现出同一级别下不同漏洞严重性的细微差别,为确定补丁的优先级提供了准确的依据。

进一步研究将致力于研究漏洞静态严重性的指标体系中语言值到数字值的不确定性转换,以期进一步完善属性综合评价系统在漏洞的静态严重性评估中的应用。

参考文献:

1CERTCERTstatisticsEB/OL20091011http/wwwcertorg/stats/2JAMESBAnoverviewofthreatandriskassessmentEB/OL20030422http/wwwsansorg/reading_room/whitepa-pers/auditing/an_overview_of_threat_and_risk_assessment_76?

show=76phpcat=auditing3CyberCopASaPVulnerabilitysummarygraphicalsummaryreportEB/OL20020928http/wwwmcafeeasapcom/sam-plereports/cybercop/sample_html_summaryasp4MICROSOFTMicrosoftsecurityresponsecentersecuritybulletinseverityratingsystemEB/OL20091021http/wwwmicrosoftcom/technet/security/bulletin/ratingmspx5李小满面向对象的安全评估方法及若干技术指标的构建D北京中国科学院软件研究所20046CERTCERT/CCvulnerabilitynotefielddescriptionsEB/OL20080320http/wwwkbcertorg/vuls/heml/fieldhelp#metric7MELLPSCARFONEKROMANOSKYSACompleteguidetothecommonvulnerabilityscoringsystemversion20EB/OL20070706http/wwwfirstorg/cvss/cvssguidehtml8程乾生属性识别理论模型及其应用J北京大学学报自然科学版199733112339程乾生属性集和属性综合评价系统J系统工程理论与实践1997179180512计算机应用第30卷

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2