网络安全渗透测试PPT完整全套教学课件_第1页
网络安全渗透测试PPT完整全套教学课件_第2页
网络安全渗透测试PPT完整全套教学课件_第3页
网络安全渗透测试PPT完整全套教学课件_第4页
网络安全渗透测试PPT完整全套教学课件_第5页
已阅读5页,还剩1287页未读 继续免费阅读

下载本文档

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

文档简介

目录第1章概述第2章渗透测试原理与模型第3章渗透测试环境工程第4章渗透测试信息收集与分析第5章服务器端渗透测试第6章客户端渗透测试第7章网络设备渗透测试第8章后渗透测试第9章社会工程学渗透测试第10章工控网络渗透测试第11章无线网络渗透测试第12章渗透测试自动化框架第13章渗透测试程序设计第14章渗透测试质量控制全套PPT课件第1章概述1.1信息安全理论1.2渗透测试基础1.3渗透测试方法1.4渗透测试规则本章小结

1.1信息安全理论

1.1.1信息安全基础

1.信息安全含义渗透测试是服务于信息安全的保障技术。信息安全是指信息网络的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统能够连续可靠正常地运行,信息服务不中断。

进一步,信息安全又可分为狭义信息安全与广义信息安全两个层次。狭义的信息安全是以密码论为基础,辅以通信网络、计算机编程等方面内容的信息保护技术。广义的信息安全是一门综合性学科,从传统的计算机安全到信息安全,不仅是名称的变更,也是对安全发展的延伸,使得安全不再是单纯的技术问题,而是将管理、技术、法律等问题相结合的产物。

2.信息安全威胁

这些威胁可以宏观地分为自然威胁和人为威胁。

自然威胁可能来自各种自然灾害、恶劣的场地环境、电磁辐射和电磁干扰、网络设备自然老化等。这些事件有时会直接威胁信息的安全,影响信息的存储媒质。

人为威胁主要指恶意用户通过寻找系统的弱点,从而达到破坏、欺骗、窃取数据等目的的行为。根据人为威胁攻击的作用形式及其特点,可分为被动攻击和主动攻击。被动攻击本质上是指在传输中的偷听或监视,其目的是从传输中获得信息。主动攻击的目的是试图改变系统资源或影响系统的正常工作,它威胁数据的完整性、机密性和可用性等。

3.信息安全发展

回顾密码学的发展历史,可以将其划分为三个阶段。

第一个阶段,从古代到19世纪末,长达数千年。

第二个阶段,从20世纪初到20世纪50年代末。

第三个阶段,从Shannon于1949年发表划时代论文《CommunicationTheoryofSecrecySystem》开始至今。

1.1.2安全防护技术

1.信息安全目标

(1)机密性(Confidentiality):指保证信息不被非授权访问,即使非授权用户得到信息也无法知晓信息的内容,因而不能使用。

(2)完整性(Integrity):指维护信息的一致性,即在信息生成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改。

(3)可用性(Availability):指授权用户在需要时能不受其他因素的影响,方便地使用所需信息。这一目标是对信息系统的总体可靠性要求。

(4)可控性(Controllable):指信息在整个生命周期内都可由合法拥有者加以安全控制。

(5)不可抵赖性(Non-repudiation):指保障用户无法在事后否认曾经对信息进行的生成、签发、接收等行为。

2.信息安全技术

为了实现对信息的安全保护,人们基于现代密码学、身份验证、访问控制、审计追踪、安全协议的理论,设计了防火墙、漏洞扫描、入侵检测、防病毒等不同技术,并通过安全管理、安全标准、安全策略、安全评测、安全监控的实施,构成了复杂的安全防护技术体系,能够实现物理、网络、系统、数据、边界、用户不同平台的安全防护,如图1-1所示。

图1-1信息安全防护技术体系构成

1.1.3信息安全测试

1.安全分析验证

安全分析验证是指基于一定的分析手段或经验,验证信息产品或信息系统中不存在相应的安全隐患,是信息安全测试的理论方法。

1)安全模型

安全模型是一种安全方法的高层抽象,独立于软件与硬件的具体实现方法,有助于建立形式化的描述与推理方法。

2)协议形式化分析

协议形式化分析主要有基于逻辑推理、基于攻击结构性及基于证明结构性三种方法。基于逻辑推理的分析方法运用逻辑系统,从协议各方的交互出发,通过一系列的推理验证安全协议是否满足安全目的。

3)可证明安全性方法

可证明安全性方法在一定的安全模型下将设计算法与协议的安全性归结于伪随机数、分组密码等已被认可的算法或函数的安全性,在一定程度上增强了设计者对安全性的把握与控制,提高了密码与安全协议的设计水平。

2.安全测试技术

安全测试技术是指在信息安全产品或信息系统的开发或评估中,开发者或评估人员借助测试实验/试验获得反映系统/产品安全性能的数据而采用的实践工具与方法。

具体的安全测试技术有如下几种。

1)测试环境构造

2)有效性测试

3)负荷与性能测试

4)攻击测试

5)故障测试

6)一致性与兼容性测试

3.安全测试准则

进一步地,为了量化检测过程中信息安全的等级,人们制定了不同的安全标准,包括可信计算机系统评估准则(TCSEC,TrustedComputerSystemEvaluationCriteria)和信息技术安全评估准则(ITSEC,InformationTechnologySecurityEvaluationCriteria)等。

1) TCSEC准则

2) ITSEC准则

1.2渗透测试基础

1.2.1渗透测试的定义网络安全的本质是攻防对抗,因此没有经受过攻击检测的系统不是真正安全的系统。

作为一种主动攻击验证测试技术,渗透测试(PenetrationTest)是指通过模拟恶意黑客攻击来评估系统安全性的实践测试方法。渗透测试从一个攻击者可能存在的位置发起的,并且从这个位置有条件地主动利用可能存在的安全漏洞,验证攻击存在的可能性。

1.指向性

渗透测试在应用层面或网络层面都可以进行,也可以针对具体功能、部门或某些资产(可以将整个基础设施和所有应用囊括进来,但范围的设定受成本和时间限制)。

2.渐进性

渗透测试在实施的过程中与黑客入侵相似,都是逐步深入的过程。

3.预测性

渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,换句话来说,就是证明之前所做过的措施是可以实现的,然后再寻找一些原来没有发现过的问题。

4.约束性

渗透测试与黑客攻击的区别主要在于前者受到严格的约束。渗透测试范围需要明确规划,严格执行,是一种目的明确的受限测试行为。

上述特点使得渗透测试显著地区别于其他安全测试,它们的比较如表1-1所示。

安全众测服务也经常被运用于安全测试,其特点介于专业渗透测试与安全功能测试之间,实施的主体为开放人群,但如表1-1显示,在测试全面性上除了传统的安全功能测试存在短板外,渗透测试的提出还有以下原因:

(1)技术性实践验证,是检查安全隐患有效的主动性防御手段,可以系统地查找安全隐患。安全性应当建立在严格的系统实验测试基础上。

(2)安全规范和法律要求。

(3)提供安全培训的素材。

1.2.2

渗透测试的分类

1.按照协议分类

2.按照信息公开与否分类

3.按照测试方法分类

1)黑盒测试

2)

白盒测试

4.按照测试目标分类

1.2.3渗透测试的发展

