渗透测试概述
渗透测试(Penetration Test,Pentest)是实施安全评估(即审计)的具体手段。它可能是单独进行的一项工作,也可能是常规研发生命周期(例如 Microsoft SDLC)里 IT 安全风险管理的一个组成部分。产品的安全性并不完全取决于 IT 方面的技术因素,还会受到与该产品有关的最佳安全实践的影响。具体而言,增强产品安全性的工作涉及安全需求分析、风险分析、威胁建模、代码审查和运营安全。
通常认为,渗透测试是安全评估最终的也是最具侵犯性的形式,它必须由符合资质的专业人士实施。在进行评估之前,有关人员可能了解也可能不了解目标的具体情况。渗透测试可用于评估所有的 IT 基础设施,包括应用程序、网络设备、操作系统、通信设备、物理安全和人类心理学。渗透测试的工作成果就是一份渗透测试报告。这种报告分为多个部分阐述在当前的目标系统里找到的安全弱点,并且会讨论可行的对抗措施和其他改进建议。充分应用渗透测试方法论,有助于测试人员在渗透测试的各个阶段深入理解并透彻分析当前存在的防御措施。
一、渗透测试的种类
虽然渗透测试各种各样,但是业内普遍将其划分为两类:白盒测试和黑盒测试。
1. 黑盒测试
在进行黑盒测试时,安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。在渗透测试的各个阶段,黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。渗透测试人员应能理解安全弱点,将之分类并按照风险级别(高、中、低)对其排序。通常来说,风险级别取决于相关弱点可能形成的危害的大小。老练的渗透测试专家应能确定可引发安全事故的所有攻击模式。当测试人员完成黑盒测试的所有测试工作之后,他们会把与测试对象安全状况有关的必要信息进行整理,并使用业务的语言描述这些被识别出来的风险,继而将之汇总为书面报告。黑盒测试的市场报价通常会高于白盒测试。
2. 白盒测试
白盒测试的审计员可以获取被测单位的各种内部资料甚至不公开资料,所以渗透测试人员的视野更为开阔。若以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的评估精确度。白盒测试从被测系统环境自身出发,全面消除内部安全问题,从而增加了从单位外部渗透系统的难度。黑盒测试起不到这样的作用。白盒测试所需的步骤数目与黑盒测试不相上下。另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵者发现甚至利用安全弱点之前,尽可能最早地消除全部安全隐患。这使得白盒测试的时间、成本,以及发现、解决安全弱点的技术门槛都全面低于黑盒测试。
二、脆弱性评估与渗透测试
正确地理解和使用安全评估领域的技术术语十分必要。在您的职业生涯中,您可能时常会遇到那些不了解行业术语,却需要从这些专用名词里选一个进行采购的人。其实商业公司和非商业机构里大有这样的人在。至少您应该明白这些类型的测试各是什么。
脆弱性评估通过分析企业资产面临威胁的情况和程度,评估内部和外部的安全控制的安全性。这种技术上的信息系统评估,不仅要揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。内部的脆弱性评估可保证内部系统的安全性,而外部的脆弱性评估则用于验证边界防护(Perimeter Defenses)的有效性。无论进行内部脆弱性评估还是进行外部脆弱性评估,评估人员都会采用各种攻击模式严格测试网络资产的安全性,从而验证信息系统处理安全威胁的能力,进而确定应对措施的有效性。不同类型的脆弱性评估需要的测试流程、测试工具和自动化测试技术也不相同。这可以通过一体化的安全弱点管控(Vulnerability Management)平台来实现。现在的安全弱点管控平台带有可自动更新的漏洞数据库,能够测试不同类型的网络设备,而且不会影响配置管理和变更管理的完整性。
脆弱性评估和渗透测试两者最大的区别就是:渗透测试不仅要识别目标的弱点,它还涉及在目标系统上进行漏洞利用、权限提升和访问维护。换句话说,脆弱性评估虽然可以充分发现系统里的缺陷,但是不会考虑去衡量这些缺陷对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会刻意使用各种技术手段利用安全漏洞;所以渗透测试可能对生产环境带来实际的破坏性影响。而脆弱性评估则是以非入侵性的方式,定性、定量地识别已知安全弱点。
为何需要渗透测试?如果不能确定防火墙、IDS、文件完整性监控等风险减缓控制的实际效果,那么就应当进行渗透测试。虽然漏洞扫描(脆弱性评估)能够发现各个漏洞,但是渗透测试则会验证这些漏洞在实际环境里被利用的可能性。
有些观点认为,这两种类型的安全评估重复性很高,只是同义词而已。这种观点绝对有误。合格的安全顾问会根据客户的商务需求,选择一种最合适的安全评估向顾客推荐,绝对不会把不同类型的安全评估混为一谈。然而,仔细核实安全评估项目的内容和做出最终决定确实是顾客的责任。
渗透测试的价格比脆弱性评估的价格要高。
三、安全测试方法论
为满足安全评估的相应需求,人们已经总结出了多种开源方法论。无论被评估目标的规模有多大,复杂性有多高,只要应用这些安全评估的方法论,就可以策略性地完成各种时间要求苛刻、富有挑战性的安全评估任务。某些方法论专注于安全测试的技术方面,有些则关注管理领域。只有极少数的方法论能够同时兼顾技术因素和管理因素。在评估工作中实践这些方法论,基本上都是按部就班地执行各种测试,以精确地判断被测试系统的安全状况。
推荐几种著名的安全评估方法论。下面将重点突出这些方法论的关键特征和优势,希望它们能够帮助您拓宽和应用安全评估的视野。
开源安全测试方法论
- 信息系统安全评估框架 (ISSAF)
- 开放式 Web 应用安全项目 (OWASP)


