John hubbard Mandiant 2020年11月
写在前面:这两年,国内BAS市场发展很快,BAS产品一个重要的分支是安全度量产品,目前有几家公司在做。有采用机器人的方式,也有采用模拟靶机的方式。这篇文档偏售前,描述了安全度量的必要性和优点。因为我正在销售这样的产品,所以觉得本文描述地特别全面和清晰。
这是关于安全度量比较早的一篇文章,由SANS邀请Mandiant做的。接下来对Mandiant和SANS做个介绍。
Mandiant是一家总部位于加州的私人网络安全技术公司,成立于2004年,致力于提供网络防御解决方案。
2013年被美国网络安全巨头FireEye以10亿美元的价格收购,主要提供安全服务及产品包括威胁侦测、响应与补救,威胁智能分析,事件响应及安全咨询服务等。
2019年5月28日, FireEye宣布以2.5亿美元收购网络安全初创公司Verodin,Verodin公司拥有一个帮助验证网络安全控制有效性的平台,可识别由于设备配置错误、IT环境更改以及网络攻击等问题造成的漏洞。Verodin的平台能够对极其复杂攻击自动进行安全有效性测试,并为安全程序验证提供系统、可量化和持续的方法
2021年6月,FireEye以12亿美元的价格将FireEye产品线名称和大约1300名员工出售给交响科技集团(Symphony Technology Group)。剩下的组织更名为Mandiant专注于 Mandiant Advantage 和其他服务。
2021年10月与2022年3月,交响科技集团(Symphony Technology Group)以40亿美元收购的McAfee完成了两个巨头的整合。McAfee与FireEye合并成新公司Trelix。
2022年9月,谷歌以54亿美元完成收购网络安全公司Mandiant。
SANS(SysAdmin, Audit, Network, Security)研究所成立于1989年,是一个合作研究和教育组织。它的项目现在覆盖了全球超过16.5万名安全专业人士。从审计人员、网络管理员到首席信息安全官,各行各业的人员都在分享他们所吸取的经验教训,并共同为面临的挑战寻找解决方案。SANS的核心是来自不同全球组织(从公司到大学)的许多安全从业者,他们共同致力于帮助整个信息安全社区。
许多有价值的SANS资源对所有提出要求的人都是免费的。它们包括非常受欢迎的互联网风暴中心(互联网的早期预警系统),每周新闻摘要(NewsBites),每周漏洞摘要(@RISK), flash安全警报和1200多篇获奖的原创研究论文。
使用安全验证度量网络安全控制的有效性
介绍:当前问题
本文的读者可能都了解,保护组织免受高级攻击可不容易。年复一年,入侵事件不断发生,至少和上年持平,甚至影响更大。然而每一年,我们都会听到一些声明,宣称在安全控制方面得到改进。为什么会这样?我们在网络安全上的投入还不够吗?还是工具不好用?亦或是我们网络安全团队的过错?答案可能就隐藏在这些问题之中,取决于每个组织的安全策略,结果的数字很清楚,但情况并不那么完美。根据安永会计师事务所2020年题为“安全如何从外挂进化到内生?“的报告:
20%的组织对网络安全风险非常有信心,已有的缓解措施可以保护组织免受重大威胁的网络攻击。
25%的组织可以从财务角度量化他们网络支出的有效性。
在过去12个月里,26%的入侵行为是由安全运维中心(SOC)发现的。
这些数字意味着什么?首先,看起来SOC平均有大量的收集工作,其次,网络防御团队可能正在努力沟通他们在保护组织安全方面的工作量和有效性。
根据IBM 2020年“数据泄露报告的成本”报告,数据泄露是一个非常昂贵的事件。2020年数据泄露的全球平均成本为386万美元,其中美国是平均花费最高的国家,为864万美元,医疗保健行业的平均成本最高,为713万美元。
看到这些数字,我们注定要失败吗?当然不是。但在成功的网络安全团队和那些经常遭到入侵的团队之间有什么不同呢?问题的一个答案就是我们将在本文中探索的概念:安全验证。每个SOC分析师和管理者面临的一个沉重问题是:“我如何知道我的工具在真正发生袭击时能够发挥作用?”我们能回答这个问题的最好方法是通过彻底的安全控制验证。
并非所有的安全验证措施都占有同样的权重。只有代表最新和真实世界发生的攻击测试才是好的测试。数周或数月前执行的验证测试在当时可能非常有用,但在当前的DevOps、数字化转型和云迁移世界中,您的安全立场和环境细节随时都可能发生巨大变化,会导致使您的数据暴露,而您却对此一无所知,因为您的知识和假设都建立在无效的测试上。
本文将探讨通过网络安全控制有效性度量来解决这些问题的最佳实践。它将探索安全验证技术,它们能做什么、它们是如何产生的、以及在选择安全验证策略时要考虑的关键能力。可靠的安全验证策略将帮助你在晚上睡得更好,因为你知道你已经尽了最大努力来验证你的安全观点。它也会帮助你避免更不幸和不舒服的境地“我怎么知道我的工具有用?”或者你所在组织的领导问你“你是怎么做的?我们被攻破了!我以为我们花了这么多钱在安全工具上能够防止这一切!”
SOC必须实现真正的、有意义的保护,但也要清楚地表达保护计划以及它如何为组织带来投资回报。比以往任何时候都更重要的是,网络防御者拥有帮助客观地衡量防御效果的工具。如果你正在为这些问题头疼,请继续阅读接下来的关键信息和最佳实践,可以帮助您克服这些问题。
安全验证:过去和现在
纵观网络安全的历史,验证安全控制有效性的尝试经常由多种初衷很好、但有潜在缺陷的评估方法组成。安全评估的策略包括定期渗透测试、脆弱性测试和指标收集,结合单点功能检查;或者在最坏的情况下,把我们的头埋在沙子里,当攻击者入侵时,希望我们的工具能像承诺的那样工作。
然而,这些方法可能不可靠,从而导致可预测到的问题。无数次我们听到这样的评论:“我发誓,这以前很管用”和“我认为这工具应该能发现,发生了什么事?因为安全团队没有意识到现在讨论的这个方案可能更有效。在讨论这个解决方案之前,了解测试的历史对于理解当前的情况很重要。
传统验证方法
据Matt Bromiley在SANS文章,“关于安全测试,安全从业者到底做了什么”,测试安全控制有效性最常用的方法是渗透测试、红队、利用无害化的恶意软件模拟攻击和攻击克隆组织环境的靶机。虽然这些方法是一个很棒的开始,它们基本上都是手工操作的方法,这带来了一系列潜在的问题。
测试网络安全控制有效性的方法
手工测试
过去,安全团队在渗透测试之外被迫以手工和耗时的方式验证他们的安全态势。基本测试包括尝试模拟攻击时,通过SOC分析人员验证,活动按计划步骤记录并发出报警。但手工测试存在几个问题:
单次测试的一个问题是,它仅限于验证当时的情况。如果情况改变了呢?一般组织的网络工具和软件都处于不断变化的状态,所以在某刻可能生效的某个分析策略,会受到上游变更的影响,导致不可预料的结果,在后续时刻无法生效。此外,日志代理和收集软件也可能失效,产生意想不到的盲点。考虑到需要大量的SOC分析场景,你可以想像单次测试很难规模化。
另一个大问题是防御方通常没有接受过渗透测试的攻击方法训练,因此,很难准确地模拟攻击。虽然有很多开源攻击工具和方法,网络防御者通常不想去了解命令行和控制参数的大量选项、持久驻留方法和其他漏洞后利用策略、或者如何正确地运行它们。收集各种类型的命令和控制参数、恶意软件和其他来信息源组合来进行测试,本身就可以成为一项全职工作,对于普通的防守者来说,难上加难。因此,进行可靠测试所需的威胁情报可能会吓退许多团队,一开始就不敢接受任务。所以,即使环境如预期的那样,防御者尝试自己测试可能会导致失败,因为缺乏必要的东西来推进一个实际的和有代表性的测试。
安全测试自动化的到来
为了解决这些问题,防御者想出了解决方案。首先,防御者单独编写脚本和在组织内部创建可扩展的自动化系统。虽然增加可扩展性,它并没有帮助解决团队缺乏编程人员编写自定义自动化脚本的问题。后来有了可用的开源解决方案,防御者能够基于标准化的威胁情报标准自行进行这些类型的测试,如Mitre的ATT&CK™矩阵。而这开始为许多没有编程人员的组织带来可重复的、自动化的测试,但仍然需要为给定的环境进行设置和定制,包括不可预测的更新和缺乏官方支持的不足。即使在今天,测试也经常降级为“如果我们有时间就去做”的活动。这可能是因为许多组织将不得不花费大量的时间来实现和证明一个清晰的投资回报。幸运的是,随着时间的推移,有了更多的解决方案可以解决这些问题。
渗透测试和红队
这么多年来,组织使用渗透测试、红队评估和其他未公开发布的模拟对手活动,在实际环境中测试防御能力。这些测试在覆盖范围和使用的技术方面通常是优秀的(假设有训练有素的攻击队),但仍有缺点。
与渗透测试相关的一个明显问题是成本。雇佣一个专业团队计划、执行和报告他们对您的组织的攻击,费用不菲。虽然他们很好地展示了现实的攻击者所能达到的效果,一般的组织很难持续做这个工作,一年一次都很难,除非有严格的合规要求。这意味着这些测试是“某个时间点”评估,通常在几个月后就会失效。他们还受困于某些自我测试具有的相同环境漂移和配置变更问题。Bromiley的论文(下图) 很清楚揭示了测试频率的问题。
网络安全测试的频率
关于渗透测试的第二个问题,坦白地说,他们几乎都能成功。去问问渗透测试员他们失败的次数,你可能会得到回答“从来没有!”为什么会这样呢?原因之一是大多数SOC无法完成自我运行的分析验证步骤,导致一个复杂的、昂贵的测试,最终有一个可预见的结果:完全绕过防御,完成攻击者想要模拟任何恶意任务。这意味着不仅是渗透测试是单点评估,它们也不合适,因为团队显然还没准备好!
如果您可以摆脱与自我运行分析验证相关的问题,而同时从全面的渗透测试/红队评估中提高价值,会感觉如何?安全验证领域的新工具可以提供这样的效果。因为他们易于使用而提高价值,这类安全产品正在快速发展。
现代解决方案
在研究影响评估控制有效性的因素时,Bromiley的论文指出(见下图),前几节中讨论的问题影响了一半的调查组织。
评估控制有效性的妨碍因素
这些妨碍因素是:
缺乏系统的方法—在测试背后没有系统的、可重复的过程,整个操作会让人感觉不值得信任,并影响可信度或有效性。
缺少知识—解决这些问题的方案应该消除对攻击方面专业知识的需求,并将安全验证置于所有团队的范围内,无论多么小或多么缺乏经验。
无法获得对基础设施的可见性—安全验证解决方案可能无法解决这个问题,但可以揭示检测攻击所需的关键数据源(如网络流量捕获和端点安全事件)在哪里完全不可用、意外离线、或配置错误、损坏或以其他方式停止服务。
使用自动化的局限—安全验证解决方案应该使重复单个测试和持续整个测试集变得容易。
无法对未知威胁建模——许多团队难以及时地实施仅用于检测目的的相关威胁情报。要想不只使用这些信息,还基于这些信息进行攻击可能会更加困难,特别是当对手的许多战术、技术和程序仍然很难定义的时候。
考虑到这些问题,让我们深入研究持续安全验证,并展示这类产品采用现代方法来解决易用性、可重复性和可见性的问题。
持续安全验证
对更容易的安全验证的需求带来了厂商构建和支持的持续安全验证解决方案。这一波易用和自动化趋势降低了安全验证测试的门槛,改善了所有规模的团队的适用性。
这种解决方案通常由可部署的代理或专用节点组成,用于启动测试和遥测运行状况监视。这些节点结合收集到的事件和警报数据,基于人、流程和技术,描绘出整个安全控制的运行状况和能力。防御团队通过指挥内部的节点与外部的节点相互通信,可以产生非常接近真实攻击的流量和端点活动。当然首先假设恶意活动可以代表真正的攻击技术,安全基础设施可以看到这些攻击,组织可以确信他们的安全控制会在真正的攻击场景中有效行动。
使用自动化的持续安全验证意味着许多痛点、人工测试的不可靠性和不准确性可以得到纠正,同时带来以下好处:
在厂商支持下,加速验证能力的快速部署
降低测试的复杂性,使任何规模的团队都可以进行测试
赋能蓝队成员(不太可能接受最先进的攻击技术培训)运行复杂的攻击场景
将模拟真实攻击的困难任务外包给专门从事威胁情报的厂商
增强对网络防御总体态势以及关键数据源的运行状况和配置的信心,这是能够检测到攻击的重要前提
把报告验证输出映射到行业标准攻击模型,随着时间的推移,在内部以及对其他组织进行基准测试
提供威胁情报,指导安全团队针对最重要的攻击类型进行测试
帮助团队确定哪些安全控制真正重要,哪些暂时忽略
持续是关键
正如前面所讨论的,以前的测试解决方案的一个缺点是它们的人工手动、单个时间点。可以毫不夸张地说,持续安全验证工具带来的最大改进可能是持续评估态势的能力。这消除了时间点评估方式的不足。相反,测试可以按预定的、自动化的方式运行,在某些东西发生更改或损坏时通知团队。问题可以是数据源变得不可用,或是意外禁用了警报规则,或是分析逻辑被修改后导致了意想不到的后果,如果没有有效发现攻击,将立即发出警报。一旦团队意识到问题,他们不仅可以修复问题并恢复正常,还可以分析失败并提高整个系统的弹性。
构建有效安全验证程序的关键因素
持续安全验证的好处是显而易见的。另一个独立但相关的需求是选择最佳解决方案。以下信息概述了在选择持续安全性验证的解决方案时需要考虑的事项。
完整和可信的测试结果
构建安全验证程序的最重要因素之一是相信它将交付准确和完整的结果。由于对完整结果有许多可能的解释,因此在安全验证时,理解“完整”究竟意味着什么非常重要。
数据源可用性和运行状况度量
了解“完整和可信”的一种方法是它如何适用于安全数据源(如端点日志和网络流量)可用性和运行状况。虽然这可能不是安全测试首先想到的事情,但遥测数据的收集和集中是成功的必要先决条件。初始配置之后,需要继续检查该数据源的运行状况。如果不能保证事件和警报数据按预期流动,验证的所有其他部分都可能受到质疑。因此,迈向成功的第一步是确定一个解决方案,该解决方案可以通知您是否有任何数据源在运行中丢失、配置错误或甚至执行不佳,并持续观察可能发生的任何问题。攻击者可能故意切断日志记录,日志代理可能自己崩溃,这两种情况都会使识别盲点或潜在事件变得困难。
整个攻击周期验证
测试漏洞利用前和漏洞利用后攻击战术的全部范围,同时对每种策略使用多种技术,是定义完整安全验证的另一种方法。例如,Mitre ATT&CK矩阵表明,有许多方法可以实现每个高级的漏洞后利用战术。本文使用Mitre ATT&CK 2020年7月子技术更新,甚至单个技术也被分解成多个测试用例来考虑。
在执行攻击时,应该使用真实的攻击二进制文件,在可用的情况下,以确保最高级别的攻击真实性。
攻击者工具和基于协议的测试
战术和技术只是完整测试需要考虑的一个层面。另一个需要考虑的因素是具体的条件。例如,攻击者使用的恶意软件、这些恶意软件实现的协议、以及他们留下的网络和基于主机的证据,都需使用不同的方法观察完整测试。产品越能提供代表技术的高级战术、或模拟威胁组织可能使用的工具,就越能运行更真实的验证测试。例如,了解对手是否使用了WastedLocker勒索软件、PlugX作为后门、CARROTBALL下载器或RIG漏洞利用工具包来攻击浏览器,并能够针对这些特定的工具进行测试,可以更好地验证测试。当然,复制所有高级攻击者恶意软件是不可能的,因为大部分恶意软件无法得到并且是闭源的(除非您的安全验证解决方案厂商可以提供0)。但是,在可能的情况下,生成模拟这些工具的流量和活动是一个主要的优点。
端点和网络设备覆盖
最后,完整的安全验证应该包括检测来自网络和基于主机的工具的攻击,而不管攻击的来源和性质如何。用于验证的工具应该从两种类型的数据源中获取数据,并从网络和主机的角度识别攻击的总体情况。它们应该能够提供有关网络设备(如防火墙、IDS、网络服务日志、PCAP等)以及端点工具(如AV、EDR、主机防火墙日志、系统和身份验证日志)是否发现攻击的数据。
威胁情报作为支撑的测试
情报为支撑的测试的第一个要求是对任何给定时间段活跃的攻击者有深入的威胁情报。由于这种类型的威胁情报不是一夜之间就能得到的,因此在购买安全验证产品时,与事件响应领域的厂商合作将非常重要。长期的研究历史、处理事件的经验和逆向高级恶意软件和工具是一个很好的参考,表明厂商将能够为需要运行的测试提供准确的指导。
希望快速启动安全验证程序的组织,将想从广泛的目标声明中开始获得快速和相关的情报,例如“我们是一家位于A、B和C地区或行业的公司,在X和Y上生产/存储数据。”能够根据地理位置和同类组织的事件将您的组织与过去的网络攻击联系起来,可以帮助您快速定位战场并预测最可能的敌人。问问你的厂商他们从哪里得到威胁情报。他们是否在做研究并从其他来源收集信息,或者他们是否拥有事件响应能力,也可以从未公开的事件中获得情报?他们是否有一个专门的威胁情报团队,生产成品情报产品,使他们对网络安全状况有比一般人更广泛的可见性?在这个领域,影响范围越广,他们就越有可能将您的组织与相关威胁行为者及其使用的攻击技术相匹配。
情报为支撑的测试的另一个需求是帮助组织集中测试正确的内部资产。因为攻击团伙要被视为有效威胁,必须具备对组织造成损害的能力、机会和意图。如果没有任何因素,那么这个团伙,尽管他们可能值得成为对手,也不一定值得高度关注。您的厂商应该帮助您将测试重点放在公司拥有的最高风险和最重要的资产上。要做到这一点,需要确定存在哪些恶意团队,以及它们的意图和能力是什么,然后将它们与您的环境中存在的内容进行匹配。例如,如果某组织有一个非常有价值的业务或制造流程,但是没有已知的对手对此感兴趣,那么就没有意图。因此,围绕要保护的资产进行重点测试可能不是最节省时间的方式。相反,如果组织针对特定资产的威胁模型只包括技能水平较低的攻击者,则该资产被入侵的风险也可能极低。这意味着最好将精力花在攻击者能力覆盖的地方。因此,旨在保证时间和金钱最大价值化的持续安全验证应该提供一个以资产或数据为中心的视图,以了解什么可能对攻击者有价值。有了这些知识,组织就可以将测试重点放在对手有意破坏该数据或资产类型的领域。
提供这些信息的能力围绕厂商收集的大量威胁情报,提供给客户,理想情况下,可以直接集成到他们的平台中。这种威胁情报应该包括有关攻击者及其攻击环境的高水平和低水平细节,以便客户能够对真正的最高风险做出明智的决定。
相关的、灵活的和可操作的测试
最后,安全验证解决方案应该以灵活的方式使与客户相关的数据始终可用来测试。这些测试的结果还应该以一种清晰且可操作的方式呈现给安全团队和管理层。
最新的攻击方法
如果不保持相关性,对最新攻击方法的要求很容易只是变成威胁情报。持续安全验证解决方案需要得到厂商的支持,厂商能够识别并及时推送针对本月攻击类型的更新。随着防御者和攻击者之间的猫捉老鼠游戏愈演愈烈,对工具和技术的假设很快就会过时。询问您的供应商如何获得威胁情报,以及您在新闻中读到的攻击可以多快出现在他们可以运行的验证测试中。如果新发布的漏洞有任何消息,攻击者可能会在24小时内开始使用它们。保持高速更新的能力可以成为识别新攻击的关键战略。
多环境
另一个关键功能是推动从一个子网中的任何给定端点或设备到另一个子网中的任何其他设备的测试。换句话说,安全验证解决方案应该能够在整个组织网络中所有可能的源和目的组合中执行攻击。这绝对必要,因为横向移动是几乎所有高级/针对性攻击的关键攻击阶段。在这种情况下,任何给定攻击阶段的源子网和目标子网不仅不可预测,而且可能以多种组合发生,所有这些都需要对防御者可见。一个完整的安全验证解决方案应该允许防御者从网络内部、网络外部、云、VPN链路或任何其他可能发生的网络区域发起攻击。
可操作的测试
最后但并非最不重要的是验证测试的输出质量。输出报告时需要考虑下列问题:
厂应商是否明确说明什么是有效的,什么是无效的,以及建议如何修复?
厂商能否告知您如何根据Mitre ATT&CK矩阵、NIST网络安全框架或其他框架对测试进行优先级排序?
可操作的条目是否按优先顺序排列,以明确哪些问题需要首先解决,为什么?这些条目是否与已定义的业务结果相关联?
能否从数据中得出长期趋势,例如,SOC随着时间的推移在检测攻击的可靠性方面正在提高?
报告是否与攻击框架保持一致,如洛克希德·马丁网络杀伤链或Mitre ATT&CK矩阵,它们是否显示了与其他阶段相比,哪里存在潜在的覆盖空白或覆盖不足?
厂商能否提供威胁情报,告知您如何根据与您的组织最关心的内容来确定测试的优先级?这样的问题将有助于确保安全验证工具和战略能够有效地转化为解决问题的行动,并在任何给定时间就安全操作的状态进行清晰的沟通。
总结
安全团队总是在寻找对抗攻击者的优势。虽然购买更好的预防和检测技术是一种方法,但这些购买通常难以量化对安全状况改善。在最坏的情况下,除了已经实现的内容之外,它们实际上可能不会添加任何额外的功能。安全团队如何知道他们被保护的程度,以及哪些工具对他们的投资最有效?持续测试工具的功能和性能可以保证在攻击者来入侵时发现他们。它还可以帮助您将网络安全支出集中在可以客观证明能够产生最大投资回报的工具和技术上。当然,没有任何测试可以预测未来所有可能的攻击行为。然而,通过结合来自全球攻击对手、设备、入侵情报来源和专业知识的最佳可用威胁情报,以及对敏感数据、基础设施和漏洞的内部知识,网络防御团队可以显著提高其执行任务能力的信心;因此,最大限度地减少攻击者行为的业务影响,并最终防止代价高昂的入侵行为。
(完)