人们通过不断地摸索和实践,积极完善渗透测试的理论与方法。但由于渗透测试存在理论滞后于实践的客观事实,所以发展的途径和过程与其他技术相比具有很大的不同。渗透测试的发展基本可以划分为方法提出、理论成熟和测试服务三个阶段。

1.方法提出阶段

1965年,电脑安全专家就提醒政府和企业,电脑在交换数据方面的能力越强大,窃取数据的情况就会越多。

2.理论成熟阶段

JamesP.Anderson是渗透测试发展的先驱之一。他在1972年的报告中提出了一系列测试系统被渗透和攻击的可能性的具体步骤。

3.测试服务阶段

在全球企业界,以“漏洞打赏”为手段、以检测自身网络或产品安全性为目标的渗透模式已经十分常见。

1.3渗透测试方法

1.3.1渗透测试步骤目前安全业界普遍认同的渗透测试步骤主要包括前期交互、情报收集、威胁建模、漏洞分析、漏洞攻击、后渗透攻击、测试报告七个阶段,如图1-2所示。

图1-2渗透测试步骤

1.前期交互阶段

前期交互阶段的工作包括介绍和解释可用的工具和技术,根据客户需求为客户提供量身定制的测试方案。

2.情报收集阶段

情报收集阶段的目标是尽可能多地获得渗透对象的信息(网络拓扑、系统配置、安全防御措施等),在此阶段收集的信息越多,后续阶段可使用的攻击矢量就越多。

3.威胁建模阶段

威胁建模阶段主要利用上一阶段获取到的信息进行威胁建模和攻击规划。

(1)威胁建模:利用获取到的信息来标识目标组织可能存在的漏洞与缺陷。

(2)攻击规划:根据威胁模型确定下一步需要收集的信息和攻击方法。

4.漏洞分析阶段

漏洞分析是一个发现系统和应用程序中的漏洞的过程。

5.漏洞攻击阶段

在验证漏洞存在后,接下来就是利用发现的漏洞对目标进行攻击了。

6.后渗透攻击阶段

后渗透攻击,顾名思义就是漏洞利用成功后的攻击,即拿到系统权限后的后续操作。

后渗透攻击阶段的操作可分为两种:权限维持和内网渗透。

(1)权限维持:提升权限及保持对系统的访问。

(2)内网渗透:利用获取到的服务器对其所在的内网环境进行渗透。

7.测试报告阶段

渗透测试的最后一步便是测试报告输出。根据测试的结果,测试报告会对系统进行风险等级评估并解释总体风险等级、概况和分数,最后再给出解决途径。

1.3.2

渗透测试工具

1.Metasploit

Metasploit是一种框架,拥有庞大的编程员爱好者群体。

2.Nessus安全漏洞扫描器

Nessus安全漏洞扫描器是一款备受欢迎的、基于特征的工具,可用于查找安全漏洞。

3.Nmap

Nmap也就是NetworkMapper,最早是Linux下的网络扫描和嗅探工具包。

4.BurpSuite

BurpSuite是另一款备受欢迎的Web应用程序渗透测试工具,包含了许多攻击Web应用程序的工具。

5.OWASPZAP

ZAP是来自非营利性组织OWASP(开放Web应用程序安全项目)的Web应用程序渗透测试工具,由数百名国际志愿者积极维护。

6.SQLmap

SQLmap是开源的自动化SQL注入工具,由Python语言写成。

7.KaliLinux

KaliLinux是基于Debian的Linux发行版,设计用于数字取证操作系统,是一款一体化工具,包含一套专用的预安装测试(以及安全和取证分析)工具。

8.Jawfish

Jawfish是一款使用遗传算法的渗透测试工具,而不像大多数工具是基于特征的。

除了以上工具,另外还有AngryIpScanner、Aircrack-Ng、Cain&Abel、Ettercap、JohnTheRipper、ThcHydra、Netcat以及putty等工具,这些工具都使得渗透测试自动化得到很大提升。

1.3.3渗透测试原则

随着渗透测试作为一项服务展现在人们面前,为了确保用户的利益,确保渗透测试质量,就必须制定相关的服务保障规则和措施,这些主要体现在渗透测试应当遵循的原则上。这些原则包括标准性、规范性、可控性、整体性和不可缺、影响性和保密性几个方面。

(1)标准性原则:渗透测试的方式需要遵守相关规定。

(2)规范性原则:渗透测试过程中所记录的文档应有良好的写作格式,需清楚地记录所用工具以及策略。

(3)可控性原则:在测试过程中,需要保证对测试工作的可控性。渗透测试的方式和策略应该在双方认可的范围之内进行。

(4)整体性和不可缺原则:在测试的过程中所测试的内容应该包括用户等各个层面,测试的对象不可脱离用户指定范围的设备系统,未经允许不可擅自修改测试范围和对象。

(5)影响性原则:渗透测试工作不可让系统或者网络中断,应在系统业务量较小的时段对系统进行测试,尽量不对系统或者网络造成破坏,做到影响性最小。

(6)保密性原则:渗透测试的过程和结果应该严格保密,不可向无关方泄露其有效数据文件。

1.4渗透测试规则

1.4.1道德约束渗透测试与黑客攻击存在区别,但是二者之间的界限十分模糊,受到好奇心或利益的驱使,渗透测试极易演变成实际的黑客攻击。为了防止此类事情的发生,在渗透测试的早期,主要依靠制定道德准则和测试者的自律来加以控制。这些道德准则包括计算机道德戒律、网络道德原则和白帽黑客文化。

1.计算机道德戒律

为了规范网络行为,一些计算机和网络组织为其用户制定了一系列相应的规范。

这些规范是一个计算机用户在任何网络系统中都“应该”遵循的最基本的行为准则,它是从各种具体网络行为中概括出来的一般原则,包括:

(1)不应用计算机去伤害别人;

(2)不应干扰别人的计算机工作;

(3)不应窥探别人的计算机文件;

(4)不应用计算机进行偷窃;

(5)不应用计算机作伪证;

(6)不应使用或复制你没有付费的软件;

(7)不应未经许可而使用别人的计算机资源;

(8)不应盗用别人的智力成果;

(9)应该考虑你所编写的程序的社会后果;

(10)应该以深思熟虑和慎重的方式来使用计算机。

此外,美国计算机协会也有类似的戒律规定。还有一些机构明确划定了那些被禁止的网络违规行为,即从反面界定了违反网络规范的行为类型,如南加利福尼亚大学网络伦理声明指出了下述6种网络行为类型为不道德行为:

(1)有意地造成网络交通混乱或擅自闯入网络及其相连的系统;

(2)商业性或欺骗性地利用大学计算机资源;

(3)偷窃资料、设备或智力成果;

(4)未经许可接近他人的文件;

(5)在公共用户场合做出引起混乱或造成破坏的行动;

(6)伪造电子函件信息。

2.网络道德原则

网络道德原则可以归纳为三个,即全民原则、兼容原则和互惠原则。

1)全民原则

网络道德的全民原则包含一切网络行为必须服从于网络社会的整体利益,个体利益服从整体利益,不得损害整个网络社会的整体利益;它还要求网络社会决策和网络运行方式必须以服务于社会一切成员为最终目的,不得以经济、文化、政治和意识形态等方面的差异为借口把网络建设成仅仅满足社会一部分人的需要,并使这部分人成为网络社会新的统治者和社会资源占有者的工具。

