1006大设计翻译版_第1页
1006大设计翻译版_第2页
1006大设计翻译版_第3页
1006大设计翻译版_第4页
1006大设计翻译版_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TheGenerationofPenetrationTestAuthor:XueAnTutor:XiaPenetrationtestingisasecuritytestingmethodusedtothwartthetargetsystem'ssecuritymeasuresandobtaintheaccesscontrolbysimulatingtheattacker'smethodsandtechniques.Thisisanimportantmethodusedtoassessthesecurityofcomputernetworksystembysimulatingamalicioushacker'sattackmethods.Thisprocessincludesproactiveysisofanyofthesystem'sweaknesses,technicalflawsorvulnerabilities,thisysisisfromthepositionwhereanattackermayexist,andexploitssecurityvulnerabilitiesfromthispositionAgoodpenetrationtestschemeisofgreatsignificanceforasuccessfulattack,however,agoodpenetrationtestingsolutionrequiresrichknowledgeandexperienceinengineeringandsensitiveintuitionforpenetrationtesters.However,evenwiththeseconditions,itisstillhardforpeopletochoosethebestattackpathandmethodwhenfacedwithlarge-scalenetworks.Thisrequiresustogeneratepenetrationtestschemeautomatically,butexhaustingallpossibleattackpathsandutilizationmethoddirectlyis,althoughsimple,toohighincomplexity.Itscomplexitygrowsexponentiallywiththegrowthofsizeofthenetworkscale.Suchamethodisapparentlynotsuitableforalarge-scalenetworkenvironment.Therefore,thispaperproposesamethodandstudiesthepenetrationtestingscheme'sgeneration, anddemonstrationandimplementsuchatool.What’smore,thistoolisintegratedintoourlaboratory’sproject.ThistoolwillacceptreportsfromNessusandanyotherinputstogenerateanattackgraph.Itwillalsogivetheuserapenetrationtestschemetothetargetcomputerthatuserinputs.:PenetrationTest,SchemeGeneration,PathSuggestion,Attack 绪 研究背 国内外研究现 渗透测 已有产 研究目标与内 研究目 研究内 课题来 的组织结 相关技术现 2.1扫 2.2图生 基于模型检测的方 基于逻辑推理的方 通用评分系统 本章小 渗透测试方案生成工具设 功能需 设计原 整体架构设 各模块详细设 Nessus报告解 分类 分组归 图生 前端展 路径推 项目集 本章小 渗透测试方案生成工具实 系统开发环 系统实现概 各模块详细实 Nessus报告解 分类 分组归 图生 前端展 路径推 项目集 本章小 系统实 实验目 实验环 实验过程及分 本章小 总结与展 工作总 工作展 致 参考文 绪渗透测试是一种通过模拟者的方法与技术来挫败目标系统的安全措施并取得控制权的安全测试方式。这是通过模拟的方法来评估计算机网络系统处理和解决那些最为麻烦和的才能够有效率的保持企业或用户网络的安全和现了这样的一个工具,并将该工具集成到了的项目中。将主要从渗透测试、图和已有产品等三个方面介绍一下国内外的相关研究工作。目标系统控制权的安全测试方式。测试人员将会利用一切被的来进试,图析的重要工具,它的使用对策略的制定和实施具有重要指导意义。网络图Metasploit:开源的安全检测工具,始于2004年[5],是一个利用和测试平台。它可以帮助人员识别安全问题,验证的缓解措施,并对目标网络的安全性进行评估,提供真正的安全风险。现分为商业版和社区版两种版。它是一个十分强大的高级的开源平台,可以用于开发、测试、搜索对应的利用载荷进行利用,当然,也可以自行编写利用载荷Nessus:扫描工具,是目前全世界使用人数最多的系统扫描与分析软该软件采用客户/服务器体系结构,客户端提供了运行在Xwindow下的图形界面,接受用户令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给用户;扫描代码与数据相互独立,Nessus针对每一个有一个对应的插件,插件是用NASL(NESSUSAttackScriptingLanguage)编写的一小段模拟的代码,这种利用插件的扫描技术极大地方便了数据的、更新;Nessus具有扫描任意端口的任意包括目标的脆弱点、级别和怎样修补以防止。NmapNetworkMapper,开源的端口扫描的工具,它能检测主机系统有哪MULVALMultihost,multistage,Vulnerabilityysis)Purdue大学的XinmingQu等人[7,8,9]给出的一种具有高度可扩展性的图生成方法。该方法使用Datalog语言,通过逻辑推理,基于XSB推理引擎[10]产生图。TVATopologicalysisofNetworkAttackVulnerability):在文献[11,12]中,作者描述了一种图的生成工具。这种方法假定具有单调性,并且具有多项式时间复杂性。其中心思想是利用一个依赖图来表示利用的前置和后置条件。然后使用图搜索算法得到路径。NETSPA(ANetworkSecurityPlanningArchitecture):文献[13,14]中,作者通过使用规则和网络扫描建立模型。然后使用该模型来计算网络的可达性和图来展示潜在路径。NETSPA具有O(nlogn)的时间复杂度。其他:文献[15]中也提到了一些别的工具,比如MITRECorp的OutpostLockheedMartinANGI1.5的组织结术。该章主要介绍了扫描、图的生成还有通用评分系统(CVSS。后,从Nessus报告解析、分类器、分组归并、图生成、前端展示、路径推荐Nessus报告解析、分类器、分组归并、图生成、前端展示、路径推荐和项目相关技术(CVSS后面系统的设计的基础。扫描是指“基于数据库,通过扫描等对指定的或者本地计算机系统的安全脆弱性进行检测,发现可利用的的一种安全检测(渗透)行为”。是枚举一个或多个目标上存在的。扫描是管理的一项关键技术。现在的重要性日益提升,扫描技术的应用也更加广泛,扫描技术已经成为了一种非常重要的技术。通过将它和检测系统(IDS)还有防火安全以便迅速地改变不当的系统或网络配置或者修补应用补丁或者其他缓解(NmapNessusBoomScan扫描器(ovaldi,SecPodSaner、ERPCGI和扫描等五种,每一种的实现目标和运用原理各不相同。本文所使用的扫描器是由RenaudDeraison编写的Nessus,正如上文所介绍的一样,这是一款优秀的扫描器。Nessus可以检测出如下类型的脆弱性或类型:允许控制系统获得敏感信息的、错误的配置、一些系统账户的默认、缺省或者其他脆弱、服务等等。数据库/数据库/扫描方库 使用Nessus扫描后可以得到详细的报告输出,一般情况下会在浏览器中直接csv格式或者nessus格式保存在磁盘上以便其他程序使用或者进行进一步的分析。首先,正如第一章绪论中所说,图主要分为状态图和属性图两类。状态,而边表示着一类行为而不是状态图中的单一的行为。路径即主此外,有安全属性P则是自动机M的执行序列的子集。MP的执行就构成了满足来产生一张图。execCode(H,vulExists(H,VulID,Software,remote,privEscalation),networkServiceInfo(H,Software,Protocol,Port,Perm),netAccess(H,Protocol,Port).Perm存在某(H,VulID,Software,remote,privEscalation)且机能够获得主机的网络接入(H,Protocol,Port,那么就执行某些代码(H,Perm。言进行逻辑推理,最终产生了图。通用评分系统通用安全评分系统(CVSS)为了交流的特点和影响而提供了一个开放的(Base(Environmental010的数字得分还有一个向量,一个压缩的文本用以表示反映用于计算的得分的值。基本组(Base)代表着一个的内在性质。时效组(Temporal)反映了随时间而变化的特性。环境组(Environmental)代表了用户特究人员都能够获利,只要他们采用了这个给打分的通用语言。[16]CVSS的最终得分。CVSS得分越高,则说明越严重,应当得到充足的重视;反之,CVSS得分越低,则说明相对而言本章主要介绍了有关渗透测试方案生成的一些相关的理论和技术。2.1节介绍了有关扫描的相关知识,这是整个渗透测试方案生成的基础,该节最后了本文所使用的扫描工具;2.2节讲述了图的生成以及现在比较主要的两个图生成方法——基于模型检测的方法和基于逻辑推理的方法,并分析了各自存在的问题;2.3节(CVSS概率,这为下文中路径的选择提供了理论基础前提。渗透测试方案生成工具各样的可能性,仅仅凭人还是很难判断出能够攻陷目标主机的路径和方法的。因为企业或用户的精力和时间也是有限的,必须要优先处理和解决那些最为麻烦和化、给出最为合理的路径等。对于功能的需求具体描述如下:网络图。一条推荐的路径。实现一个分类器以计算出路径上可以利用的并和路径一同在基础上,为了代码的编写方便和后期的工作,制定了如下的设计原则:模块化:前台展示和逻辑分开,功能独立,设计一个良好的接口,方便集美观化:前端的显示需要尽可能的做到美观,大方简洁,将逻辑上的图形象生动的进行展示。比如说,图中的节点需要考虑其大小、颜色代表什么意义,以便给用户传达出的信息。此外,路径也应当在图中得到员来这个工具,所以说,编写代码的时候需要良好的编码风格,变量、函图JSONHTML3.1 组合并之后,一起生成逻辑上的图,然后,将图的数据结构JSON化,然后生成一个HTML文件,的工作到此基本告一段落。然后,前端浏览器加载该HTML文件,用户可以看到一张图,其节点代表着分组(或者可以视为状态,其边视为一系列的可能的。节点的大小代表着分组的ID代表着哪个主机等信息(注者所操控的主机除了有正常的IP之外还有着localloopback地址,即127.0.0.1)成该次的成功概率以及每一步成功的概率分别都是多少。使用Nessus扫描所有网络,得到关于所有主机的报告文件。Nessus报告文件可以csv格式的文件。csv文件格式是逗号分隔值文件格式,通常是纯文本文件,可以使用记事本打开,也可以使用excel打开。该模块的作用是接受一个或多个csv报告文件输入,将数据解析出来,并进行直接过滤丢弃,节约内存,比如关于某的具体描述往往会很长,保存这些用处并非很大的字段会占用大量的内存空间;2.直接丢弃某些数据项,Nessus报告中并非所有数据项都是有着CVE编号的,很多项目只是关于主机的一些信息的描述,比该模块是工具的一个重要组成部分,从Nessus报告解析模块可以得到很多,

