按惯例,虽然犹豫再三拖了好几个月,还是发了这篇早已写就的文章。每年的下一座圣杯观点,介绍笔者认为两年后将初步见证成功的产品方向。很多时候,未来趋势就安静地等在那里,只是需要人们从纷繁复杂的表象中去砂里淘金。安全行业历史上的成功产品,初期即使并非蜂拥而至,也至少有五六家尝试。而追求创新却误中副车的也比比皆是。Hype Cycle本质是市场现状的忠实记录,收录其中却又被快速抛弃的情形很常见,不可盲信。回头看看,曾几何时诸多热点产品甚嚣尘上,转瞬间早已风光不再,在今年几乎无人提及。

本公众号一贯看重的是安全能力,赞许的也多为试图补全能力拼图中所缺失的构成。例如,2016年圣杯文章中提及的自动化响应,提供大幅改善切肤之痛安全运营效率的能力,2017年11月G分析师发布关于SOAR的报告,更推动其演变为今年的共识大热点,迄今此领域头部企业已经有很多被收购。那么,下一个行业亟需的安全能力是什么呢?

由Cyber Resilience说起

让我们先看看安全业界普遍接受的终极目标:Cyber Resilience。这个概念很顶层,以至于很难直接分解落地,例如下图MITRE发布的健壮性设计框架,虽然其内容质量很高且颇具参考意义,但实在是混乱到没有结构。

所有安全架构设计和实现都面临着有效性检验的难题。尤其是当我们要把上面这张几乎是杂乱无章的设计原则图落地到现实世界中时,缺少结构性实施指导建议而导致的结果就是,每一个模块都可能会由于考虑不周或操作失误带来严重安全隐患。这也是我们需要PDCA质量管理循环中检查验证环节的根本原因。

现实世界的复杂环境,令某些安全基础概念说起来简单,做起来却如蜀道之难。补丁宕掉系统和备份失效都是再常见不过的现象(不只是安全,其它软件业务也面临相同难题)。高危漏洞肯定是要修补的,中低危漏洞是不是要劳民伤财呢?每个安全团队每周都会问自己。同样,苛求CMDB的普遍实施也是不可能完成的任务,数字化进程速度肯定会让试图捕捉每步足迹的团队瞠目结舌手足无措。甲方团队的最佳实践是对资产分类分级,以风险为准绳,重要业务系统自然要排查梳理清楚各种属性和关系,低重要性资产也没能力没资源去纠结。我们感觉投入海量人力物力排查资产并修补漏洞对企业安全等级会有明显提升,但实际情况究竟是不是这样呢?如何验证呢?

说句令人绝望的话,笔者认为打安全补丁障碍重重的现象不会好转,只会越来越困难。不要相信什么安全意识提高会减小阻力的言论,那都是暂时的局部假象。全局来看,数字化商业进程带来了软件百花齐放,数数一个大型公司使用多种不同的编程语言和层出不穷的开源模块,就知道漏洞很快便会补不过来了,未来安全团队若以补丁覆盖率为KPI会有多郁闷。事实是,很多技术负责人并未意识到,一位架构师拍脑袋炫技般引入一门史上最强悍最优美编程语言,便会令企业SDL成本指数级上升,后果有可能十分严重。CVE编号补丁官方发布后,在内部排除万难终于打上,马上又被发现绕过方法,又拿个CVE,这种反复多次的情形在今天太常见了。N-day反复中招亦不稀奇。万一补丁没跟上,我们是不是有其它安全控制可以同样达到resilience目标呢?如何验证呢?

新安全模型框架的引入,也使得resilience的有效性检验受到更多挑战。身份是新边界,但Zero Trust这个名词实在是起得不好,安全部门在公司里宣扬零信任,很容易被误解,其它业务线员工跳起来说你居然不信任同事,那合作精神便无从谈起,难免会造成对立情绪。此外,攻击者会compromise边界,换了身份明显也会被攻陷,银弹肯定是不存在的。我们感觉引入新的身份认证体系对企业安全等级会是个提高,但实际情况究竟是不是这样呢?如何验证呢?

我们也注意到,早期激进的Zero Trust技术框架已经吸取惨痛教训,逐渐采纳经过长时间验证的传统安全理念。新的厂商方案已经抛弃开始时不切实际的扁平化网络业务连接设计,重新强调网络和业务的分层与隔离;在无奈承认各种预装证书和设备指纹等也会被恶意利用,不同操作系统平台的专属agent管理复杂且存在漏洞等等不如意之后,知名国外互联网大厂也使用额外的独立物理硬件作为身份识别信任因素。这是不是意味着,此大厂前四五年投入巨大的实践,并没有达到预期改善,甚至安全水平与之前相差无几?如何避免这种情形发生?如何快速验证新方案的有效性呢?

我们可以继续上面的话题很长时间:内网隔离、数据防盗、特权账户、边界保护等等诸多安全控制,都存在是否切实有效的问题。即使企业已经投入大量资源,当面对复杂多变的内外部攻击时,恐怕大部分安全团队仍会感觉惴惴不安,显然业界亟需验证安全控制有效性的方法。