全民原则包含下面两个基本道德原则:

(1)平等原则。

(2)公正原则。

2)兼容原则

网络道德的兼容原则认为,网络主体间的行为方式应符合某种一致的、相互认同的规范和标准、个人的网络行为应该被他人及整个网络社会所接受,最终实现人们网际交往的行为规范化、语言易理解和信息交流无障碍。其中最核心的内容就是要求消除网络社会由于各种原因造成的网络行为主体间的交往障碍。兼容原则要求网络共同规范适用于一切网络功能和网络主体。

3)互惠原则

互惠原则集中体现了网络行为主体道德权利和义务的统一。从伦理学上讲,道德义务是指人们应当履行的对社会、集体和他人的道德责任。凡是有人群活动的地方,人和人之间总会发生一定的关系,处理这种关系就产生义务问题。网络社会的成员必须承担社会赋予的责任,有义务为网络提供有价值的信息,通过网络帮助别人,也有义务遵守网络的各种规范以推动网络社会稳定有序的运行。

3.白帽黑客文化

早期的黑客源自文化、教育背景类似的特定人群,他们具有相同的价值观,共同创立了黑客文化。

计算机的普及是黑客文化孕育和产生的技术前提之一。

在黑客社交圈中,存在着一些无形的信条,这些信条勾画出黑客文化的基本行为准则。这些信条不是由任何权威机构或人所制定的,虽与黑客反权威的历史传统不符,但却真实存在着,即黑客道德准则(theHackerEthic),这些准则包括:

(1)对计算机的使用应该是不受限制的和完全的;

(2)所有的信息都应该免费;

(3)怀疑权威,推动分权;

(4)你可以在计算机上创造艺术和美;

(5)计算机将使你的生活变得更好。

白帽黑客是逐渐从黑帽黑客中分化出来的特殊群体,这个群体具有很强的社会责任感,相互之间有较为紧密的联系,彼此分享成果,推动文化发展。他们在文化习惯上与传统黑客具有相似的特征,但却形成独特的白帽黑客文化,这些特殊文化也成为约束渗透测试行为的一种力量。

1.4.2法律约束

随着渗透测试必要性的凸显,渗透测试开始走进人们的视野,并被社会关注,世界各国也通过法律来实现渗透测试行为的法制化。

1.美国

美国早在1970年前后就启动了PA计划(ProtectionAnalysisProject),用以研究安全漏洞和信息系统的脆弱性,在后来的《数字千年版权法》中还明确了包括白帽黑客在内等主体漏洞检测的界限:漏洞检测行为是指在确保被测计算机系统信息安全环境下,为检测出系统漏洞信息的行为。

2.欧洲

欧洲国家多采用“公私合作框架模式”,即漏洞检测平台通常会与相关网络公司签订合同,根据检测方法、检测目标、漏洞报告等类目进行细分授权。同时,以法律许可的方式对白帽黑客的漏洞检测行为进行规范。《网络犯罪公约》是欧盟第一个治理网络犯罪相关的国际协定,旨在建立适应新兴网络犯罪的国际协助机制和法律法规体系,积极寻求共同打击网络犯罪的刑事政策。

3.中国

关于黑客入侵行为,我国刑法第二百八十五条、二百八十六条以及刑法修正案九及其司法解释规定的范围非常狭窄,仅将“非法侵入”犯罪成立的条件限定为侵入“国家事务、国防建设、尖端科学技术领域的计算机信息系统”等特定信息系统。

这意味着,白帽黑客在检测漏洞时,只要不触碰系统数据,在发现漏洞后立即提交报告给厂商,就不涉及犯罪,但并不是说只要不破坏,控制、窃取数据就一定不会构成犯罪。有些黑客在找到漏洞后,通过漏洞越入系统内部查看数据,然后将漏洞提交给第三方平台或者运营商通知修复,并声称自己为“白帽黑客”。这种行为实属掩耳盗铃并无法律依据,实质上是在犯罪行为后实施补救措施,这并不影响犯罪性质,只不过是否追究其法律责任的自由裁量权转移到了运营商手中。

渗透测试是基于现有安全技术缺陷而提出的一种主动安全测试技术,按照其协议、位置、方法、目标有不同的分类。通常情况下,为了实现测试的全面性,渗透测试需要按照严格的步骤和方法科学组织实施。渗透测试不同于黑客攻击,必须受到道德和法律的约束,否则将失去控制,适得其反。

本章小结

第2章渗透测试原理与模型2.1网络攻击概述2.2网络攻击原理2.3网络攻击建模2.4攻击测试方案本章小结

2.1网络攻击概述

2.1.1网络攻击

1.概念渗透测试采用的是模拟网络攻击的方法进行安全性检验的,因此本质上也是一种网络攻击行为。所谓网络攻击(Cyber

Attacks,也译为赛博攻击),是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的任何类型的进攻动作。

网络攻击产生的根源源自大教堂与市集(TheCathedralandtheBazaar)两种不同的编程哲学模式的对抗。大教堂模式软件的开发过程是由一个专属的团队所控管的;市集模式软件则是放在因特网上公开供人检视及开发的。市集模式的支持者认为软件应该作为人类共同财富供所有人共享。

极客的产生与文化,促成了网络攻击技术的产生,随着时间推移更多的集团、群体出于不同的目的纷纷加入进来,网络攻击技术进入了蓬勃发展的阶段。

2.网络攻击的发展

3.黑客文化

网络攻击并不是完全无序和随意的,对于网络攻击技术的运用,不同的黑客具有不同的认知和行为规则,这也构成了不同的黑客文化。

1)白帽文化

通常来说,白帽黑客是指从事安全防御技术的人员,白帽黑客在发现漏洞之后,他们不会利用漏洞去攻击,反而会将漏洞反馈给程序的开发商。

2)黑帽文化

黑帽黑客就是大家常说的黑客形象,他们利用自己的技术,专门研究开发各种病毒,寻找他人的软件漏洞,并发起攻击。黑帽黑客用他们高超的技术去入侵他人的电脑或网络服务器,窃取数据并从中获利。

3)灰帽文化

灰帽黑客介于黑帽黑客和白帽黑客中间,他们既懂得防御技术,也懂得如何去突破防御。他们通常不会向罪犯出售漏洞信息,但是会向政府、执法单位或者情报机构出售漏洞信息。

2.1.2攻击分类

网络攻击的方式和方法已经从早期的粗糙、单一的攻击方法发展到今天精致、综合的攻击方法。早期主要的攻击方法以口令破解、泛洪式拒绝服务和特洛伊木马为主。当前的攻击方法依据攻击步骤过程可以分为信息收集类、权限提升类、网络渗透类、网络摧毁类和隐藏善后类几种,具体分类如图2-1所示。

图2-1网络攻击方法的分类

1.阻塞类攻击

阻塞类攻击企图通过强制占有信道资源、网络连接资源、存储空间资源使服务器崩溃或资源耗尽而无法对外继续提供服务。

2.控制类攻击

控制类攻击试图获得对目标机器的控制权,常见的有口令攻击、特洛伊木马和缓冲区溢出。

3.探测类攻击

探测类攻击主要是收集目标系统各种与网络安全有关的信息,为下一步入侵提供帮助,目前主要研究提高探测的准确性及隐蔽性。

4.欺骗类攻击