(x)

θ的选择要使得对于训练集的代价函数(3.2)最小,即需要使得参数的选择尽量符合人工标注的样本数据集(若干(x,y)的样本,其中y0或1分类。将代价函数J(θ)最小化的过程可以使用梯度下降的方法来完成J(θ)=−

𝑦𝑦(𝑖𝑖)logℎ(𝑥𝑥(𝑖𝑖))+�1−𝑦𝑦(𝑖𝑖)�log�1−

,等于0.5的时候可以将分到另一类(比如不可利用。中是否含有“remote”之类的字样、软件提供商、类型、、外部、披露个庞大的数据集并且进行正确的标记是很的。选取了不恰当的特征或者人工标注的错误率太高的话,正确率和率难以保证。基于获取的方CVE编号索引,并且对于的利用方式、类型、复杂程度、结果危害以及CVSS评分等等做出了详细的标注。通过该的数据可以直接得知是否可用,是否可以执行代码,是否该方法的主要难点在于该没有提供api获取的相关知识,也没有提供数据确率和率都会比较高,因为数据是已经人工判别过的,具有较高可信度。第法虽然可以对的做出判读,但是其对于特征选择和数据集的选择的所有可能性这样将会得到如图3所示的(使用4.3.3节中图4.3左侧的可达性图3.2主机在图3.2中,一个节点代表一个主机,现在一共有6台主机,而者所操作的主机为A;一条边代表一个原子。这张图虽然只有6台主机,但是看上去依然较为复杂,从图中可以看到,仅仅才6台主机的图已经这么复杂了,如果网络规模再稍稍增大一点,那么图的复杂度将会激增。这样的图无论在后期的路径搜索或者是前端从图3.2的例子可以看出,一张图可以对相似的节点进行合并,所谓的相似是指或者他们处于同一个子网之中,或者他们可以利用同样的同样的主机,这样利于图的前端展示。有关分组合并的具体实现将在下一章中进行阐述。首先,本工具所生成的图严格来说并非上文所定义的状态图或者属性个分组的,是一类而非单一。本文所生成的图比上文中例图3所介绍洞严重程度、分组大小等信息;边即是,还包含了前一个节点的以及后一个节点的、代表元素、所有元素等信息。此外,其实节点中还保存着一些为了再不断地生成边,这样就构成了图的逻辑上的数据结构。出来。所需要展示的信息有:图、图例、接受用户关于目标输入的地方、法、路径的生成算法、整体模块的实现方法等等。和规定。首先,决定使用HTML5的Canvas来绘制图。图中的节点的颜色分别中所含有的主机数目的多少,节点内部注明组内所有主机的ID号。图中的边使用较深的灰色来表示,边的注明可能经由的主机。此外,网页背景使用浅灰色,个欲的主机的ID的时候,图随之变化,前端突显路径,无关的节点和路径将予以灰化显示,同时,在网页中会显示文字版的方案,其中包括总的成功的概率还有每一步的目标以及可以利用的。关于和项目整合中的前端展示需要实现的目标主要就是界面的统一。javaswing程序,需要将工具整合到其中,必须尽量保持风格统一,输入,生成一条从者开始,到达目标靶机的路径,并且在图中予以显示。所推荐的路径需要是成功概率最大的路径,而成功的概率则是由每一步成IDCVE编号有关每一步利用成功概率的设定是由CVSS通用评分系统所确定的。CVSS系统中有一个AC指标(AccessComplexityAC指标映射成利用成功的概率,当AC指标为“Low”的时候,说明很容易利用,概率值设定为0.9;当AC指标为“Medium”的时候,说明可利用,但存在一定的,利用成功的概率值设定为0.6;当AC指标为“High说明的利用复杂度很高,利用成功的概率很小,将其设定为0.1。本工具最终将集成到的已有项目中,而本工具使用的开发语言不同于网页信swing窗口中予以呈现然后将工具的输出结果在原有项目中如何予以呈现,这些问题将在第四章中给予解答能的划分和设计;最后,从Nessus报告解析、分类器、分组归并、图生成、前端显示、路径推荐和项目集7个模块具体的分析了工具的需求、功能和设计,但渗透测试方案生成工具第三章所介绍的各个模块的主要算法,并对第三章中所问题作出回答。操作系统:Windows7,Windows软件版本:Java1.7.0_01,Perl开发软件:SublimeText开发基础:Nessus,Canvas技Perl和JavaScript等来完成;还有一部分是在原有项目中的实现,这一部分主要使用Java和cmds来实现。Perl,JavaScriptNessusHTML5CanvasNessus报告和可达性作为输入,经概率的路径。调用批处理文调用生成工调用批处理文调用生成工图4.1第二部分(工具集成到原有项目)实现逻HTMLHTML文合用户的输入ID号,实时生成方案,并且以图形和文本的方式进行显示。(CSV文件),该报告文件可以存放在当前 ^"\d+","说明一个Nessus报告项读入完毕。4.2Nessus字符串分隔成为数组。这时,可以根据数组的第二项(下标值为1)是否空来过滤掉一部分并非的信息。此外,仅需提取数组的第2项、第5项、第6项、第7项作为关于IDIP之间映射关系的哈希表将ID项也作为有用的信息一并保存。,为图的生成以及推荐路径的生成做准备。直接使用LWP::UserAgent模拟浏览器网页,在Nessus报告解析的时候或者之后,每遇到一个编号,就发起一次网页请求,然后对返回的网页进行解析,确定该可用与否。显然,这个方法实现相对而言最为简单,但是时8个线程并发。首先初始化8个线程,然后两个队列,一个任务队列(在解析Nessus报告的过程中,将所有的CVE编号放到任务队列中一个结果队列。每个线程间消耗也不会很大。实际操作的情况是,输入1M的Nessus报告文件,程序运100M30s左右全部处理完毕。实验证明,这种方法具执行的时候,每获得一个可否利用以及利用成功的概率,就把结果写入本网页请求,然后解析网页。经过实验,输入1MNessus报告文件,使用该方法的程序第一次运行大概花费30s的时间,但是之后再次运行(即有本地缓存文件)只需要花费0.5s左右的时间,时间效率大大增加。 获取到URL(例如”htt 并写入本地缓存。以上均为可利用的情况,当不可利用的时候,返回概率值-1关于分组合并的具体算法如图4.3所示(横向的是目标主机,纵向的是源主机:4.34.3中,左边是一个可达性矩阵,ABCDEF组成的网络被隔开。可以发现,主机CD具有相同的特征,就是他们都可以到达主机E,从按照主机来产生的图中可以发现,凡是E的节点,其父节点不是C就是D,而且作为边的攻击必然为V(E),所以可以将C和D进行合并,得右边的归约分组的结果。简单来说,于相似的条件下,所以可以进行合并,从而降低图的复杂度。对于图示的可达性矩阵,路径可以简化为单一的一条链,即从ABCD到E再到EF,复杂度大大降低。当然,这只是根据可达性矩阵生成的,还需要加上从分点信息,生成整个图。性,这些工作将放到4.3.6节中一并介绍。示工作构成。本小节将主要介绍前者,后者将在4.3.7节中予以详细的介绍。JSONJSONIDIP的映射关系(用于生成图例,过滤可用后的报告文件,主机号到报告文件项编号的映射关系。得到了这些之后,然后就可以实行HTML化了。html文件,然后向这个文件中写入最终需要呈现的内容以及Canvascanvas元素,然后在页面初始之和,那么这两个圆就会有,需要重新生成节点的位置。#f0f0f0的节点选取依照平均脆弱程度而定。当利用成功概率平均值大于0.9的时候,节点#d43f3a#ee9336#fdc431绿色(rgb值#4cae4c;否则,节点标记为蓝色(rgb值#357abd。Canvas绘图环境中并没有自带的箭头对象,所以还需要自ID号,边需要居中标示可利用的主机号。还需要显示图例信息,标示出ID和主机IP的映射关系。右边还要有提示信息4.3.4节中所说,本工具针当用户输入一个欲的主机的ID的时候,首先,对用户的输入进行判断,保证用户输入的是合法的可的主机ID号。然后,在边列表中搜索可以经由这个主机的边及这个主机可利用的最大概率的。然后,计算这个概率和到达这个边的前一个节此外,还需要端重绘图,具体做法是将不在路径上的节点和边的alpha通0.2,这样可以突显路径上的节点和边。然后,边上居中表示的并不是所有可以经由的主机ID,而是有着最大概率的主机或者需要的主机的ID。这是项目收尾的部分。包括4.3.5节所前端展示的整合以及批处理、工具的HTMLJavaSwing窗口中显示。曾虽然实现会稍稍麻烦一点。但是,实践证明,jEditorPane只能用来显示普通的网页,不支持Canvas显示。使用第库jxBrowser来显示网页。该第库将浏览器内核嵌了进去,然后据此显示网页,不存在兼容性问题,可很好的支持Canvas显示。位等问题,然后使用这个批处理文件调用perl文件。针对上一章的需求和设计,本章介绍了渗透测试方案生成工具的实现。4.1节介绍绍了各个模块的实现,分别讲述了Nessus报告的解析、分类器、分组归并、一张网络图并且端予以显示。5.16IP192.168.1.100、192.168.1.104、192.168.1.110192.168.1.125、192.168.2.171、192.168.2.179ID0、1、2、3、4、5各主机之间的可达性关系如下表所示(1表示可达,0表示不可达5.1源012345011110011111012111110311111040000115000011图5.2报如图5.3所示:5.35.4件。图5.5是用户自行输入位置的情况的截图:5.5图5.6图5.6中包含图本身以及图例等。图中,节点和边所代表的信息正如前两章中所描述的一样。现在,在右边的文本框中输入欲的目标主机的ID,然后点击生成推荐路径,结果如图5.7所示:5.7推荐路径(4号主机图5.7是输入4号主机产生的推荐路径,在图部分产生了一条推荐路径,(192.168.1.10那么在其445端口有两个可以利用,其CVE编号分别为CVE-2008-4834和CVE-2008-4835,而且其利用成功的概率都 0245015015.8推荐路径(5号主机夹下看到有关CVE编号及结果的缓存文件,如图5.9所示:5.9代表着ID号、CVE编号、IP、协议、端、利用成功的概率:1CVE-2008-4834192.168.1.104tcp4451CVE-2008-4835192.168.1.104tcp4452CVE-2008-4834192.168.1.110tcp4452CVE-2008-4835192.168.1.110tcp4453CVE-2010-0425192.168.1.125tcp803CVE-2007-1581192.168.1.125tcp803CVE-2010-2225192.168.1.125tcp803CVE-2011-3379192.168.1.125tcp803CVE-2012-1823192.168.1.125tcp803CVE-2013-1862192.168.1.125tcp804CVE-2007-1581192.168.2.171tcp804CVE-2010-2225192.168.2.171tcp804CVE-2010-0425192.168.2.171tcp804CVE-2011-3379192.168.2.171tcp804CVE-2012-1823192.168.2.171tcp804CVE-2013-1862192.168.2.171tcp805CVE-2010-0830192.168.2.179tcp0利用这些可用信息反观上面的推荐路径,可以确认路径是正确可行的(比如攻击4号主机的可用选择的都是概率0.9的,而没有选择概率0.6或者0.1的,也较好的集成到了原有的项目中了。总结与首先,本文设计了法,自动生成图,并且寻找一条合适的路径作为Nessus报告以及其他相关信息作的一部分。并将此工具集成到的项目中。网络图。一条推荐的路径。实现一个分类器以计算出路径上可以利用的并和路径一同在性能上的优化设计,分类器部分的运行,最开始需要耗费半小时以上的时2G100M内存和30s的时间,精益求精,通过缓存的设计思路,最终达到了仅需要0.5s左右 致兄师姐、同学和家人致以最衷心的感谢。感谢网络技术市(KLBNT)提供给我来完成的本科毕业设计的优越环境。和指导,授人以渔,让我一步一步克服毕设中遇到的。感谢帮忙找出了这篇论支持。感谢薄阳师兄了关于这篇中存在的问题。 参考[1].沈路.面向网络的渗透测试方案自动生成技术的研究与实现[D].:航空航天 是灏.基于专家知识的网络图生成方法[D].:交通大学 .基于图模型的评估技术的研究[D].:交通大学,2012.[4].徐立.基于图模型的分析方法研究[D].:交通大学,2010.[5].HDMoore.Metasploit:HackingLikeinthe [6].Wikipedia.Nessus_(software)[EB/OL].(software)[7].XinmingOu,WayneF.Boyer,A.McQueen.AScalableApproachtoAttackGraphGeneration[R].CCS’06[C].Alexandria,Virginia,USA.2006:336

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论