安全控制有效性的检验

很自然地,从业者首先想到的是,检测每个系统的脆弱性,如果都没有漏洞,当然入侵者无从下手。于是有了漏扫和源代码审计这些检验产品。但攻击者往往能别出心裁找到防御者的疏漏,各种各样新漏洞又不是漏扫可以有效及时发现并预防的:漏洞根本是补不完的,无奈受限于软件开发人员的能力;而某些漏洞修补的成本又难以承担。更进一步,很多攻击手段并不需要漏洞便可发起。上面Cyber Resilience设计原则中,诸如缩减攻击面、控制和排除特定行为、分层隔离网络等等元素,正是应对之策:在多个防护层次上使用互相独立的不同防护手段以配合联动阻止攻击。

在现代安全架构体系下,关键资产会被置于重重保护下,攻击者往往需要完成整个Kill Chain的多个环节步骤才能成功实施数据盗取,某些脆弱性是很难被恶意利用的。同时,在一些安全团队并无太多关注的地方,出现了疏于防范的失误,给入侵者可乘之机,导致巨大损失。企业安全风险,并不等于企业内所有单个系统的漏洞数量的简单加总,而是表现为与“达成Kill Chain最终目标的可能路径的数量”正相关。笔者感觉此条理论是可以证明的。而什么是有效的安全控制呢?阻断或扰乱Kill Chain的步骤,使攻击者无法达成最终目标。以此作为理论基础,读者便能更好地理解诸如缩减攻击面、网络分层与隔离等达成Cyber Resilience的设计原则。因此,我们需要能体现上述逻辑以准确评估风险的方法。

于是,红队测试应运而生,重要性不容低估。红队的使命就是寻找能达成最终盗取数据目标的入侵路径。内外部安全专家组效仿攻击者,试图通过对企业重复发动复杂攻击,来测试安全控制状态的各个方面。红队站在传统网络防御的对立面,无需考虑防御系统设计的最佳实践;只要能成功完成一定数量的攻击链步骤,则可以说明对应的安全控制失效;并让优化改善工作有据可依。

红队方式超越了传统的渗透测试,后者侧重于识别和利用漏洞。相比之下,红队随时评估安全控制的有效性,作为一个真正的对手尝试各种渗透移动行为,衡量企业网络系统是否安全。实质上是在分析攻击者突破边界后,安全控制是否能互为补充且扰乱攻击者步骤,从而实现resilience。

尽管红队方式拥有诸多好处,但有许多障碍阻止其大规模复制推广,常见限制包括成本、时间、和人员等因素。合格的红队成员的市场供给有限,快速培训出来的脚本小子难以胜任;此外,道德约束和职业精神也令企业顾虑重重。抛开后勤挑战不提,持续技术培训也需要海量资源投入:红队成员的能力水平将决定他们能够针对网络执行哪些攻击和战术。如果缺乏良好训练,可想而知,能发现的问题必然有巨大局限性,而带来的好处也将微乎其微。此外,红队评估的覆盖面有很大不确定性,每次都依赖于参与人员的兴趣偏好、习惯手法、和首先发现的入侵路径等,是否熟悉企业网络环境都会造成明显差异,会导致出现很多未加评估的盲区。无论如何,即使存在很多困难,业内普遍赞同,红队方式能较好地评估安全控制的整体有效性,揭示潜在风险。

自然而然地,为了克服上述困难,人们希望红队的工作能够由不知疲倦且复现性极强的机器来承担。

三年前当笔者团队开始尝试使用机器学习检测高级威胁手法时,曾四处寻找自动化攻击测试脚本,以模拟各种复杂多变的入侵行为特征。那时便有了上述思考的雏形。其后跟朋友们讨论安全创业时,也多次建议过考虑模拟攻击产品方向。2016年8月,当ProjectSauron作为一个前所未有的高端攻击平台被披露出后,笔者再次向圈内人士推荐了攻击模拟平台的概念。行文至此,下一座圣杯已经呼之欲出。

下一座圣杯:威胁模拟

今天,模仿红队行为并青出于蓝而胜于蓝的智能自动化威胁模拟产品,其市场需求逐渐清晰明显。它是衡量企业整体安全风险不可或缺的辅助工具,可在POC阶段全面评估安全产品的作用,能作为知己知彼并预测风险的态势感知方案中的重要组成部分,亦能帮助安全团队通过演习提升弹性恢复能力。

勤于演练,是做好应急响应的必需条件,是通往resilience的必经之路。有资源的安全团队,应将定期模拟攻击任务作为风险评估和运营改进的基础组成部分,加入至内部安全程序中。无论针对内部威胁或外部威胁,提升企业整体安全水平的一条快速路径,便是持续对抗。在演练中不断寻找自身的弱点,理解攻击者的意图和手法,夯实安全控制的落地,提升自身团队能力水平,才能全面有效降低风险。