欺骗类攻击包括IP地址欺骗、MAC地址欺骗、假消息欺骗。

5.漏洞类攻击

漏洞类攻击是指利用漏洞探测工具来检测目标系统的各种软件漏洞,进而进行有针对性的攻击,特别是一些新发现或未公布的漏洞,攻击具有极强的穿透性。

6.病毒类攻击

计算机病毒已经由单机病毒发展到网络病毒,如今Windows平台下的病毒层出不穷,甚至出现了Unix平台的病毒。很多病毒与木马程序互相配合,具有难查杀、难删除、可传播等特点,基于病毒的攻击可能对系统造成毁灭性的破坏。

7.电磁辐射攻击

在信息战中,利用电磁辐射来截获有用信息、干扰对方通信是一种常见的攻击手段。

网络攻击还可以从多种其他角度进行划分,具体包括:

(1)从攻击的发起来看,在最高层次上攻击又可被分为两类:主动攻击和被动攻击。

(2)从攻击的目的来看,攻击可以分为拒绝服务(DoS)、获取系统权限、获取敏感信息的攻击。

(3)从攻击的切入点来看,攻击可以分为缓冲区溢出攻击、系统设置漏洞的攻击等。

(4)从攻击的纵向实施过程来看,攻击可以分为获取初级权限攻击、提升最高权限的攻击、后门攻击、跳板攻击等。

(5)从攻击的类型来看,攻击可以分为对各种操作系统的攻击、对网络设备的攻击、对特定应用系统的攻击等。

(6)从黑客的攻击方式上又分为入侵攻击和非入侵攻击。

2.1.3发展趋势

1.攻击自动化程度提高

在扫描阶段,扫描工具的发展使得黑客能够利用更先进的扫描模式来改善扫描效果,提高扫描速度;在渗透控制阶段,安全脆弱的系统更容易受到损害;攻击传播技术的发展,使得以前需要依靠人工启动软件工具发起的攻击,发展到攻击工具可以自启动发动新的攻击;在攻击工具的协调管理方面,随着分布式攻击工具的出现,黑客可以容易地控制和协调分布在Internet上的大量已部署的攻击工具。

2.攻击工具越来越复杂

攻击工具的开发者正在利用更先进的技术武装攻击工具,攻击工具的特征比以前更难发现,已经具备了反侦破、动态行为、更加成熟等特点。反侦破是指黑客越来越多地采用具有隐蔽攻击工具特性的技术,使安全专家需要耗费更多的时间来分析新出现的攻击工具和了解新的攻击行为。为了提高反侦破能力,通常采取动态行为。

所谓动态行为是指现在的自动攻击工具可以根据随机选择、预先定义的决策路径或通过入侵者直接管理来变化其攻击模式和行为,而不是像早期的攻击工具仅能够以单一确定的顺序执行攻击步骤。更加成熟是指攻击工具已经发展到可以通过升级或更换工具的部分模块进行扩展,进而发动迅速变化的攻击,且在每一次攻击中会出现多种不同形态的攻击工具;同时,在实施攻击的时候,许多常见的攻击工具使用了如IRC或HTTP等协议从攻击者处向受攻击计算机发送数据或命令,使得区别正常、合法的网络传输流与攻击信息流变得越来越困难。

尤其是,网络攻击作为一种国家层面的可选对抗手段,已经被美国、以色列为首的西方发达国家投入巨资将其作为作战装备进行系统研发,表2-1为美国赛博空间作战典型装备。

3.漏洞利用速度加快

新发现的各种安全漏洞每年都要增加一倍,并且每年都会发现安全漏洞的新类型,网络管理员需要不断用最新的软件补丁修补这些漏洞,黑客经常能够抢在厂商修补这些漏洞前发现这些漏洞并发起攻击(漏洞利用竞争关系见图2-7)。

4.渗透防火墙

配置防火墙目前仍然是防范网络攻击的主要保护措施。但是,现在出现了越来越多的攻击技术,可以实现绕过防火墙的攻击。

5.分布式攻击越来越普遍

安全威胁的不对称性与增加Internet上的安全是相互依赖的,每台与Internet连接的计算机遭受攻击的可能性与连接到全球Internet上其他计算机系统的安全状态直接相关。

6.攻击网络基础设施

由于用户越来越多地依赖计算机网络提供各种的服务来完成日常业务,黑客攻击网络基础设施造成的破坏影响越来越大。

黑客对网络基础设施的攻击,主要手段有分布式拒绝服务攻击、蠕虫病毒攻击、对Internet域名系统DNS的攻击和对路由器的攻击。分布式拒绝服务攻击是攻击者操纵多台计算机系统攻击一个或多个受害系统,导致被攻击系统拒绝向其合法用户提供服务。蠕虫病毒是一种自我繁殖的恶意代码,与需要被感染计算机进行某种动作才触发繁殖功能的普通计算机病毒不同,蠕虫能够利用大量的系统安全漏洞进行自我繁殖,导致大量计算机系统在几个小时内受到攻击。

对DNS的攻击包括伪造DNS缓存信息(DNS缓存区中毒)、破坏修改提供给用户的DNS数据、迫使DNS拒绝服务等。对路由器的攻击包括修改、删除全球Internet的路由表,使得应该发送到一个网络的信息流改向传送到另一个网络,从而造成对两个网络的拒绝服务攻击。

2.2网络攻击原理

2.2.1入侵分析入侵行为的实质就是非授权的访问。所谓授权是指资源的所有者或控制者按照安全策略准许其他主体访问或使用某种资源。

1.攻击面与攻击向量

对于任何一个电子信息系统,都存在潜在被攻击的可能。攻击可以来自物理、逻辑、社会域层面之一或组合。

如图2-2所示,攻击面上存在着一些可以被黑客所利用的通道。

图2-2攻击面与攻击向量

攻击向量与攻击面之间的时间关系如图2-3所示。假设网络攻击的过程由探测D和攻击A组成(显然D与A存在依赖关系),D和A分别耗时为t1和te,则一次完整的攻击耗时为t1 +

te。系统攻击面Stk存在的时间为T,则攻击者对该系统实施攻击时,由于状态Stk0到Stk1的改变将导致D获取的信息失效,考虑到A对D的依赖,也就间接阻滞了A的实施。因此,攻击者若要发起成功的攻击,必然满足约束条件,即t1 +

te<T,否则攻击失败。

图2-3攻击向量与攻击面之间的时间关系

2.攻击形成方法

1)密码破译

密码是现代信息系统安全保护的核心手段,然而受到技术条件和设备器件性能的限制,并不是每个密码实现都尽如人意。

2)漏洞利用

漏洞利用就是利用软件设计、实现、管理上的差错实现攻击。这种方法已经被无数次的黑客入侵反复验证。

关于攻击存在的必然性讨论如下。

具有理想的密码保护机制,且不存在任何漏洞(包括管理漏洞)的软件系统,是无法被入侵的,然而这样的系统也是不存在的,其理由主要有三点:

(1)技术的进步会导致当前安全技术的失效。

(2)有限的功能逻辑无法对抗无限的攻击逻辑。

(3)程序员的人为错误。

2.2.2密码破译

1.密码分析技术

密码破译试图获取目标密码体制的加、解密算法和密钥的攻击行为。由于现代密码体制算法通常是公开的,因此密码破译的问题就聚焦到密钥分析上。

