渗透测试与PCI DSS的关系 PCI(Payment Card Industry)中文全称为:支付卡产业。在这个产业里存在一个标准组织,称为--支付卡行业安全标准委员会,英文简写为PCI SSC(Payment Card Industry Security Standards Council)。PCI安全标准委员会是由国际知名的五家支付品牌共同建立而成,他们是美国运通(American Express)、美国发现金融服务公司(Discover Financial Services)、JCB、全球万事达卡组织(MasterCard)及Visa国际组织。PCI SSC一共维护了三个安全标准:PCI DSS(Payment Card Industry Data Security Standard 支付卡行业数据安全标准)、PCI PA-DSS(Payment Card Industry Payments Application Data Security Standard支付卡行业支付应用数据安全标准)以及PTS(PIN Transaction Security PIN传输安全标准)。从下图可以很清楚的反应这三个标准之间的关系。
无论是PTS还是PCI PA DSS,其最根本的目的是为了使最终的客户能够满足PCI DSS的要求。(关于PTS和PA DSS更多的介绍可参见PCI官方网站www.和atsec官方网站www.)。 在PCI DSS第 11.3中有这样的要求“ Perform external and internal penetration testing at least once a year and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment). These penetration tests must include the following: Network-layer penetration tests and Application-layer penetration tests”其转译中文意思是:至少每年或者在基础架构或应用程序有任何重大升级或修改后(例如操作系统升级、环境中添加子网络或环境中添加网络服务器)都需要执行内部和外部基于应用层和网络层的渗透测试。 什么是渗透测试 渗透测试是通过模拟来自恶意的黑客或者骇客攻击,以评估计算机系统或者网络环境安全性的活动。从渗透测试的定义我们能够清楚的了解到渗透测试它是一项模拟的活动,主要的目的是进行安全性的评估,而不是摧毁或者破坏目标系统。 从下图我们可以看到,渗透测试与网络扫描,脆弱性扫描,安全扫描和安全审计其实并不相同。渗透测试是介于安全扫描和安全审计之间,它并不是纯粹的扫描工作,但是它执行的深度又没有安全审计那么深入。渗透测试是从攻击者的角度,试图通过各种技术手段或者社交手段去发现和挖掘系统的漏洞,最终达到获取系统最高权限的目的。无论是从测试的覆盖面和测试的深度来看,渗透测试都要比网络扫描,脆弱性扫描和安全扫描更为深入。 渗透测试的目的 对于渗透测试而言,除了满足某些特定标准(如PCI DSS)的要求之外,渗透测试还会有如下的好处:
渗透测试的方法论和业界参考实践 对于任何测试而言,都会相应的测试方法或者规则。在渗透测试领域,业界的渗透测试方法论或者最佳实践可以作为一个很好的参考,但是测试人员在测试过程当中更多的是依靠自身的能力和经验去完成测试工作,因为在测试过程当中可能会遇到各种各样的问题。下面是行业中被广泛接受的测试方法或者渗透测试的最佳实践: OWASP(Open Web Application Security Project)Testing Guide——关注在web应用安全测试的测试指导。该测试指导涵盖了web应用程序大部分功能点的安全性测试,测试指导同时会给出一些测试的实例进行简单的说明。 OSSTMM(Open Source Security Testing Methodology Manual) -- 开放源代码安全测试方法手册。OSSTMM是一个关注在安全测试和评价的方法论。OSSTMM的测试用例分为五个方面:信息和数据控制;人员安全意识水平;欺诈和社会工程学控制水平;计算机和电信网络,无线设备,移动设备以及物理安全访问控制;安全流程,如建筑物,周边环境,以及军事基地的物理位置等安全流程。 Special Publication 800-115 Technical Guide to Information Security Testing and Assessment – 美国NIST发布的针对信息安全测试和评估的技术指导 ISSAF(Information Systems Security Assessment Framework)-- 关注在信息系统安全评估的框架 Penetration Testing Framework -- 渗透测试的框架,该测试框架是渗透测试实践的操作总结,它非常详细的描述了渗透测试过程当中每一步应该做什么,怎么去做。该份测试的框架对于渗透测试的实际操作有着非常好的参考价值。 渗透测试的流程 对于渗透测试,其流程大体包括:测试协议和方法确定,免责条款签署,信息收集,脆弱性分析,对脆弱性进行渗透和利用,权限提升,最终评估和报告编写以及客户根据渗透测试发现问题的整改和追踪等环节。以下是对于上述各个环节的简要介绍:
被动的测试活动,在此种情况下测试人员不会主动向目标系统发送攻击指令,测试人员通常会执行信息捕获的工作。 谨慎的测试活动,在此种情况下测试人员通常会对目标系统执行嗅探工作并根据嗅探获得的漏洞进行分析和评估。 审议的测试活动,在此种情况下测试人员通常会将发现的漏洞信息与客户进行讨论,以明确哪些漏洞在测试过程当中需要执行实际的漏洞验证和利用。 具有侵略性的测试活动,在此种情况下测试人员通常会根据所发现的漏洞信息进行逐个验证,此时测试人员考虑更多的是如何最大限度获得目标系统的系统权限或者获得目标系统上存储的信息。
基于应用层和网络层的渗透测试 对于PCI DSS第 11.3中有要求至少每年或者在基础架构或应用程序有任何重大升级或修改后需要执行内部和外部基于应用层和网络层的渗透测试。何为应用层渗透测试?何为网络层渗透测试呢?应用层渗透测试指的是对web应用程序进行渗透测试,测试要求覆盖OWASP Top 10(OWASP项目组会周期性的根据OWASP联盟中应用开发和测试专家反馈的结果定期对web应用面临的安全问题进行统计和排名,Top 10是web应用程序前10名影响最大的脆弱性)中的所有安全问题。对于网络层的渗透测试,通常是指对操作系统,网络设备等系统组件进行系统级别的渗透测试。 下图是2007年和2010年OWASP Top 10的排名对比。从图中可以看到Top 10的内容在这两年的评估当中出现了变化。所以在渗透测试过程当中我们除了参照PCI DSS的要求之外,还需要参照OWASP最新的关于Top 10的排名情况。 怎样选择合适的渗透测试合作机构 前面介绍了很多关于渗透测试介绍,以及测试流程和方法,然而我们在实际执行渗透测试工作的时候,应该如何选择合适的渗透测试实验室或者渗透测试人员进行测试工作呢?对于渗透测试人员的选择,PCI DSS在第11.3的要求:测试人员可以是内部具有能力且独立的内部人员或者外部合格的第三方评测机构。对于内部人员的选择,技术能力的考虑和测试人员的独立性是最为重要的因素。对于第三方的评测机构的选择,除了技术水平的考虑,以下的参考因素能够为客户在渗透测试过程当中可能会面临的安全风险提供很好的安全保障。
参考文档和链接 [1] PCI DSS https://www./security_standards/index.php |
|