应用渗透测试(渗透测试需要掌握的技能)
本文汇总目前已有的所有安全评估类型,并进行分析。
概要
有许多不同类型的安全评估,并不总是容易在我们的头脑清晰的表现出来以下是对安全评估的主要类型的简要描述,以及常见混淆评估的区别。
安全评估类型
>>>>
脆弱性评估
脆弱性评估是一种旨在环境中产生尽可能多的漏洞的技术评估(威胁区别于风险,威胁是会造成损害,风险不一定会造成但是存在和脆弱性类似,因为不一定会发生),以及严重性和补救优先级信息。
通常混淆
漏洞评估是最经常与渗透测试被混淆(或者混为一谈)。这主要是因为售前认为后者听起来更cool,上帝保佑。
最佳使用时间:当安全度低至中等时,同时您需要优先列出所有错误的列表时,此时漏洞评估最适用,目标是尽可能高效地修复尽可能多的威胁/漏洞。
>>>>
渗透测试
渗透测试是旨在实现特定目标的技术评估,例如窃取客户数据,获取域管理员帐号或修改敏感的薪资信息。
当然,渗透测试是最经常与脆弱性评估被混淆(或混为一谈)。究其原因是因为另一种方法是将漏洞评估视为在知道/假设存在的情况下寻找安全问题,同时并将渗透测试视为验证配置,直到您认为它是安全的。
最佳使用时间:由于渗透测试旨在实现一个或多个具体目标的安全评估,因此在大多数情况下不应由低级或中级安全机构委托。对低或中等安全性企业进行渗透测试我更推荐一整套的安全流程,如“实施整个组织的安全修补”,“禁用不活动的用户”,和我最喜欢的一个 :“了解你的敏感数据“,而不要浪费金钱进行渗透测试,除非您已经进行了一个或十几个漏洞评估,然后修复了发现的一切。渗透测试用于在已经修复一定漏洞并不知道隐藏的威胁情况下进行的安全评估测试。
>>>>
红队评估
红队“评估”在企业背景中是一个误导,因为公司红队服务理想情况下应该是持续而不是短暂的。因此,理想情况下,红队评估比评估更适合服务(红队服务)。但不管这个区别,如果企业红队的中心目标是提高企业信息安全防御的质量,如果存在这种情况,那么这个防御是公司的蓝队。事实上,这是一个小写的“红队”:一个独立的组织,挑战一个组织来提高其有效性。在公司红队的情况下,他们正在改进的组织是蓝队。
在我看来,红队服务应该总是有以下五个要素:组织独立,防守协调,持续运作,对手仿真和功效测量。
通常混淆
红队服务最常见的是与渗透测试混淆。销售和营销团体几乎会互换使用这些术语,以及许多内部安全组。令人困惑的人们基本上看到“红队”是一种精英更精英的渗透测试。红队评估和渗透测试评估是不一样的,渗透测试是在一个定义的范围和时间点评估,具有测试成功或失败的具体目标。而企业红队(无论是内部还是外部)是持续的服务,模仿真实的攻击者,以改善蓝队。他们有时可能会分享TiPs,但目的却有很大不同。
最佳使用时间:当组织涵盖了强有力的漏洞管理的基础知识时,此时最好使用红队服务/红队评估,并且至少有一些检测和响应环境存在恶意或可疑行为的能力。如果一个组织仍然在努力进行基本的资产管理,修补,网络出口管理等基础,通常最好在聘用或建立“红队”之前解决基础的安全问题。红队一般评估和测试的是已经形成的,成熟的业务结构,而不是寻找不成熟或者刚开始搭建的环境中的问题。同时如果你没有蓝队,你可能不需要红队。(具体情况具体运用)
>>>>
审计
审计可以是技术/或者基于文档的,并且重点关注现有的配置,以及如何与期望的标准进行比较。这是重要的一点。它不需要证明或验证安全性; 它验证了对于已有安全手段的既定视角的一致性。这两件事情不应该混淆。
通常混淆
审计往往与几乎所有其他类型其目的是要找到漏洞并修复它们的安全评估混淆。如果有一个项目在标准说您不应该有漏洞,但是关键属性是将当前状态对应到任意评估标准,这可能是审计的一部分
最佳使用时间:组织通过审核来证明业务合规性。但重要的是,不应使用合规性来证明安全性。在已经检查的情况下,安全组织显然更有可能遵守合规要求,但符合合规性的组织不应该紧紧因为符合标准X或Y而觉得业务符合安全性,也就是说合规性≠安全性。
>>>>
白/灰/黑盒测试
白/灰/黑测试说明用于指示测试人员在给定的技术评估中需要获得多少内部信息。评估等级的意思是将光线映射到内部的透明度:白,灰,黑,因此白盒测试是测试人员可以完全访问所有可用内部信息的地方,如网络图,源代码等。灰盒测试是下一个不透明度水平这意味着测试者有一些信息,但并不是全部。一个黑盒测试– 你只能猜测这是一个测试,测试者对于环境的内部知识为零,即从攻击者的角度来进行评估。
常常混淆
围绕白/灰/黑盒命名的最大的混乱来源是:人们并没有意识到它们并不是真正的测试类型,而只是一个方面,一个范围。它们最常用于脆弱性评估,您可能希望找到可能出现的最多问题,并为打开掩藏的威胁和风险提供重要动力。请记住,漏洞评估的目标是尽可能多地找到问题,因此隐藏来自测试人员的内部信息,使他们无法找到问题,并不会伤害到风险和威胁它们– 但它会伤害您。不要混淆:攻击者想知道什么,可以看什么/和攻击者想做什么,存在什么问题。这是两件事情,需要单独处理。如果你想知道攻击者能做什么。
最佳使用时间:白盒测试最适用于漏洞评估,因为您希望尽可能多地找到问题,无论测试人员如何发现它们。当人们对渗透测试和漏洞评估之间的区别感到困惑时,通常会使用灰盒测试。他们想提供一些信息,但不是全部。让我们清楚一点:如果你想找到所有的问题,你不应该保留测试人员的信息。但是,如果您正在进行渗透测试,您不能给测试人员任何内容,那么这是一个黑盒测试。在你的脑海里保持清晰的接线,你会没事的。
>>>>
风险评估
风险评估,类似于威胁模型,对于区分两者边界有两个比较模糊的方面:如何理解和如何进行。在最高级别,风险评估应包括确定当前可接受的风险水平,同时衡量当前风险水平,然后确定将两者进行比较分析可以做些什么。风险评估通常涉及风险评估的两个维度:概率和影响,以及使用定量和定性模型。在许多方面,风险评估和威胁建模都是类似的练习,因为每个人的目标是确定一个直截了当的行动,将风险降低到可接受的水平。
通常混淆
风险评估通常与威胁评估混淆,因为二者都是追求相似的目标。主要区别在于评估开始的地方以及他们的重点。威胁模型侧重于攻击场景,然后重心转移到中间层,威胁,远程控制和潜在的影响。风险评估通常从资产方面开始,评估资产的价值和风险,以及潜在的威胁,事件发生的损失概率,损失的影响等。
最佳使用时间:风险评估应被视为一个总结,用于确定您的资产有什么价值,资产如何受到攻击,如果这些攻击成功,您将会失去什么(造成什么样的影响),以及应该如何处理这些问题(应急响应)。重要的是,当有人说他们要做一个风险评估,你深入了解什么是什么意思,即使用的是什么方法,什么模型,什么工具等等。
>>>>
威胁评估
威胁评估是一种与其他提到的安全审查有些不同的安全评估。一般来说,它比技术更多地涉及物理攻击,但线条模糊。威胁评估的主要重点是确定是否可靠地威胁(认为是炸弹威胁或暴力威胁),或者是以其他方式被发现的威胁。评估的驱动因素是确定应该花费多少资源(如果有的话)来解决有关问题。
常常混淆
“威胁”一词在安全性中被多种使用,导致了很大的混乱。在这种情况下,与“威胁agent”的用法相反,该术语用于“威胁”,或“确定威胁是否真实”。起因来自特勤局调查学校的暴力行为,挑战在于确定他们收到的成千上万的威胁,他们应该以非常有限的资源回应。这与许多人在听到威胁评估(正在调查黑客,政府等等)的潜在威胁agent的想法形成鲜明的对比。
最佳使用时间:威胁评估最适用于有人在将来发生攻击的情况下,或者这种潜力被揭开。在这种情况下,目标是了解情况是否值得花费资源来解决。
>>>>
威胁建模
威胁建模对于大多数组织而言,并不是一种很好理解的安全评估类型,部分问题对许多不同的人来说意味着许多不同的事情。在最基本的层面上,威胁建模是捕获,记录和(通常)可视化威胁代理,漏洞,攻击,对策和对业务的影响与特定环境相关的过程。顾名思义,重点通常是从威胁代理和给定的攻击情形开始,但随后的工作流程可以捕获可能利用的哪些漏洞,可能会使用的哪些漏洞,可能存在哪些对策可以阻止/减少这种攻击,以及可能产生的业务影响等等,和SDL+风险评估有点类似。
常常混淆
威胁建模一般令人困惑。许多混乱来自关于定义和语义的辩论,因为威胁建模通常包括围绕威胁,威胁代理,漏洞,漏洞利用,控制,风险和影响的讨论。每一个都是自己加载的,当你开始尝试与所有的对话同时发生宗教战争时。另一个问题是人们失去了目标,因为有很多因素产生。我们试图找出漏洞吗?我们正在尝试查看中间威胁?我们是否记录潜在的业务影响?等等。最好的总结方法就是说,最好评估威胁建模给安全性带来什么:那就是它显示攻击场景
最佳使用时间:组织应该在早期经常地使用威胁建模,并且它们应该是开发过程的一部分(SDL)。它们是确保已知潜在攻击场景在实际上可以通过给定的安全状态来处理的一种方式。威胁模型也可以从纯粹的文档和可见性的角度出色地显现出来。看到你潜在的威胁因素,观察他们可能如何攻击你的应用程序或系统,使用什么阴谋和什么漏洞,对你的组织可能做了什么的往往是一个清晰的案例。它们对于显示非安全性的用户,不遵循安全流程的程序和产品尤其有用。
>>>>
Bug赏金
Bug赏金是一种技术安全评估,利用众包来查找系统中的漏洞。中心概念很简单:无论质量如何,安全测试人员都有自己的优势,弱点,经验,偏见和偏好,这些结合在不同的人测试时为同一系统产生不同的发现。换句话说,您可以为100位经验丰富的安全测试人员提供完全相同的测试方法,并且可能会发现广泛不同的漏洞。bug赏金的概念是涵盖这种差异,而不是通过在单个评估中利用多个测试人员来对付它。
常见的困惑
bug奖励是进行技术安全测试的一种比较新的方法,和是否应该进行安全测试,还有一些混淆。我认为最好的答案是,bug赏金应该被认为是一个漏洞评估,其目标是尽可能多地寻找许多问题来进行修复,但是被认为是渗透测试,您应该首先进行经典的脆弱性评估。这样做的原因是bug奖励使用了许多人,擅长寻找不寻常的问题,不仅仅是运用自动化和单一测试者评估可以发现常见的问题。
最佳使用时间:当您已经执行了一个或多个标准漏洞评估(应包括自动化和手动测试)),然后修复了发现的所有内容时,最好再使用bug奖励。将它们考虑进经典脆弱性评估和渗透测试之间的可选步骤,如上所述,它不是寻求所有安全问题,而是确认安全状态是否是通过实现特定目标而所需要的状态。
最经常混淆
以下是考虑这些评估类型时最常见的错误。
如果您对自己的安全状态不确定,并且已经知道安全状态不稳固,那么您应该进行脆弱性评估 – 而不是渗透测试。渗透测试用于测试您想了解的业务指定区域的状态。
思考Bug 赏金的最佳方式是增强漏洞评估的发现阶段。脆弱性评估有两件事:发现(尽可能多地找到问题)和优先级排序(首先要排列什么)。第一部分的Bug赏金很棒,第二部分不好使用。因此,当您已经完成多次漏洞评估并且已经找到了简单的东西时,它们最适合使用。Bug Bounties擅长寻找使用其他方法找不到的问题。
由于市场营销和销售推动了信息产业的发展,人们不断凝聚红色团队和渗透测试。因为红队是为了模仿对手,所以他们一般只有在持续运行的情况下才能工作,理想情况下永久地运行。所以,如果你有一些公司提供了两周的“红队”参与,这可能更好地被描述为渗透测试。因此,主要的区别是真实世界的攻击者的模仿,包括他们的韧性,持续的攻击时间,TTP的复杂程度等。缺乏这些要素的评估是渗透测试,而不是红队的参与。红队评估和威胁模型更偏向于长远安全保障。
总结
简而言之:
脆弱性评估的目的是找到尽可能多的漏洞,以便优先处理补救措施。输出是问题优先级的列表。
渗透测试旨在确定攻击者是否可以在面对您当前的安全状态时达到特定目标,例如窃取敏感数据或其他会对组织造成伤害的活动。产出是一份报告,说明目标是否实现,以及可能在过程中所做的任何其他观察。渗透测试没有提供完整的漏洞列表(漏洞不可能全部都发现),或者确定了所发现的任何优先级(有高中低之分);红队旨在不断有效地效仿现实攻击组织,以提高企业其防御能力。红队持续运作,具有接近全面和非常有限的限制,并不断发展他们的方法来匹配/或超出组织的实际攻击者的能力。
审计旨在确定给定组织对某一标准的措施。审计通常不直接测试安全性,而是测试是否符合标准。被测试的标准可能与实际安全性有很强或弱的联系,不应与脆弱性评估或渗透测试混淆。审计的输出是为了实现合规性而必须修正的领域的列表。
白/灰/黑盒评估是评估期间向安全测试机构提供多少信息的度量。这些可以是内部的,外部的,基于应用的,基于网络的,有或没有削减等。盒测试评估的唯一考虑是与测试方共享的信息量。
风险评估用于确定给定组织面临的最重要风险,以确保将其纳入业务可接受的水平。他们可以采取多种形式,但产出始终是优先考虑的风险列表,然后是建议。
威胁评估用于确定给定的威胁(通常但不一定是物理性质)是否值得花费有限的资源。产出通常是一个建议,如果有的话 – 应该致力于这个问题的修改。
威胁模型用于确定与给定系统相关的各种威胁,威胁情境,威胁人员,漏洞,,控制和影响。它们理想情况是在创造和开发过程中早期进行,并且在重大变化之后也可以重复进行。产出通常包括上述各项的文件,以及考虑到控制后的剩余风险,以及改进建议。
Bug 奖励是利用众包来发现系统中的漏洞的项目。它们是漏洞评估工具箱中的工具和手段。参与赏金的人所使用的技术可能会有很大差异,正在测试的系统类型也会有所不同。重要的是,而不是内部团队,或一组特定的合同雇员从事这项工作,或者是一大批独立研究人员,他们都将自己的观点纳入测试中。
创建日期:2015年3月| 更新:2017年3月
译者:LinuxSelf 来源:FreeBuf
原文:https://danielmiessler.com/study/security-assessment-types/
山西开源聚合科技有限公司
专注信息安全人才培养
搭建企业人才供需桥梁
咨询QQ群:495066536