1)强力攻击

强力攻击包括查表攻击、时间-存储权衡攻击、字典攻击以及穷举搜索攻击。

2)线性密码分析

作为一种已知明文攻击方法,线性密码分析方法的本质是通过将一个给定的密码算法有效且线性近似地表示出来以实现破译。这种密码分析技术得到了一定的推广。

3)差分密码分析

1990年,以色列密码学家Biham和Shamir提出了差分密码分析技术。

4)边信道攻击

边信道攻击(SideChannelAttack,SCA),又称侧信道攻击。

2.口令破解方法

密码分析是一门博大精深的学问,然而并不是所有密码分析技术都与渗透测试有着直接关系,在渗透测试过程中,频繁使用的就是口令破解。由于网络服务一般都要求进行用户合法身份验证,能否获得密码、口令是获得权限的关键。

口令作为在互联网上保护个人信息和身份识别的有效手段被广泛使用,其暴力破解的可行性是衡量口令加密算法安全性的重要标准,也是密码学的重要研究方向之一。

口令破解的关键在于准确性和高效性,破解的准确性关乎信息的完整性与可用性,而高效性直接关系到破解的体验及信息的获取效率。

口令破解可以分为在线破解和离线破解。

在线破解的对象是一个线上系统,每次破解过程都会向这个系统提交一个猜测,然后得到这个系统的返回结果。在线破解的一个重要特点是攻击者正在破解的系统是正在运作的,所以在破解过程中,系统有可能检测到攻击并且采取一定的防卫措施来限制猜测的数目。

在线破解和离线破解的主要区别就是猜测数目的限制,一般情况下在线破解的要求比较高,攻击者能够产生的猜测数目较少,而离线破解则能够产生大量的猜测。

下面介绍几种口令破解的方法。

1)逻辑漏洞

逻辑漏洞是由于代码背后程序员的逻辑问题导致的错误。

2)弱口令

弱口令(WeakPassword)没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。

3)口令字典

在无漏洞可利用时,只能通过枚举可能的字符组合进行破解。

按照某一规律生成字符组合,并将其写入文档中,利用该文档进行破解,便称为利用字典破解,生成的文档称为字典文档。字典的生成应根据人的生活习惯和口令的统计规律生成,可以在网上聊天室、BBS社区、邮箱和留言板等处获得大量的账号和口令,从用户口令密码的设置可看出,他们通常采用以下方法:

(1)用生日作为密码(例如770321);

(2)用序数作为密码(例如1234,abcd);

(3)用身份证号作为密码;

(4)用在字典中查得到的字作为密码;

(5)用用户名、术语、数字、地名、电话号码组合作为密码。

4)彩虹表

彩虹表(Rainbow)攻击是一种在时间复杂度和空间复杂度之间取得一定平衡的攻击方法。在已知部分明文P0和加密方法S的情况下,Rainbow攻击还引入一种还原函数(reductionfunction)

R,该还原函数的作用是根据密文C生成密钥k。当然,真正的“还原”是不可能的,所以这里的还原函数只是负责生成密钥k,而不用管该密钥是否正确。

很多时候在具体应用时,还原函数只是简单地执行数值的复制或者哈希计算,在有了加密方法S和还原函数R之后,Rainbow方法建立若干条密钥链:

5)密码的逆向分析

密码的逆向分析不同于传统的逆向分析技术,它是MarcStevens在2013年引入的概念,主要用于抵抗密码攻击,并阻止重大的漏洞和损失。

2.2.3漏洞利用

漏洞利用顾名思义就是利用漏洞获得执行权限。

1.漏洞定义和分类

漏洞(Vulnerability)是指系统中存在的一些功能性或安全性的逻辑缺陷,包括所有可能导致威胁、损坏计算机系统安全性的因素,也可以认为是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的所有缺陷和不足。由于种种原因,漏洞的存在不可避免,一旦某些较严重的漏洞被攻击者发现,就有可能被其利用,在未授权的情况下访问或破坏计算机系统。先于攻击者发现并及时修补漏洞可有效减少来自网络的威胁,因此主动发掘并分析系统安全漏洞,对网络攻防具有重要的意义。

如根据漏洞的成因可对漏洞进行如下分类:

(1)缓冲区溢出错误(BufferOverflow),未对输入缓冲区的数据进行长度和格式的验证;

(2)输入验证错误(InputValidationError),未对用户输入的数据进行合法性验证;

(3)边界条件错误(BoundaryConditionError),未对边界条件进行有效性验证;

(4)访问验证错误(AccessValidationError),访问验证存在逻辑上的错误;

(5)意外条件错误(ExceptionalConditionError),程序逻辑未考虑意外和特例;

(6)配置错误(ConfigurationError),系统或软件的参数或策略配置错误;

(7)其他错误(Others)。

漏洞是无法避免的,只是是否被发现和修补,关于漏洞的攻防博弈将会长期存在下去。漏洞存在的原因主要有以下几个方面:

(1)人为差错不可能完全避免,程序员因为主观的判断失误,导致程序代码难免出现逻辑和书写错误;

(2)科学技术的进步导致原有技术产品暴露出各种始料未及的缺陷;

(3)厂商为了方便自身的维护管理而私自开设的“后门”。

对于漏洞的研究主要分为漏洞挖掘与漏洞分析两部分。漏洞挖掘技术是指对未知漏洞的探索,即综合应用各种技术和工具尽可能地找出软件中的潜在漏洞。这并非一件很容易的事情,在很大程度上依赖于个人经验。根据分析对象的不同,漏洞挖掘技术可以分为基于源码的漏洞挖掘技术和基于目标代码的漏洞挖掘技术。

探讨漏洞挖掘技术先从计算机主机软件的分类入手。计算机主机的软件分为系统软件和应用软件,其组成关系如图2-4所示。

图2-4计算机主机的软件组成关系

1)操作系统漏洞

操作系统是用户和计算机之间的接口,用户通过操作系统管理和使用计算机系统的各种硬件资源、软件资源和数据资源

操作系统漏洞因系统的不同而有所差别。

Windows漏洞

Windows是Microsoft公司在1985年11月发布的第一代窗口式多任务系统,它使操作系统开始进入所谓的图形用户界面(GraphicUserInterface,GUI)时代。

UNIX漏洞

UNIX系统是1969年问世的,最初在中小型计算机上运用。

■Linux漏洞

Linux操作系统具有如下特点:

(1)它是一个免费软件,可以自由安装并任意修改软件的源代码。

(2)与主流的UNIX系统兼容,拥有广泛的用户群。

(3)支持几乎所有的硬件平台,包括Intel系列、680x0系列、Alpha系列、MIPS系列等,并广泛支持各种周边设备。

■ FreeRTOS漏洞

FreeRTOS是专门为单片机设计的开源操作系统。

■SCADA漏洞

SCADA系统在电力系统中的应用最为广泛,技术发展也最为成熟。

■Android漏洞

Android是一种基于Linux的自由及开放源代码的操作系统。

■ iOS漏洞

iOS是由苹果公司开发的移动操作系统。

2)数据库漏洞

常见的数据库安全问题及原因如下:

(1)脆弱的账号设置。

(2)缺乏角色分离。

(3)缺乏审计跟踪。

数据库还可能存在绕过安全检查机制等漏洞。

3)应用漏洞

