2.3 安全测试方法论
Kali Linux渗透测试的艺术
为满足安全评估的相应需求,人们已经总结出了多种开源方法论。无论被评估目标的规模有多大,复杂性有多高,只要应用这些安全评估的方法论,就可以策略性地完成各种时间要求苛刻、富有挑战性的安全评估任务。某些方法论专注于安全测试的技术方面,有些则关注管理领域。只有极少数的方法论能够同时兼顾技术因素和管理因素。在评估工作中实践这些方法论,基本上都是按部就班地执行各种测试,以精确地判断被测试系统的安全状况。
本书再次向您推荐几种著名的安全评估方法论。本章将重点突出这些方法论的关键特征和优势,希望它们能够帮助您拓宽网络安全和应用安全评估的视野。
开源安全测试方法论
信息系统安全评估框架
开放式Web应用安全项目
Web应用安全联合威胁分类
渗透测试执行标准
上述这些测试框架和方法论,都能够指导安全人士针对客户需求制定最得当的策略。其中,前两个方法论所提供的通用原则和方法,几乎可以指导面向任何类型资产的安全测试。由OWASP ( Open Web Application Security Project )推出的测试框架主要面向应用安全的安全评估。PTES ( Penetration Testing Execution Standard )能够指导所有类型的渗透测试工作。然而需要注意的是,安全状态本身是一个持续变化的过程,而渗透测试只能够获取目标系统在被测试的那一时刻的安全状态。在测试的过程中,哪怕被测的信息系统发生了细微的变化,都可能影响安全测试的全局工作,从而导致最终的测试结果不正确。此外,单一的测试方法论并不一定能够涵盖风险评估工作的所有方面。而拟定适合目标网络和应用环境的最佳测试策略,确实是安全审计人员的职责。
安全测试的方法论有很多。要选取最佳的指导理论,就需要综合考虑成本和效果的因素。所以,评估策略的筛选工作受到多种因素的制约。这些因素包括与目标系统有关的技术细节和各种资源、渗透人员的知识结构、业务目标以及法规问题。以业务的角度看,效果和成本控制至关重要。本文介绍的这几种方法论,在官方网站上都有非常正规的详细说明文件。在此,我们对它们进行简要总结。如需了解详细的工作流程,您需要亲自访问相关网站,仔细研究各种文件和实施细则。
2.3.1 开源安全测试方法论(OSSTMM)
开源安全测试方法论(Open Source Security Testing Methodology Manual,OSSTMM)(官方网站是http://www.isecom.org/research/osstmm.html)是由Pete Herzog创建,继而由ISECOM发展的测试方法论。它是国际公认的安全测试和安全分析标准。很多企业正在他们的日常评估工作中应用这一标准。以技术的角度看,这一方法论把安全评估工作划分为4组:范围(scope)、信道(channel)、索引(index)和矢量(vector)。“范围”指代评估人员收集被测单位全部资产相关信息的工作。“信道”则是这些资产之间的通信方式和互动类型;包括物理方式、光学方式和其他方式的通信。每个信道都构成了一套独特的安全组件,都要在评估阶段进行测试和验证。这些组件包括物理安全、人类心理学、数据网络、无线通信介质和电信设施。所谓“索引”,泛指特定资产和相应ID的对应关系。例如,审计人员常常要明确MAC地址和IP地址的对应关系,就是为了整理一种索引。而“矢量”指的是审计人员访问和分析功能性资产的方式。以上几个部分,组成了全面评估被测IT运营环境的整个技术流程,被称为审计范畴(audit scope)。
OSSTMM的方法论总结了多种形式的安全测试,并将它们划分为6个标准种类。
盲测( blind ):事先不了解目标系统的任何情况的测试就是盲测。然而,在评估过程开始之前,被测单位会知道何时开始安全测试。道德黑客(Ethical hacking)和对抗竞赛(War Gaming)就是典型的盲测。因为盲测遵循了道德规范,事先通知被测单位,所以这种测试方法也被广泛接受。
双盲测试( double blind ):在双盲测试中,审计人员事先不清楚目标系统的情况,被测单位事先也不会知道将有安全测试。黑盒审计和渗透测试都属于双盲测试。当前绝大多数的安全审计采用双盲测试方法。对于审计人员来说,选择能够胜任的最佳工具和最佳技术已经是一种考验了。
灰盒测试( grey box ):在灰盒测试中,审计师仅了解被测系统有限的情况,被测单位也会知道审计开始和结束的时间。脆弱性评估就属于灰盒测试。
双灰盒测试( double grey box ):双灰盒测试工作的方式类似于灰盒测试。只不过在双灰盒测试中,会给审计人员定义一个时限,而且这种测试不涉及信道测试和渗透矢量。白盒审计就属于双灰盒测试。
串联测试( tandem ):在串联测试中,审计人员对目标系统只有最低限度的了解,而在测试开始前他们会通告被测单位。需要注意的是,串联测试会测试得比较彻底。水晶盒测试和内部审计都是串联测试的例子。
逆向测试( reversal ):在逆向测试中,审计员充分了解目标系统;而被测单位将永远不会知道测试的时间或方式。
OSSTMM推广的技术评估框架十分灵活。即使某个项目在逻辑上可分为3个连续的信道和5个安全组件,我们照样可以使用OSSTMM的框架评估其安全性。OSSTMM体系的测试方法,通过检查访问控制安全、流程安全、数据控制、物理位置、周界防护、安全意识水平、信任关系、反欺诈控制等诸多过程,全面评估被测单位的安全性。总体而言,这一理论强调测试目标和测试方法,注重在测试前、测试中、测试后应当采用的相应策略,而且介绍了解读和综合分析测试结果的方法。确切掌握目标系统当前的防护水平至关重要,有关数据十分珍贵。OSSTMM引入了RAV(Risk Assessment Value,风险评估值)的概念,并通过它阐述了这一理论的很多理念。RAV的基本功能是分析测试结果,进而基于三个因素(运营安全、损耗控制、局限程度)的标称值来计算安全的标称值。最后求得的这个标称值称为RAV得分。在引入RAV得分的概念之后,审计人员可以量化评估当前的安全状态,并可为企业安全的下一步目标设定里程碑。从商业的角度来看,RAV有助于优化安全投资,并可助您选择更为有效的安全解决方案。
主要特性与优势
OSSTMM的主要特性与优势如下。
OSSTMM的方法可从本质上降低假阴性和假阳性的发生率。它推出的测量方法具有普遍的应用价值。
该架构适用于多种类型的安全测试,可用于渗透测试、白盒测试审计、漏洞评估等其他测试。
它能够确保每次评估应进行得全面彻底,还能保证评估过程的一致性、可测性、可靠性。
该方法本身可分为4个相对独立的阶段,即定义阶段、信息阶段、调节阶段和控制测试阶段。每一个阶段都会获取、评估和验证目标环境中的相关信息。
RAV的计算方法综合衡量了运营安全、损耗控制、局限程度的情况。它的计算结果即RAV得分,可代表目标系统当前的安全状况。
这种方法的评估报告均采用安全测试审计报告(STAR , Security Test Audit Report)模板。以这种格式书写的报告同时适合被测单位的管理层和技术层阅读,有助于他们共同理解测试目标、风险评估值(RAV)和每个阶段的测试结果。
该方法定期更新。OSSTMM会符合安全测试、法规和法规问题的新变化。
OSSTMM 与行业法规、企业政策,以及政府法规兼容。此外,官方认可的审计员都是直接从ISECOM(安全与开放式方法论研究协会)获取的资格认证。
2.3.2 信息系统安全评估框架
信息系统安全评估框架(Information Systems Security Assessment Framework , ISSAF)(www.oissg.org/issaf)是另外一种开放源代码的安全性测试和安全分析框架。为了解决安全评估工作的逻辑顺序问题,该框架已分为若干个领域(domain)。不同领域评估目标系统的不同部分,而且可以根据实际情况对每个领域进行相应调整。把这一架构与日常业务的生命周期相结合,可以充分满足企业安全测试的准确性、完整性、高效性的需求。ISSAF兼顾了安全测试的技术方面和管理方面。在技术方面,它有一整套关键的规则和程序,形成了一套完备的评估程序。在管理方面,它明确了在整个测试过程中应当遵循的管理要则和最佳实践。应当注意,ISSAF主张安全评估是一个过程,而不是一次审计。审计框架应当分为计划、评估、修复、评审以及维护阶段,应当有更为完善的标准。然而ISSAF具有灵活和高效的特点,是审计工作各个阶段的通用准则,可适用于所有企业结构。
这一框架的交付报告分为业务活动、安全措施、目标系统中可能存在的安全弱点的完整清单。其评估过程注重分析被测单位最容易被利用的关键漏洞,侧重于以通过最短路径尽快完成测试任务。
ISSAF 的技术评估基准十分全面,可用于测试各种技术和不同流程。不过,丰富的内容带来了一大副作用,即要跟上评估领域的技术变化速度,这一框架就需要频繁更新。相对而言,OSSTMM受技术更新影响的幅度略小。即使审计人员使用不同的工具和全新的技术,他们遵循的方法论却基本不变。虽然如此,但是ISSAF仍然号称是由最新的安全工具、最佳实践,以及补充安全评估计划的管理理念所组成的广泛框架。它也可以和OSSTMM或其他测试方法论一起使用,从而能够兼有各种方法的优点。
主要特性与优势
ISSAF的主要特性与优势如下。
ISSAF主要测试当前安全控制措施中的严重漏洞,所以它在保障系统安全方面的意义重大。
它关注信息安全范畴内的各个关键领域,涵盖了风险评估、业务结构和管理、控制评估、服务管理、安全策略的开发和常规的最佳实践。
ISSAF 渗透测试方法论评估网络、系统或应用程序的安全性。应用该框架可以无阻碍地把精力重点放在特定技术上,如路由器、交换机、防火墙、入侵检测和防御系统、存储区域网络、虚拟专用网络、各种操作系统、Web应用服务器、数据库等。
通过必要的控制和处理,它可以统一技术层和管理层这两方面人员对安全测试的理解。
它可帮助管理人员理解当前边界防御体系的现有风险,并可指出可能影响业务完整性的安全弱点,从而帮助人们主动地减少风险。
C:\Documents and Settings\Administrator\桌面\Advanced-Penetration-Testing-for-Highly-Secured-Environments-The-Ultimate-Security-Guide-eBook24062012_1093525-24.tif
可同时结合OSSTMM和ISSAF两种理论评估企业环境的安全状况。
2.3.3 开放式Web应用程序安全项目
开放式Web应用程序安全项目(Open Web Application Security Project , OWASP)定期推出其top 10 project( 排名前十位的安全隐患防护守则)以提高公共对应用安全的认知意识。这个项目公开了编写安全程序所需遵循的各种原则和惯例。OWASP的测试项目(https://www.owasp.org/index.php/owasp-Testing_Project)公布了一套非常实用的安全测试指南。您应当仔细阅读这部分内容,因为这个测试框架往往可以指导您的工作。
OWASP的Top 10 Project总结了各种攻击矢量,按照各种隐患可能在技术上和业务上造成的危害,对影响应用安全的风险进行分类和排名。在评估应用程序安全时,这些排名前十的安全风险揭露了普遍存在于各种技术和平台的通用攻击方法。它还阐述了测试、验证和修补应用程序安全弱点的具体方法。尽管Top 10 Project揭示了安全领域的高风险问题,但是这10种风险也只是Web应用程序安全性问题的一部分而已。尽管如此,OWASP社区的很多指南仍然可以指导开发人员和安全审计人员有效地管理Web应用程序的安全。
测试指南:https://www.owasp.org/index.php/OWASP_Testing-Guide_v3_Tab1e_of_Content
开发人员指南:https://www.owasp.org/index.php/Guide。
代码审查指南: https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project。
OWASP的Top 10 Project每年都会更新。如需获取详细信息,请访问这个项目的官方网站https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project。
主要特性与优势
OWASP的主要特性与优势如下。
OWASP推出了Web应用程序的十大安全风险的测试方法。应用这些方法,可使应用程序避免出现常见的安全缺陷,免受常见攻击的危害,进而巩固了应用程序的保密性、完整性和可用性。
OWASP社区研发出大量安全工具,这些工具可辅助进行自动或手动的Web应用程序测试。Kali Linux收录了其中较为著名的程序,如WebScarab、Wapiti、JBroFuzz和SQLiX等。
在网络基础设施的安全评估方面, OWASP测试指南为您提供了特定技术的评估细则。举例来说,它的甲骨文(Oracle)的测试方法与MySQL的测试方法就各有针对性。该指南采用多种相互关联的方法评估各种技术,有助于审计人员因地制宜地制定测试方法。
它鼓励研发人员在研发周期的每个阶段进行有计划的安全测试。这能提高应用程序的健全性、安全性,并能减少程序中的错误。
它在业内的认可度和知名度屈指可数。若把排名前十位的安全隐患防护守则与其他Web应用程序安全评估标准结合使用,您可同时满足一个以上的安全标准。
2.3.4 Web应用安全联合威胁分类
只有彻底、严格的测试流程,才能发现应用程序的安全隐患,而这些测试流程完全可以纳入软件的开发生命周期。Web应用安全联合威胁分类(Web Application Security Consortium Threat Classification,WASC-TC)是这样的一个评估Web应用程序安全性的开放标准。与OWASP标准相似,它也从攻击和弱点两方面讨论安全问题,但这一标准以更为深入的方式解决安全隐患。要识别、验证应用程序所面临的各种威胁,就要遵循标准化的工作流程。WASC-TC可以迅速适用于各种技术环境,有着显著的易用性。整体上说,它能够帮助开发人员和安全审计人员以不同的视图了解Web应用程序面临的安全威胁。
枚举视图:枚举视图是分析Web应用程序攻击手段和相应安全弱点的基础。它从定义、类型和多种编程平台的实例这几个角度,详细讨论了每种攻击手段和每个安全弱点。另外,所涉及的安全弱点和攻击手段都被分配了唯一的识别编号,以便于人们引用。目前,这个视图里总共有49个WASC-ID号码(1~49)。这些编号并不代表相应条目的危害程度,仅仅是为了方便引用而分配的编号。
开发视图:开发视图关联分析外部的攻击和程序内部的安全弱点,将开发人员的视野转向程序自身的漏洞。这一分析适用于开发周期的三个阶段,即设计、实现(编程)、部署阶段。如果在明确应用程序的需求时没有充分考虑安全方面要求,就会在研发周期的初期阶段引发漏洞,形成设计阶段的安全弱点。不安全的编程规则或不当的惯例产生会造成实现阶段的安全弱点。无论在应用程序、Web 服务器或是其他外部系统的配置过程中哪个部分出现差错,最终都会导致部属阶段的安全弱点。可见,这个视图以最佳安全实践为蓝本,提出了将安全保障措施融入到日常的研发生命周期的具体方法。
交叉引用视图:这个视图关联地分析了多种Web应用安全标准。通过对该视图的引用,审计人员和开发团队能够把当前所使用的标准中的术语(标准条款)与其他标准的相应内容进行对照分析。如此一来,只需要较少的开销,就可以让一个项目同时符合多种不同的安全标准。因为不同的应用程序安全标准会从不同的角度评估应用程序的安全性,所以它们衡量同一的风险的评估指标也不尽相同。因此,要对不同安全标准进行差异性分析,才能够正确地计算安全风险及其严重程度。当前WASC-TC中的攻击方法和薄弱环节,可以映射到OWASP的Top 10 Project、Mitre通用缺陷列表(Common Weakness Enumeration , CWE)、Mitre通用攻击模式列表和分类(Common Attack Pattern Enumeration and Classification , CAPEC)、SANS-CWE排名前 25的软件高危错误列表(SANS-CWE Top 25 list)。
C:\Documents and Settings\Administrator\桌面\Advanced-Penetration-Testing-for-Highly-Secured-Environments-The-Ultimate-Security-Guide-eBook24062012_1093525-24.tif
Mitre's CWE的官方网站是https://cwe.mitre.org/。
Mitre's CAPEC的官方网站是http://capec.mitre.org/。
SANS-CWE的排名前25的软件高危错误列表的发布网站是http://www.sans.org/top25-software-errors/。
如需详细了解WASC-TC及其评论,请访问官方网站:http://projects.webappsec.org/Threat-Classification。
主要特性与优势
WASC—TC的主要特性与优势如下。
WASC—TC围绕常见攻击和常规弱点这一中心,深入讨论了Web应用程序运营系统的安全评估方法。
无论何种Web应用程序平台,都可使用Kali Linux的工具集验证、测试WASC—TC提出的常见攻击和常规弱点。
它提出了三种不同视图,即枚举视图、开发视图和交叉引用视图。枚举视图起到了基础数据库的作用,它列举了在Web应用中所有可能被发现的攻击方法和安全弱点。开发视图将这些攻击方法和安全弱点进行关联分析,整理成一系列漏洞,并根据它们在开发过程中的出现阶段进行分类。而开发阶段又可分为设计阶段、实现阶段和部署阶段。WASC-TC标准的交叉引用视图用于对照、引用其他的应用程序安全标准。
WASC—TC标准已经得到了业界的广泛认可。在许多开源和商业解决方案里,特别是漏洞评估和管控产品中,都能看到WASC-TC的身影。
WASC—TC也可以和其他著名的应用安全标准兼容,例如OWASP 和SANS-CWE。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。