企业渗透测试指南

Freya ·
更新时间:2024-09-21
· 904 次阅读

  正确执行的渗透测试是秘密的测试,其中由咨询人员或者内部人员扮演恶意攻击者,攻击系统的安全性。因为终目的是渗透,这种测试不会发出警告,完全保密(当然,上层管理人员同意进行测试并且理解秘密的要求)。理想的是,应该没有来自企业的支持……或者,大限度的是指出哪些是渗透测试团队应该避免的。在本指南中将全面介绍渗透测试和道德黑客,以及渗透测试的作用和执行方式,此外,希望本指南也能为想要成为渗透测试人员,也是道德黑客的技术人员提供帮助。

  什么是渗透测试?

  安全诊断主要有三种类型:渗透测试、审计和评估(被不同地描述为评估和风险评估)。单独使用任何一种测试都不可以很好的进行。在测量系统安全的时候,必须要在合适的时间执行合适的测试。渗透测试的名声响,因为每个人都听说过,而且“知道”渗透测试是专家用于确保系统安全的。本部分将介绍渗透测试的基本概念和道德黑客技术。

  ◆ 渗透测试的解释

  ◆ 标准渗透测试的道德黑客技术

  ------------------------------------------------------------------------------------------

  渗透测试对企业的作用

  渗透测试可以提供安全防御的有价值的信息。此外有些企业需要有说服力的论据说明不充分的安全可能导致重大损失。执行情况良好的渗透测试可以证明。本部分将介绍渗透测试对企业的作用,并涉及到企业建模的作用。

  ◆ 保证企业网络安全必需渗透测试吗?

  ◆ 威胁建模对企业有帮助吗?

  ------------------------------------------------------------------------------------------

  渗透测试的执行

  渗透测试的目标不仅是要评估电脑系统或者网络的安全性,还要决定成功攻击的可行性和商业影响。这样的测试模仿企图利用你的企业系统中的潜在的漏洞的攻击者。那么如果选择合适的渗透测试人员呢?应该采用什么技术和工具呢?渗透测试应该包括哪些方面呢?本部分将对这些问题做出解释。

  ◆ 如何选择渗透测试人员

  ◆ 漏洞分析新工具: RE:trace

  ◆ 社会工程测试应该包含在渗透测试中吗?

  ◆ 零了解渗透测试的赞成和反对理由是什么

  ------------------------------------------------------------------------------------------

  渗透测试和道德黑客

  在互联网刚刚兴起的时候,我们经常可以听到渗透测试,但是近几年这种狂热已经减轻了。这种信息风险评估方式??21世纪中它的名字是道德黑客??正在复兴。人们开始看到以黑客的方式思考来防御黑客是全面信息风险管理项目的不可或缺的一部分。本部分将介绍如何成为道德黑客或者渗透测试人员,以及他们执行渗透测试的注意问题。

  ◆ 道德黑客十训(上)

  ◆ 道德黑客十训(下)

  ◆ 渗透测试员解密企业系统评估

  ◆ 如何进入渗透测试行业

  ◆ 道德黑客如何转变为线路渗透测试人员?

  ------------------------------------------------------------------------------------------

  渗透测试的解释:

  安全诊断主要有三种类型:渗透测试、审计和评估(被不同地描述为评估和风险评估)。单独使用任何一种测试都不可以很好的进行。在测量系统安全的时候,必须要在合适的时间执行合适的测试。还有一点非常重要,是所选择的测试要基于企业的需要,而不是测试者(不管他们是内部员工还是外来的咨询人员)的技术(或者因为对技术的缺乏)。

  渗透测试:

  渗透测试的名声响,因为每个人都听说过,而且“知道”渗透测试是专家用于确保系统安全的。渗透测试目前很有吸引了,但是却是在大部分情况下使用少得系统诊断方法。

  先说重要的事情:正确执行的渗透测试是秘密的测试,其中由咨询人员或者内部人员扮演恶意攻击者,攻击系统的安全性。因为终目的是渗透,这种测试不会发出警告,完全保密(当然,上层管理人员同意进行测试并且理解秘密的要求)。理想的是,应该没有来自企业的支持……或者,大限度的是指出哪些是渗透测试团队应该避免的。很显然,如果企业外包了渗透测试,客户应该让咨询者知道具体的目的是什么。测试可以设计为模仿内部或者外部的攻击。它可以技术性的,也可以是非技术性的(例如,测试者可以使用社交工程师的方式进入网络)。在目标企业中,只能有一部分人知道测试。测试的关键的一方面是看企业是否能检测到渗透企图。处于这个原因,批准正式回应的人应该也被包括进去。

  现在,为什么渗透测试不如它说明的那么有用?因为它的目标是攻击安全。为了这么做,这个团队要鉴别可能的漏洞,重点是那些他们认为会产生结果,而不太可能被检测到的(从黑客的角度)。在这一点上,客户可以看到对这些漏洞的攻击可以产生什么样的破坏。但是,在运行测试的时候,测试员不会发现所有的漏洞,甚至不能确定测试可能检测到的所有漏洞的存在。渗透测试所能够证明的是系统可以被攻击。它不能对每一个漏洞进行记录,只能是那些在测试中被利用的漏洞。所以,虽软渗透测试可以推断出其他问题,但是任何渗透测试员都不能说已经鉴别到了客户的所有安全问题??或者甚至是大部分。

  那么,渗透测试有什么作用呢?处于各种内部原因,有些企业需要有说服力的论据说明不充分的安全可能导致重大损失。执行情况良好的渗透测试当然可以证明。为了从业务的角度使渗透测试起作用,企业价值可能的损失必须要强有力的并生动的证明出来,要超出企业的电脑被攻击的事实。

  有时,应该进行秘密渗透测试,看看安全策略是否被遵守了。虽然公开的测试也可以调查人们是否遵守了策略,但是在不知道被监视的时候人们会有不同的表现,这是人类的天性。例如,XYZ公司的安全策略禁止终端用户在电话中泄露密码,除非他们自己主动打电话到服务台。很明显,如果外部的咨询人员走到终端用户那里,并问:“你有没有把你的密码告诉过你不认识的人?”答案通常是没有。但是如果测试人员打电话给用户,情况不同了,假扮成IT部门的同事,并向用户询问他或她的密码,这样测试人员可以“确认”了。这样的社会工程渗透技术是确定是否遵守安全策略的更可靠的方法。

  ------------------------------------------------------------------------------------------

  标准渗透测试的道德黑客技术

  问:我近为我们公司的合作伙伴作了一次渗透测试,发现管理层没有获得合作伙伴执行测试的书面许可。合作伙伴报告说他们被黑了,现在公司被卷入了诉讼!从现在开始我要确保我手里有书面许可,但是我要怎么做才能挽救我作为一名道德黑客的名誉呢?

  答:没有什么能比得上把自己卷入诉讼中。好像你和你的公司都得到了很有价值的教训,知道在进行评估前首先要有合适的书面许可。你需要先做几件事情:一是和公司的管理层和律师谈谈,看看他们需要从你这里去的什么文件。这可能包括的文档有你被要求作什么事儿的,你做了什么测试,以及什么时候。要尽可能的合作,并快速建立一种观念,是你是把公司利益放在第一位的员工。

  下一步,为将来的渗透测试创建可以遵守的程序。这应该要求有管理层的一些文件要求以及各方面的同意这么做的许可类型的通知。在测试后,还应该包括测试进行的时间和内容的文档。

  如果你的公司可以很好地处理这种情况,管理层会在这个过程中支持你。如果清楚了公司知道需要有许可并选择了忽略它,你还有一个选择,很不幸,是你要辞职。有时,保护自己名誉的好方法是完全和公司分开,并找一家尊重道德的新公司。这是很激烈的措施,但是后对你有利。任何称职的雇主都不会这么对待你。

  保证企业网络安全必需渗透测试吗?

  问:在企业网络安全策略中,渗透测试的重要性有多大?

  答:渗透测试可以提供安全防御的有价值的信息,但是成本很高。为了渗透测试的可信性,通常必须要有独立的外部公司进行。如果使用内部人员和测试揭开漏洞,你可能会听到这样的批评,测试人员一定在攻击中利用了他们的内部信息和架构的指示来扩大安全预算。另一方面,如果测试表明状况良好,你可能会受到测试不够彻底的批评。如果有的话,这一定是第二十二条军规。

  由于渗透测试的高成本,我通常推荐成熟的安全项目才能考虑使用。如果你正在构建安全架构,缺少几个主要的部分,那么首先把预算花在这里吧。否则,渗透测试只能揭示已经知道的漏洞。另一方面,如果采用了渗透测试来评估全面执行的架构,你可能会获得潜在漏洞有价值的信息。

  ------------------------------------------------------------------------------------------

  威胁建模对企业有帮助吗?

  问:威胁建模是有用的防御机制吗?真的可以和黑客一样思考吗?

  答:目前,威胁建模对安全专家来说是一种难以置信的有用的工具。进行威胁建模的训练,可以遵循一下的步骤。

  首先,广泛考虑企业中有价值的信息资产、重要的计算机资源以及他们的位置。

  下一步,讨论一下细节,谁可能攻击你的企业,为什么。这些是威胁。网络罪犯会攻击你吗?单一民族会吗?内部威胁呢?不要忘了考虑安装在环境内部的飘忽不定的蠕虫。目前的威胁不是全部都是人为的。

  第三,基于你的威胁清单,开始考虑他们如何攻击你。简单的方法是什么?取得详细的信息,不要马上列出你的同事也可以想到的各种怪异的想法。当威胁和漏洞重叠的时候,风险出现了。

  后,考虑你已经采取的应对这些风险的对策。你的防御可以阻止你阐明的情景中的攻击吗如果不能,你可以在低程度上快速删除不当之处并立即作出回应吗?

  当然,你不能使用恶意人士和恶意软件攻击你的所有方法。攻击者都是创造性的,并在不断革新。还有一句老生常谈:你不能总是和攻击者想到的一样,但是你可以有时和他们想的存在某些相同之处。因此,确保你少可以防御你的团队考虑到的常见和破坏大的攻击。不采用这些基本的威胁建模,你可能会受到可预测的、很明显的攻击,而这些攻击原本应该可以防御的。

  OWASP(Open Web Application Security Project)的团队已经总结了各种威胁建模方法大纲,这是从微软自己的程序中获得的灵感。这份摘要描述了确定去也大威胁和相关风险的不同方法。很多公司也正在开发自动威胁建模软件,包括Skybox Security。

  ------------------------------------------------------------------------------------------

  如何选择渗透测试人员

  问:选择渗透测试员有什么标准?

  答:渗透测试的目标不仅是要评估电脑系统或者网络的安全性,还要决定成功攻击的可行性和商业影响。这样的测试模仿企图利用你的企业系统中的潜在的漏洞的攻击者。发现的任何安全问题随后都要报告,一起报告的还有对他们可能产生的影响的评估。建议还要指出如果减轻这些问题。通常这些测试都是在系统或者应用使用之前进行的。然后测试会定期进行。

  在选择渗透测试员之前,需要正确地确定你想要测试哪些系统。例如,测试Unix系统的专家可能不是测试Windows系统的专家。一旦决定了要测试的系统,向其他公司的同事询问做过类似工作的人的资料。相比较渗透测试证书而言,我更喜欢这种方法,因为在这个领域还没有真正的行业标准。

  我也不会总是关注的咨询人员。这些咨询人员通常都是通才,而渗透测试是专业工作。不管你会用谁,都要保证当签订合同时,来的人不是生手。

  还应该了解渗透潜在的测试人员喜欢使用的方法。执行渗透测试的好方法是进行一系列系统的可以重复的测试,可以对很多不同种类的漏洞进行测试,避免使用效率较低的分散的方式。但是还是要谨慎对待检查清单的方法,并且不能过度依赖自动化工具。这种类型的结果更像是漏洞扫描而不是全面的渗透测试。渗透测试并不是精密科学,所以测试人员要在探究关注的领域时非常灵活,并对新的阻力进行追踪。这样,测试可以关注你的环境中的攻击携带者。

  如果决定了让谁进行测试,要确保他们有时间进行彻底的评估。紧迫的时间限制会迫使测试人员跳过某些涉及到的问题。有一点很重要,他们要不断把发现的结果、测试完成后的终报告细节、关键的发现和建议通知你。记住这些报告是你付了钱所购买的,而且你需要找时间何测试人员进行讨论。如果你在选择测试人员的时候很着急,那么不仅会造成资金的浪费,而且你收到的报告会让企业造成误解,对安全做出错误判断。

  ------------------------------------------------------------------------------------------

  漏洞分析新工具: RE:trace

  两名安全工程师在上周推出一种基于Ruby的新framework,能够发现和攻击在OS X、Unix和其他操作系统上运行的常见应用软件存在的漏洞。

  这个新的framework叫做“RE:trace”,它利用苹果公司Leopard操作系统中的DTrace性能监控工具,为安全专家和逆向工程师提供了同时在堆栈和堆发现漏洞的能力,然后运行各种有趣的测试。DTrace是由Sun Microsystems开发的,初是想帮助应用软件和操作系统进行疑难问题解决,但安全专家也将它运用在其他工作任务的用途上。

  在华盛顿的黑帽大会上,高级安全工程师Tiller Beauchamp和安全工程师David Weston演示了如何使用RE:trace。它基于DTrace,不仅可以发现堆和堆栈溢出漏洞,还可以检测到缓冲区溢出,并在溢出对存在漏洞的软件造成真正的崩溃前,加以阻止。当数据在某给定应用软件中流通时,该framework还可以让用户对该数据进行追踪。

  “花在漏洞分析的时间大大减少。”Weston说。

  DTrace是在内核中运行的,这样可以易于访问整个操作系统,Weston说。由于它具有的特性广泛,本质上而言,它是一个“友好的、可编程的rootkit”。但是DTrace不是特意作为逆向工程工具而编写的,所以它不包括逆向工程师可能需要的便利工具。所以Weston和Beauchamp通过使用Ruby语言,增加了特性,包括用面向对象的方式在内存和追踪应用软件中dump搜索的能力。

  RE:trace还为用户提供了所查看的应用软件正在发生什么的反馈信息。比如,framework能够告诉用户谁分配了某字节的内存;谁使用了它;在一次攻击中,有多少的内存溢出;是否内存曾被释放。

  Weston和Beauchamp计划继续开发RE:trace,并将在接下来的几个月内增加更多的特性和功能。

  ------------------------------------------------------------------------------------------

  社会工程测试应该包含在渗透测试中吗?

  问:社会工程应该是渗透测试的一部分吗?这样做是道德的吗?

  答:这个问题的答案还在争论之中。以下尽量不偏颇地列出对这个尴尬问题的双方的观点。然后,我会谈一下我的意见。

  有些安全专家坚决认为社会工厂测试不应该成为渗透测试的一部分。原因是安全人员需要对企业的所有员工都非常信任。

  如果没有这种信任,这些员工可能会忽视在渗透测试中的社会工程演习一部分的欺骗他们的人提出的建议。更糟的是,在这种测试中发现的缺乏良好的安全实践的员工可能会被动或者主动地破坏他们的安全主动性,并对整个企业的安全状况的改善带来不利影响。

  在这个问题的另一个方面,有些人认为确保员工理解并遵守安全实践至关重要,不必企业的技术结构和配置的重要性低。即使有完美的安全技术(而这是不存在的),不遵守可靠的安全实践的用户可能会破坏整个企业。而且如果员工的做法没有标准,如何决定他们是不是合适呢?好的安全测量的方法之一是对目标企业进行等级式的社会工程攻击,来看看他们如何反应。这样的测试对员工的行为必调查或者测验有了更好的实际的了解,在调查或者测验中,员工的反应总是像他们是模范市民。

  虽然我对双方的观点都很尊重,但是我更赞同第二种观点。社会工程测试具有很高的启迪作用,可以揭示目标企业的安全意识中的不足。具体的发现可以帮助企业以更快更划算的方式建立更好的安全意识。但是,这样的测试的进行必须要极端关注和专业精神。在开始任何社会工程测试之前,都要确定:

  ◆ 列出测试的内容,并创建具体的测试假象脚本。

  ◆ 确定管理层预先同意在后的报告中不提及具体的员工姓名,测试应该关注确定企业中的漏洞,以及对员工整体改善的建议,而不是查找有问题的个人。

  ◆ 记录测试中的所有的交互动作,但是不再后的报告中包括员工姓名。

  ◆ 考虑企业是否具有管理这种测试的专业技术,或者还是应该雇佣第三方。

  ------------------------------------------------------------------------------------------

  零了解渗透测试的赞成和反对理由是什么?

  问:如果测试人员不了解要进行渗透测试网站,赞成和反对的理由是什么?在理想状态下,测试人员应该是什么也不知道吗(为了更好的模仿攻击者的思维模式)?

  答:对网站的渗透测试环境的零了解意味着渗透测试人员被告知很少的目标信息,可能只有它的URL,因此可以模仿真实的攻击者。

  虽然对于预算和办公室政治的环境很有帮助,可以向老板提交报告证明即使不了解新网站的人也可以入侵进入,但是我对零了解的方法还有一些保留意见。我们知道一定百分比的攻击时来去网络边界内部的,或者来自有内部帮助的外部。如果你想要知道你的网站在所有现实情景中是否安全,零了解不是必须的好出发点。

  零了解的方法也有潜在的缺点,它返回结果比较慢。如果预先对测试人员介绍了系统的某些基础,会节省时间,而在产品生产的时候,时间通常是紧张的。这里重要的变数之一是目标的状态:是在生产还是在开发?当测试产品系统的时候,你可能想要测试人员让你尽快了解所发现的漏洞,而不是等后的报告。假设和测试人员的合同写的很合适,你可能可以个给漏洞打补丁,并测试补丁。当然,有人会说把渗透测试人员作为安全的改进人员可以花少钱得到大的效果。

  后,不管你是否选择从零了解出发,记住在不触犯法律的情况下你不可能真正的复制现实世界。你必须假定你的攻击者准备好了犯法来完成他们的目标,但是很多企业可以给渗透测试人员免死金牌。所以,你想要你的渗透测试人员可以和犯罪黑客一样思考,并把非法渗透到系统的方法写下来给你。

  底线是现实世界和渗透测试是两个不同的事情。如果有安全专家定期对产品中的潜在漏洞进行测试,而安全专家完全了解产品,而不是设置不现实的测试情景,你的安全资金可以以好的方式支出。



渗透测试 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章