应用程序的安全问题可以从程序自身安全、使用函数安全和程序运行环境三方面进行分析。

(1)程序自身安全。

(2)使用函数安全。

(3)程序运行环境。

应用程序的安全问题也是黑客发起攻击的重要条件。

4)协议漏洞

协议是计算机通信的语言,由于设计初期对安全性考虑不足,导致协议可能存在漏洞。

协议漏洞存在的原因如下:

(1)协议的开放性。

(2)因特网主机上有不安全业务,如远程访问。

(3)因特网连接基于主机上社团的彼此信任,只要侵入一个社团,其他社团就可能受到攻击,导致协议漏洞危害的扩散。

2.漏洞挖掘

漏洞对于“攻”“防”双方都具有重要价值。漏洞的挖掘和利用本身就是一个博弈过程,“攻”“防”双方都在试图先于对方发现未知的漏洞,从而形成竞争关系。

1)概念

漏洞挖掘需要了解0day、PoC等概念。

0day

为攻击方先行发现,而未被防御方知晓的高威胁性漏洞称作0day漏洞。

图2-5为安全漏洞的生命周期。

图2-5安全漏洞的生命周期

PoC

在安全人员发现某个漏洞之后,需要编写PoC代码。

编写PoC时应遵循随机性、确定性、通用性原则。

(1)随机性原则:PoC中所涉及的关键变量或数据应该具有随机性,切勿使用固定的变量值生成Payload,能够随机生成的尽量随机生成。

(2)确定性原则:PoC中能通过测试返回的内容找到唯一确定的标识来说明该漏洞是

否存在,并且这个标识需要有针对性,切勿使用过于模糊的条件去判断。

(3)通用性原则:PoC中所使用的Payload或包含的检测代码应兼顾各个环境或平台,能够构造出通用的Payload就不要使用单一目标的检测代码,切勿只考虑漏洞复现的环境。

2)方法

漏洞挖掘通常采取源码分析、补丁比较、静态分析技术、动态调试污点检查、黑盒自动测试等分析手段对目标程序进行检测(4.8节还将介绍通过逆向工程获得漏洞)。

源码分析

基于源码的漏洞挖掘的前提是必须能获取源代码,对于一些开源项目,通过分析其公布的源代码就可能找到存在的漏洞。

 补丁比较

软件发现安全问题后,厂商通常会发布安全公告及补丁文件,但是公告通常都说法晦涩,无法清楚地说明安全问题究竟在什么地方,想通过公告内容去发现漏洞也是非常难的事情。

■ 静态分析技术

静态分析技术是对被分析目标的源程序进行分析检测,以发现程序中存在的安全漏洞或隐患。这是一种典型的白盒分析技术,主要包括静态字符串搜索、上下文搜索。

■ 动态调试污点检查

动态调试污点检查的主要原理是将来自网络等不被信任渠道的数据都标记为“被污染”的,由此一系列算术和逻辑操作新生成的数据也会继承源数据的“是否被污染”的属性,这样,一旦检测到被污染的数据作为跳转(jmp族指令)、调用(call,ret)以及数据移动的目的地址,或者是其他使EIP寄存器被填充为被污染数据的操作,就会被视为非法操作,系统会报警并产生当前相关内存、寄存器和一段时间内网络数据流的快照并传递给特征码生成服务器作为生成相应的特征码的原始资料,同时服务会立刻终止或者在蜜罐环境中继续捕获进一步的入侵数据。这个过程的实现主要是利用虚拟机技术对特定的指令进行特殊处理,比如更新记录相应的内存是否被污染或者检查跳转是否安全。

■黑盒自动测试

黑盒测试作为软件测试的手段已经发展了很多年,理论比较成熟,而安全漏洞属于软件缺陷的一个子集,完全可以靠黑盒测试完成。

3)自动挖掘技术

自动挖掘技术是目前漏洞发掘的重要方向之一,目前漏洞挖掘普遍采用Fuzzing技术。

Fuzzing技术是一种基于缺陷注入的自动软件测试技术,它利用黑盒分析技术方法,使用大量半有效数据作为应用程序的输入,以程序是否出现异常为标志来发现应用程序中可能存在的安全漏洞。

Fuzzing工具是一套自动化测试软件(有些会和硬件服务器一起销售),根据前面的分析,其核心功能包括下面几点:

(1)自动化测试框架,统一管理、组织测试套件和测试用例的执行;

(2)测试用例生成器,也称Fuzzer,用于生成随机的测试用例;

(3)监视器,用来监测被测设备是否正常,及时发现问题;

(4)报表及回溯模块,生成测试报告,并跟踪定位问题的上下文信息,方便问题回溯和进一步的分析。

根据测试的对象不同,Fuzzing工具可以分为不同的种类,比如文件Fuzzing、WebFuzzing、命令行Fuzzing、APIFuzzing、网络协议Fuzzing、环境变量Fuzzing等。各种Fuzzing的大体框架和技术都是类似的,典型的Fuzzing漏洞挖掘过程如图2-6所示。

图2-6漏洞挖掘过程

Fuzzing工具的优劣及主要区别如下:

(1)硬件性能:性能越好,越能生成和执行更多的测试用例;

(2)

Fuzzing引擎算法:算法越好越能生成有效的测试用例,也更容易发现未知的漏洞;

(3)监控模块的性能和完备性:好的监控模块能更及时地发现问题。

Fuzzing引擎算法中,测试用例的生成方式主要有两种:

(1)基于变异:根据已知数据样本通过变异的方法生成新的测试用例;

(2)基于生成:根据已知的协议或接口规范进行建模,生成测试用例。

3.利用方法

1)概念

围绕着漏洞利用展开的网络攻击活动,其概念和相关理论不断发展,形成了一系列不同于传统计算机、通信、电子领域的新概念,这些概念是漏洞利用网络攻击及渗透测试的基础。

EXP

EXP(Exploit,漏洞利用)是一段对漏洞如何利用的详细说明或者一段演示漏洞攻击的代码。EXP可以帮助使用者了解漏洞的机理以及利用的方法。

Payload

Payload(攻击载荷)是攻击者期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入Payload。

Shellcode

Shellcode是一段利用软件漏洞而执行的代码,也是16进制的机器码,因为经常让攻击者获得shell而得名。

2)漏洞利用方法

漏洞的成功入侵是EXP与Shellcode联合作用的结果。

EXP是一个过程,其结果通常体现为一段代码,这段代码承载了Shellcode。EXP用于生成攻击性的网络数据包或者其他形式的攻击性输入,其核心是淹没返回地址,劫持进程控制权,之后跳转执行Shellcode。Shellcode有通用性,而EXP往往针对特定漏洞。

EXP实现

不是所有的漏洞都能够被利用来攻击的。理论上存在的漏洞,并不代表这个漏洞足以让攻击者去威胁系统。一个漏洞不能攻击一个系统,并不代表两个或多个漏洞组合不能攻击一个系统。

Shellcode编写

Shellcode编写需要解决的问题如下:

(1)自动定位Shellcode的起点,在实际使用中,Shellcode经常被动态加载(特别是在IE中);

(2)填充数据的设计;

(3)动态获取系统的API地址;

(4)对Shellcode进行编码解码,突破buffer和IDS的限制。

