网络杀伤链是由洛克希德·马丁公司在十多年前提出的。其基本思想是,攻击者进行侦察以发现漏洞,开发漏洞利用程序进入系统,安装恶意软件连接到控制服务器(C2),横向移动找到目标并盗取数据。防御者则根据这些步骤设置检测和防护机制以阻止攻击。
但这个框架并不完善,从设计出来的时候,就不适用于许多种攻击方法。例如一些直接的攻击,像非法访问公开的数据库、DDoS攻击,或是一些几乎看不到或根本看不到攻击者在做什么的第三方攻击。到了现在,纵深防御和零信任时代,这个框架更是变得无关紧要。
杀伤链正在失去价值
主要是因为许多攻击类型会跳过这七个上步骤中的某些环节。例如,勒索软件攻击包括恶意软件安装和横向移动,但除非攻击者进行二次勒索,否则可以跳过拖走数据的步骤。
再比如,一个不安全的API可以允许攻击者将其所访问的所有数据虹吸出来,API正在为一种常用的攻击载体,因为可以直接打穿系统,那些针对边界和区域的层层防护如同虚设。
最后,攻击者也可以利用金钱跳过杀伤链的环节。例如,他们可以在黑市上购买被盗的凭证,并使用这些凭证访问公司基础设施。典型的,利用一些从暗网上买来的云端或K8s的凭证,悄悄地用受害者的计算资源挖矿。
最常见的一步到位攻击,从不安全或安全性差的AWS存储桶中窃取数据。今年1月,Bonobos男装店的整个客户数据库,约70GB的个人信息被泄露。该公司在云中存储了一个备份文件,但没有正确的保护措施。这些数据可以通过互联网直接访问,黑客无需杀伤链的大部分步骤,如武器化、交付、安装或指挥与控制。
去年秋天Emetic专门针对AWS存储桶的一份调查显示,研究人员抽样调查的AWS环境中有70%以上的机器暴露在互联网上,并有被入侵并执行勒索软件的风险。事实上,网络犯罪分子不断演变的商业模式是杀伤链逐渐失去防御价值的一个重要原因。也就是说,不同的攻击者专注于自己的专业领域,然后将结果出售给他人,不再是由多个链接步骤组成的单一攻击。
供应链攻击颠覆杀伤链
针对第三方合作伙伴的攻击令杀伤链毫无意义,通过入侵第三方以获得进入目标企业的权限,典型的如2013年Target事件,是因为其空气调节系统供应商被入侵。更近一些的供应链安全事件,如SolarWinds。
入侵可以完全发生在第三方环境。例如,第三方服务提供商可以访问财务数据、人事记录、敏感IP或客户信息。如果对第三方没有可见性,就会造成很大的安全盲点。
随着API、云应用和系统整合的趋势,针对第三方的攻击已成常态。从业务方面来看,能够跨企业边界将数据和服务连接在一起,无疑会有很大的益处。但同时,安全问题往往被忽略。
攻击者是图形思考而不是链路思考
标准的网络杀伤链会让人误解,即认为攻击者在入侵目标时会遵循一组特定的步骤。但这与事实相差甚远,攻击者是没有固定规则的。相反,攻击者会尝试任何有效的方法。成功的网络攻击与其说是从侦察到目标的一条直线,不如说更像一棵树,或者像一张图形,有节点和边。边是攻击者从一个节点到另一个节点的路径,但边有多条,并非一条单一的链路。
超越杀伤链的ATT&CK
明显可以看出杀伤链不足之处的一个方法是,与MITRE ATT&CK框架做比较。ATT&CK非常详细,包括攻击者可能采取的200多个不同类型的TTP(战术、技术与步骤)。它囊括了攻击者所使用的方法,堪称攻击活动的百科全书。尤其是许多基于杀伤链的思路很难发现的攻击方法,如上文中所讲的S3存储桶攻击、拒绝服务攻击和供应链攻击。
真实的情况是,有多种杀伤链(攻击路径),而不是只有一条。而且,ATT&CK也不是完美的,攻击者总是会想出新的攻击方法。但是有一点,至少目前许多入侵成功的事件,都是由于未能针对ATT&CK框架中现有的TTP进行保护。换句话说,如果我们对MITRE框架中所有的内容都做出了相应防护,那么即使是在使用零日漏洞的情况下,也很难造成巨大的损失。
结合了杀伤链和ATT&CK特点的“统一杀伤链”会加更有效。首先,它比传统杀伤链更加深入、细化,再者还具备了关注攻击者行动顺序的特性。最后,它会不断更新和修订,包括缓解和检测,以紧密跟上不断变化的威胁。
零信任应对新型攻击
在适应新的攻击方法时,零信任是一个不错的理念。“持续验证,永远怀疑”是当下网络安全领域的流行语。似乎只要不信任,就能解决一切问题。但从目前的落地情况来看,理论不错,实践很难。尽管如此,至少零信任理念有助于企业摆脱杀伤链背后的边界或说城堡防御的传统方法。
众所周知,边界防御的弱点在于,突破即自由。用一个形象的比喻来说,就是外面是坚硬厚实的盔甲,里面是柔软脆弱的身体。
零信任则不然。每个应用程序、每个数据节点都拥有自己的“盔甲”。从而让攻击者无法获得立足点,进而不能实施横向移动,并进入信息系统的核心。
杀伤链依然还有价值
虽然杀伤链已经不适用于当今的攻击环境,但也依然有着一定的价值,比如在进行威胁建模时就非常有用。
仍然用上文中的S3存储桶举例。从攻击者的角度来思考,如何发现存储桶中的敏感数据,又将如何实施入侵,并最终获取数据?这就是威胁建模,了解风险在哪里,潜在的脆弱在哪里,攻击者又如何实施每一步,这就是威胁建模。然后采取相应的安全措施,确保攻击者不能顺利的完成这些步骤,而杀伤链模型则有助于完成这一过程。
现在的许多攻击方法,尤其是第三方攻击,杀伤链的确已不适用。但攻击者仍然需要建立C2,横向移动和拖走数据,杀伤链仍然是分析这些威胁的有效框架。安全团队需要扩展他们的传统模型,如将供应商或源代码被入侵的模型包括在内。