威胁模拟与漏洞扫描区别甚大。前者强调动态尝试多种入侵手法以达成Kill Chain目标,而后者着眼于单一系统的静态脆弱性。很多威胁技战术无需漏洞即可执行,显然威胁模拟能测试安全控制的范围远大于漏扫。但威胁模拟也可借助漏洞扫描的能力,提供更深入全面的测试。

渗透测试往往是从单个出发点开始,受限于渗透人员数量以及环境设置。而威胁模拟可以同时在数百上千个出发点开始,并无规模限制,只需部署端点agent或虚拟机镜像。渗透测试开始后,管理团队便很难施加细节控制,主要依赖渗透人员的职业技能水平和道德操守。而威胁模拟可以全程接受集中控制,例如避让敏感区域、紧急中止、路径变更等等。

接下来我们一起讨论能发挥出威胁模拟产品优势的必备功能。

威胁模拟的必要属性

即使应用了最先进的人工智能技术,机器模拟攻击也不可能有顶尖高手般的创造性,因此,无法要求其模拟最高水平的入侵,但是我们却可以期待超出平均水准红队所具备的能力。下述五条是可以最大化攻击模拟价值的重点。

  • 无损

无损检测NDT(Non-Destructive Testing)已经被广泛应用各个工业领域,在不损害或不影响被检测对象使用性能的前提下,全面检测每个关键部件的安全性。毫无疑问,威胁模拟产品在执行攻击链技战术的同时,不能对企业信息系统造成损坏,不能出现敏感数据外泄事件,不能影响用户账号状态,不能导致业务和网络的中断,可以随时被停止。

  • 自动化

效率应是安全团队追求的第一目标。人员短缺亦是全行业的痛点。威胁模拟平台应具备无需人工干预自动实现攻击尝试的能力,无论是人工预置playbook或者脚本,还是AI发现薄弱路径,自动化程度是评估此产品的重要因素。一键部署,预置TTP库,亦可引入威胁情报,定时或实时开启任务,展现进度状态,并汇总结论并生成报告。

  • 持续

企业网络基础设施、业务、应用、数据、和人员的变化随时发生,安全控制的有效性检验也应该定期进行。威胁模拟产品应拥有任务管理系统,按照每个企业的需求随时在线,持续发现风险。每个组织都面对着快速演变和创新的恶意对手,不断寻找和利用全新的攻击策略和技术;为了提供相关并可行动的、有意义有价值的测试结果,威胁模拟产品的技战术配置应能得到持续更新,紧跟威胁态势的发展变化。

  • 智能

数字化飞速前进,企业信息环境变化时有发生。威胁模拟平台应具有一定的智能属性,发现新的基础设施和网络连接,并自行规划攻击策略和计划,或是在一条路径失败后发起备选尝试,无论是应用最新的AI技术还是专家系统。只有这样才可以尽可能多地发现潜在薄弱入侵路径和风险。

  • 全覆盖

威胁模拟产品应能全面覆盖安全团队关心的领域和区域。内置TTP应对标ATT&CK模型。为了能更好更完整地评估安全控制的有效性,测试点应广泛分布于企业各处,避免出现盲区。一般来讲,每个独立的测试发起点,可以是端点agent或服务器镜像,具有部署简易的特点。集中管理可以在云端或私有化数据中心。跨操作系统平台支持也很重要。

富有竞争力的威胁模拟产品的研发存在很多困难,正如红队时刻面临许多巨大挑战一样。在甲方实践中,设计一个红队测试的作用域非常具有挑战性,需要解决很多问题,例如测试方向(业务系统或办公网,应用安全或数据安全等)、主机和网络范围、允许使用哪些技术和策略、需要达成的目标是什么(如CISO的意图和红队KPI)、如何汇总报告成果、风险控制等等。这些设计参数同样也是威胁模拟产品的输入参数,也大大增加了产品执行模拟测试的复杂性。威胁建模与此过程也密切相关,这里不多做阐述了。

最后让我们一起看看业界的尝试。

参考厂商和开源项目

SafeBreach

AttackIQ

Cymulate

CALDERA

MITRE的研究项目,开源的智能自动化对抗仿真系统,可用于测试端点安全解决方案,使端点不受ATT&CK模型所包含常见入侵技术的影响。CALDERA利用ATT&CK来规划和重现攻击行为,就好像真正的入侵正在发生一样。其使用变量行为的功能特性,允许在一组系统上动态操作,更好地模拟人类攻击者如何执行操作,而不是遵循规定的动作序列。CALDERA只能用于Windows域环境。

CALDERA架构示意图

Metta

Uber的开源对抗模拟工具,由多个内部项目发展组合而成。使用 Redis/Celery、python、vagrant、和VirtualBox环境,用于测试主机系统和网络安全控制。兼容支持Windows、macOS、Linux端点。


删去部分内容后,篇幅仍有点过长,希望阅读不会太疲劳。笔者期盼业内有更多资源投入此创新领域,也许会有更多创业公司关注威胁模拟产品。当然,横亘在创业团队和成功之间的壁垒,往往不是创新想法,而是工程资源匮乏和管理能力不足,如果能过好产品关,相信会在市场上大有可为。

声明:本文来自DJ的札记,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。