所谓路径规范化,就是将路径字符串中的【/】转换为【\】,同时去除相对路径【.\】和【..\】。在路径规范化的操作中,服务程序会检查路径字符串的地址空间中存在的逻辑漏洞。攻击者通过精心设计输入路径,可以在函数去除【..\】字符串时,把路径字符串中内容复制到路径串之前的地址空间中(低地址),达到覆盖函数返回地址、执行任意代码的目的。

2.2.4攻击步骤

网络攻击可泛化为网络空间攻击,其攻击方法的描述多种多样,其中以美国空军提出的“侦察、扫描、恶意系统接入、恶意活动、利用”网络空间攻击进程最具权威性。

网络空间攻击进程如图2-7所示。

图2-7网络空间攻击进程

1.态势感知

网络空间态势是指在一定时间和空间内,敌方(渗透目标)、我方、友方、其他各方网络化信息设施、设备,特别是网络空间攻防双方部署、作用范围和使用所形成的状态和形势。网络空间态势感知是指综合利用以技术为主的态势感知手段,从物理设施层、电磁信号层、数据信息层和心理认知层四个层面,获取发生在网络空间的敌、我、友、它各方,特别是敌方的相关部署、活动与信息。

2.控流入网

在网络空间中流动的主要是电磁能量流、电子信号流、数据信息流。实施网络空间进攻主要是指根据不同的作战目的,运用不同的手段,采取不同的方法,控制电磁能量、电子信号、数据信息这“三流”之一或组合进入目标网络空间。

1)电磁能量流入网

电磁能量流入网的核心是敌对双方争夺电磁频谱使用权和主导权的斗争,是利用电磁能、定向能确定、扰乱、削弱、破坏、摧毁敌方电子信息系统和电子设备的活动,进攻方式主要有电子干扰、电子欺骗、反辐射攻击、定向能摧毁。

2)电子信号流入网

电子信号流入网的实质是对渗透目标电子信号的获取利用,进攻方式主要是主动注入具有欺骗性和破坏性的电子信号,进行信息仿冒和跳板渗透,进而获取渗透目标网络控制权限,实施病毒破坏、网络控制和信息窃取等进攻行动。

3)数据信息流入网

数据信息流入网的目的是利用网络攻击手段窃取渗透目标情报信息、控制或瘫痪其信息系统或基础设施。

3.综合施效

网络空间进攻是一种多层次的新型作战形式,凡电磁波和信息流所达之处皆可能成为其施展空间,范围之广泛、手段之多样是其他影响手段难以比拟的。总体来讲,网络空间进攻就是综合运用电磁信号层的能量压制、数据信息层的漏洞利用、心理认知层的情绪诱导、物理设施层的实体毁伤四种软硬结合的杀伤效应,达成对网络空间的控制权。

实施的作用手段包括以下几种:

1)能量压制

2)漏洞利用

3)情绪诱导

4)实体毁伤

4.破网毁体

破网毁体主要是通过断链、破网、毁体三个不断升级的过程,破坏敌方网络空间的运行秩序与信息安全,进而破坏其功能。它的实质是网络作战等各种作战效应作用于网络空间后向外扩散的过程。通常军事网络空间攻击应以“破网瘫网”为目标,核心是降低敌方信息网络的效能。远期可以“控网”为目标,夺取敌方信息网络的控制权,让敌方信息网络为我所用。

1)断链

信息链路是网络空间传输特定信息的通道,也是维系联合作战体系运行的“信息命脉”。断敌信息链路既是网络空间作战的重要方式,也是破击体系的有效途径,其核心是破坏敌方关键信息流程。

2)破网

“网”是网络空间最直观的外在表现形式,网络空间作战很大程度上就是破击、控制敌方军事信息网和战争潜力网,这也是瘫痪敌作战体系和战争体系的重要途径。

3)毁体

毁体就是针对敌方作战体系和战争支撑体系严重依赖网络空间的弱点,打击其网络化信息系统,破坏其网络空间的运行秩序与信息安全,进而使敌方作战体系和战争支撑体系瘫痪。

由于渗透测试并不是真正意义上的黑客攻击,因此渗透测试的步骤要少于黑客攻击步骤。

2.3网络攻击建模

2.3.1攻击树模型攻击树(AttackTree)模型最早由BruceScheier在1999年提出,它可以看作故障树模型的一种扩展。AttackTree模型使用树来表示攻击行为及步骤之间的相互依赖关系,如图2-8所示。

图2-8攻击树模型

2.3.2攻击图模型

攻击图(AttackGraph)模型是另一种被广泛应用的方法。攻击图建模方法的基本思路是把网络中主机弱点的被利用过程视为攻击者的活动序列,这些活动序列构成一个有向图。

按攻击图模型的生成方法可以分为两类:

(1)采用模型检测或逻辑编程技术生成攻击图。

(2)采用图论的思想生成攻击图。

攻击图模型较攻击树模型而言,能够全面反映攻击者的各种攻击行为以及相应的系统状态改变情况,网络状态信息和攻击信息都得以体现。

2.3.3特权图模型

特权图模型用于描述攻击者特权提升的过程。在特权图中,各节点表示一个或一组用户拥有的权限集合,节点之间的连接弧(边)表示能够使权限集合发生状态转移的系统脆弱性(即可被利用的弱点)。通过分析特权图可以找到攻击者获得某个主机特定权限的全部路径。

2.3.4Petri网模型

基于PetriNet(简称Petri网)的攻击模型如图2-9所示。

图2-9

Petri网攻击模型

2.3.5状态转移模型

状态转移分析法最早由Porras和Kemmerer提出,是一种针对入侵渗透过程的图形化表示方法,它利用有限状态机模型来表示入侵过程,节点表示系统的状态,边表示每一次的状态变迁,如图2-10所示。

图2-10状态转移的攻击模型

2.4攻击测试方案

2.4.1

攻击方案

1.定义攻击测试方案(简称为攻击方案)是在网络攻击开始之前,由攻击者制定的用于计划和安排攻击的方案。在一次完整的攻击过程中,如何安排与组织攻击是能否取得理想攻击效果的关键。攻击方案内涵是实施攻击之前制定的攻击计划,它明确了攻击预期效果、采用的攻击手段和攻击实施的具体步骤,对整个攻击过程进行规划,是攻击者攻击意图的具体体现。

攻击方案应该包括以下几个部分:

(1)攻击目的:攻击所要达成的预期;

(2)攻击对象:攻击的客体;

(3)攻击方法:采用何种手段实施攻击渗透测试;

(4)攻击组织方法:如何对攻击的步骤、资源进行组织。

2.自动生成技术

一般意义上,网络攻击方案是由攻击实施者在进行网络攻击时根据个人的需求,自己手工制定的,而且手工制定的攻击方案与个人的网络攻击水平和工作方式等相关。很多情况下,黑客进行网络攻击甚至会省略攻击方案的制定,而完全凭借个人经验进行操作。

渗透测试方案的生成应该满足以下要求。

1)高自动化的攻击生成

2)性能稳定的攻击生成

3)高效的攻击生成

4)攻击方案可复用及攻击手段易升级

2.4.2方案生成

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

生成系统由原子攻击知识库、推理引擎、复杂度分析几个关键模块构成,如图2-11所示。

图2-11渗透测试预案生成系统框架

根据不同的攻击建模方法,则生成系统略有区别。

1.原子攻击知识库

