渗透测试助力PCI DSS合规建设(3)

从测试范围的选择,客户可以指定整体网络环境的系统组件,或者是部分的网络环境的系统组件,又或者是对于特定的目标系统进行测试。对于测试人员在测试过程当中的活动,客户可以要求测试人员隐秘的执行渗透测试活动,又或者明确测试人员并不需要隐藏测试活动可以公开执行渗透测试工作。在渗透测试活动中,客户可以要求测试人员对如下方面执行渗透测试工作:对互联网络执行渗透(如互联网上的web服务器,数据库服务器,网络设备等等);对通讯执行渗透测试(如PSTN网络,电信网络,3G网络等方面);对物理安全执行渗透测试(如目标系统的物理防护,电磁辐射等方面);执行社会工程学测试(主要是为了测试员工的安全意识)。在测试方法设定的时候,客户还可以要求测试人员以外网或者内网作为渗透测试活动的出发点。在确定测试协议和方法之后,测试人员通常会要求客户出具一份渗透测试的免责声明,该声明中会明确声明测试人员不需要为测试过程中产生的任何风险承担法律责任。这份免责声明,对于渗透测试人员而言是很好的法律保护,因为任何的测试活动都不可能百分之百安全,在某些测试过程(如对漏洞进行渗透和利用)当中难免会存在一些安全风险,如果没有此份声明测试人员迫于法律的限制不可能完成后续的测试工作。 当完成上述两个准备阶段的工作之后,测试人员通常会进入非常重要和关键的一个环节----信息收集。在信息收集过程当中包括但不限于以下信息:IP地址信息,关联域名信息,域名联系人信息,DNS服务器信息,邮件服务器信息,IP地址段路由信息,和目标系统相关的人员信息收集,目标系统漏洞信息,或者通过社会工程学从相关人员口中套取有用的信息等等。信息收集是一门比较高深的学科,如果信息收集得很好,很多时候都不需要使用技术手段对系统漏洞进行渗透利用都能获得系统的权限。对于渗透测试而言,虽然它是一项通过模拟黑客或者骇客的攻击以评估系统或者网络环境安全性的活动,但是渗透测试比真实生活当中的攻击行为有着更多的限制。渗透测试并不以摧毁或者破坏系统的可用性为目的。在渗透测试过程当中,我们需要最大限度的保证客户业务的正常运转(当然客户的特殊要求除外),在这个前提下 尽最大可能发现和挖掘目标系统的脆弱性并进行利用。因此,在进行真正渗透之前,我们通常需要对发现的脆弱性进行分析,分析和评估该脆弱性可能会对目标系统造成的影响,并制定相应的应急预案。对于脆弱性的分析通常会借助外部的脆弱性扫描工具如Nessus,QualysGuard ,WebInspect或者是Nikto2等等进行脆弱性的发现和识别,测试人员会根据所发现脆弱性的类型,CVE(Common Vulnerabilities and Exposures)依据CVSS(Common Vulnerability Scoring System)对于脆弱性的评分,客户被测目标系统所处的实际环境等因素进行综合考虑以进一步对脆弱性进行分析。在PCI DSS第11.2中要求客户需要每个季度或者在基础架构或应用程序有任何重大升级或修改后(例如操作系统升级、环境中添加子网络或环境中添加网络服务器)都需要执行内部和外部脆弱性扫描。外部 脆弱性扫描是需要由PCI SSC授权的扫描服务提供商执行,业界的术语叫做ASV(Approved Scanning Vendors)。目前PCI DSS对于外部脆弱性扫描活动不仅仅要求需要由ASV开展,对于实际执行脆弱性扫描的人员也需要经由PCI SSC进行培训,考核并获得相应资质证书之后才能出具具有资格的扫描报告。在渗透测试脆弱性分析的阶段,测试人员可以参考客户提供最近的ASV扫描报告作为脆弱性分析的输入数据。在完成对脆弱性分析之后,测试人员会根据与客户之间的渗透测试方法和协议进一步对脆弱性进行渗透或者利用。在测试过程当中,渗透测试人员可能在初次攻击完成之后获得了有限的权限,此时渗透测试方法和协议则是测试人员最好的参考。如果客户允许执行进一步的权限提升操作,测试人员则可能会尝试将以获得的权限提升至管理员级别或者系统级别的权限。在完成对脆弱性的渗透和利用之后,测试人员会对渗透的结果进行评估和判断,以确定脆弱性的可利用价值,同时渗透测试的过程以及测试过程中发现信息将会被编写到最终的渗透测试报告当中。对于在渗透测试过程当中,由于特定的原因(如客户的要求,漏洞利用条件的限制等等)导致脆弱性并没有被实际测试,测试人员将会在报告当中描述恶意人员可能对该脆弱性使用的攻击方法以及该脆弱性被成功利用后可能带来的安全风险。客户根据渗透测试报告中所发现的脆弱性以及测试人员提供的解决方法进行脆弱性修复。对于完整的渗透测试流程通常还会包含对修复后的脆弱性进行验证测试,从第三方的角度去评估脆弱性修复的有效性。

基于应用层和网络层的渗透测试

对于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的要求:测试人员可以是内部具有能力且独立的内部人员或者外部合格的第三方评测机构。对于内部人员的选择,技术能力的考虑和测试人员的独立性是最为重要的因素。对于第三方的评测机构的选择,除了技术水平的考虑,以下的参考因素能够为客户在渗透测试过程当中可能会面临的安全风险提供很好的安全保障。

专一性,IT安全是否是该公司的主营的业务?该公司自身是否切实执行IT安全流程?评估机构和他们员工是否具有相关的资质?该评估机构是否为行业的领导者,帮助或者能够分享相关的标准信息?该机构是否具有相关的成功项目经验?该评估机构是否能够提供除渗透测试以外其他能够提高客户流程等有价值的服务?该评估机构是否能够在很多不同的技术领域提供专业知识和经验?评估机构安全评测的独立性,是否能够为客户提供第三方独立的不带任何偏见的评估报告?该评估机构是否为客户提供足够的保险和合理的法律协议保障?谁是该评估机构的服务客户?

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

网络安全:互联网安全 如何防范木马及病毒

网络安全:互联网安全 如何防范木马及病毒的攻击

一、计算机中毒有哪些症状? 人生病了,会有各种各样的症状,同样,电脑中毒了也会有...[详细]

加强网站服务器安全维护的技巧

加强网站服务器安全维护的技巧

计算机系统服务器的维护工作十分重要,稍有不慎就会使整个网络陷入瘫痪。目前,网络经...[详细]

电脑离线就安全?这个软件一样能远程窃取数

电脑离线就安全?这个软件一样能远程窃取数据

以色列的一个研究团队已改良了窃取离线电脑数据的方法。人们一直认为这种离线电脑在面...[详细]

如何在Linux上最妥善地管理加密密钥?

如何在Linux上最妥善地管理加密密钥?

存储SSH加密密钥和牢记密码可能是一件让人很头痛的事儿。不过遗憾的是,在如今恶意黑...[详细]

如何在 Linux 上运行命令前临时清空 Bash

如何在 Linux 上运行命令前临时清空 Bash 环境变量

我是个 bash shell 用户。我想临时清空 bash shell 环境变量。但我不想删除或者 unset...[详细]

返回首页 返回顶部