原子攻击知识库(如图2-12所示),包括攻击行为库、攻击规则库、攻击参数库,它们之间采用攻击名称进行信息关联。应用攻击知识库时,首先确定原子测试步骤,并根据原子攻击知识库中的推理规则推理产生后续的原子测试行为,然后重复推理,直至达到测试目标,生成测试方案。

图2-12原子攻击知识库

2.推理引擎

推理引擎遵循的推理规则按照预定的选择时序串接原子攻击。

用户可以通过攻击名称将攻击目标、方法、规则、参数等进行关联。在制定攻击方案时,只需依据ARTAK的结构对攻击目标和攻击参数进行细化,就能获得详细的攻击方法信息和攻击应遵循的规则,对攻击进行组织和管理。

3.复杂度分析

生成渗透预案集的复杂度主要取决于前期生成的渗透攻击图的规模和深度,记为O(n)。使在攻击图的生成过程中,通过限定原子攻击复杂度阈值、合并状态相同节点、限制攻击图的深度,使攻击图的规模得到了有效控制。随着网络规模的增大,攻击图规模仍在可接受范围内,相应的渗透预案集的生成时间也更加实际可行。

最终通过方案评估方法的判定,反复迭代后得到最优的渗透测试方案。

本章小结

渗透测试是受控的网络攻击,为了实现有效的渗透测试管理可以利用网络攻击建模技术对渗透测试进行形式化描述、分析和管理。网络攻击的实现主要基于密码破译与漏洞利用,可以采用攻击树、攻击图、特权图、Petri网等模型对网络攻击进行描述。通过评估比较可以形成最佳的渗透测试方案,从而提升渗透测试的效果。第3章渗透测试环境工程3.1概述3.2渗透测试人员3.3渗透测试保障技术3.4渗透测试资源管理本章小结

3.1概述

3.1.1测试要素渗透测试可以概括为由五个要素组成的综合技术活动,包括测试质量、人员、技术、标准、资源(如图3-1所示),其中最核心的要素是测试目标的测试质量,其他四个要素都是为测试目标安全性服务的。

图3-1渗透测试要素

3.1.2测试量化

渗透测试的效果可以用测试覆盖率和测试效率进行量化。测试覆盖率能够有效地保证测试目标的安全性;而提升测试效率有利于进一步增加测试覆盖率。

1.测试覆盖率

测试覆盖率是用来度量测试完整性的一种手段,是测试技术有效性的一个指标。测试覆盖率的计算公式可以简单概括为

若以被测系统的软件为对象(不考虑管理、社会工程方面的因素),测试覆盖率按照测试方法大体上可以划分为白盒覆盖率、灰盒覆盖率和黑盒覆盖率三类。

(1)白盒覆盖率:又称代码覆盖率或结构化覆盖率,最常见的是逻辑覆盖率。

(2)灰盒覆盖率:一般指函数覆盖率和接口覆盖率。

(3)黑盒覆盖率:主要是功能覆盖率。功能覆盖率中最常见的是需求覆盖,其含义是通过设计一定的安全渗透测试用例,要求已知的每个安全隐患需求点都被测试到。

2.测试效率

测试效率是指测试过程中执行测试任务的时间有效性。从渗透测试的不同指标可以看出不同的测试效率(通常需要进行综合考评)。常见的测试指标包括单位时间内发现的安全缺陷数量、安全缺陷重要性、测试报告的有效性、交叉测试发现漏测问题数量、测试人员的熟练程度和测试方案的水平等。

1)发现的安全缺陷数量

在同一个测试项目中,每天或每周累计递交的安全缺陷数量,及测试任务完成后递交的安全缺陷数量,都可以从不同角度反映出测试的效率。

2)安全缺陷重要性

通常重要性高及复杂的测试所耗费的时间和精力会更多一些,因此通过对发现的安全缺陷的重要程度进行分析,累计单位时间内得到的缺陷重要度积分就可以得出测试的效率。

3)测试报告的有效性

一般来说,提交测试报告的有效性体现了测试人员是否能够正确理解系统,并发现存在的安全问题。

4)交叉测试发现漏测问题数量

一般在一个测试人员/小组测试结束后,即使认为已经发现了全部的安全缺陷,但如果交换测试的模块和测试人员再测试一下,很有可能又发现很多问题,这时再对测试发现问题数量进行统计。

5)测试人员的熟练程度

一般来说,测试人员对测试工具的熟练程度越高,使用技巧越强,测试的效率就越高。

6)测试方案的水平

每次设计测试方案时都需要进行框架设计,编写部分模块的测试用例,因此可以通过单位时间内编写方案的数量、速度和质量来区分项目组的效率。

3.2渗透测试人员

3.2.1渗透测试人员要求

1.专业理论素质在了解现代计算机、通信、电子基本原理的基础上,渗透测试人员应当侧重于计算机软件编程能力,学习使用多种编程语言。

2.分析解决问题能力

测试人员应加强实践,反复学习、磨炼各种入侵技巧,紧跟安全技术的变化和技术更新。

3.创新思维

没有任何两次成功的入侵是完全一样的。

4.团队沟通能力

渗透测试应当保持技术的新鲜性。

5.法律知识与意识

渗透测试者不同于黑客的关键在于对法律、道德的坚守,因此要熟知法律,保持合法、合规的安全意识,建立良好的行业声誉。

3.2.2渗透测试能力训练

1.CTF简介

网络夺旗竞赛(CaptureTheFlag,CTF)是运用网络竞赛来传授黑客攻击的方式。

2.模式

与其他信息安全技术竞赛相比,网络攻防竞赛最大的特点是技术实战。从目前的比赛来看,竞赛形式基本上分为解题和攻防对战两种模式。

1)解题模式

2)攻防对战模式

2.网络对抗训练

网络安全是目前唯一一个没有办法从实践中反馈信息的系统工程技术,因此,网络对抗、攻防的实验、研究、分析对模拟演练的依赖是不可避免的,要提高攻击和防御水平就需要进行大量的演练。攻防的模拟演练应该能仿真/复现复杂的网络系统,并将现有已知的攻击和防御案例、技术、产品等包含进来,还应有丰富的攻防知识库支持,方便人员学习和领会在模拟训练当中出现的各种安全问题。

1)环境构建技术

要想构建高度仿真的模拟战场环境,首先必须快速、准确、安全地完成目标国家或地区的信息基础设施调查。利用指纹特征识别技术,可对路由器、交换机、网站服务器、数据库服务器、网络安全设备、网络摄像头、工业控制网络设备等信息基础设施实现精确识别。

2)数据分析支持技术

利用网络空间智能化关联分析技术,可以对网络空间节点信息、人员上网信息、系统设备漏洞信息、网络安全事件信息等多源异构数据进行数据清洗和一体化融合。

3)可视化技术

利用数据可视化技术,通过聚类、排重、关联规则等算法处理数据,可实现对网络对抗数据的采集、分析以及网络威胁风险的可视化呈现。对网络攻防行动,可采用动态展示的形式直观展现。对网络对抗数据,可采用用户友好的图表形式展现,形成态势。通过网络攻防态势展示,可为相关人员提供决策依据和直观证据。

3.3

渗透测试保障技术

3.3.1概述

1.测试需求信息网络不是一个孤立的系统,因此对其测试环境的构建须采用开放性的体系结构使测试平台既易于扩充和扩

温馨提示

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

评论

0/150

提交评论