“网络杀链(Cyber Kill Chain)”的B面
楔子:录音机里飘荡着悠扬的“黑水域的幻想”,突然传来轻微的沙沙声,随着“咔嗒”一声,该换B面了。
网络安全,是一场永不终止的网络战争,为了在这场战争中牺牲最小,我们始终要抱着知己知彼的态度去战斗,威胁情报为我们做到知彼提供了有效的工具,让我们可以更好的看到威胁的A面。那么,面对成熟的威胁方法,我们还需要知道些什么?那就是威胁的B面:主动防护!
网络上最为流行的攻击方法论就是“网络杀链”了,今天就让我们一起去看看“网络杀链”的B面。
- “网络杀链”简介
互联网以及很多书籍上介绍“网络杀链”的文章已经很多了,我们在此不多做赘述,仅简单的回顾一下“网络杀链”模型。“网络杀链”是由洛克希德.马丁研所发的威胁情报的驱动防御模型,用于指导识别攻击者为了达到入侵网络的目的所需完成的活动。活动链条见下图:
图片来源:https://en.wikipedia.org/wiki/Kill_chain#/media/File:Intrusion_Kill_Chain_-_v2.png
“网络杀链”杀链模型包括7个步骤,包括:侦察、武器化、交付、利用、安装、命令和控制、针对目标物的活动。只有当攻击者完成了第7步工作,前面的6步才真正产生意义。在第1-6步的任何时刻进行成功拦截,都能够实现对目标物的保护。
既然我们期望通过威胁情报来提升防护能力,那么针对攻击者在1-6步的活动进行分析,也能够帮助我们识别对手,从而制定信息安全的战略,以及威胁情报应用的战略(关于威胁情报战略,可参见威胁情报金字塔模型)。
- “网络杀链”的7个阶段
接下来,让我们识别一下在这7个阶段中,攻击者实施的行为。
阶段一、侦察(RECONNAISSANCE):在侦察阶段攻击者的工作是识别目标对象。侦察可以是静默状态的,也可以是是主动状态的。在此阶段,攻击者会选择攻击目标,并制定攻击计划,同时将尝试尽可能收集被攻击者的相关信息,侦察阶段的活动示例有:收集被攻击者的邮箱地址、查看与被攻击者相关的主页(例如:企业网站、社交网站等)、通过公开的媒体收集信息(例如:报纸、电视新闻等)。
阶段二、武器化(WEAPONIZATION): 在武器化阶段攻击者将进行攻击前的准备工作,针对攻击目标的系统和防护措施,选择已有恶意软件和制作专用的恶意软件,现在很多的恶意软件已经可以通过自动化/半自动化的系统进行生产。由于系统的复杂性,在这一阶段,攻击者有可能与外部恶意软件生产者合作。需要注意的是,“后门”往往是武器化常用的手段。
阶段三、交付(DELIVERY):在交付阶段攻击者将完成把已经生产好的恶意软件投放到目标网络中的活动。常用的攻击手法包括“钓鱼”、“水坑“等。
阶段四、利用(EXPLOITATION):在利用阶段攻击者通过网络的弱点以及被攻击者的安全意识不足,实现对被攻击者的访问。
阶段五、安装(INSTALLATION ):在安装阶段攻击者将安装能够避过安全软件检查或杀灭的工具,这些工具可以用于获得被攻击者的访问权限和后续攻击活动,例如:在web服务器上安装webshell、部署后门工具、部署键盘/鼠标捕获工具等。
阶段六、命令与控制(COMMAND & CONTROL (C2) ):在命令与控制阶段,攻击者已经通过对被攻击者网络植入恶意软件获得了控制被攻击者网络的能力,开启通信通道,用于控制被攻击者的网络,通常这些控制手段是隐蔽的,隐藏于最常见的web、邮件、DNS协议中。攻击者为了隐藏自己的真实身份,通常会采用跳板的方式,即级联的受害者链进行远程控制。
阶段七、针对目标物的活动(ACTIONS ON OBJECTIVES ):在本阶段,既然攻击者已经控制了受害者的网络,那么剩下来的工作就是完成其目标了,例如:破坏受害者的网络与信息、盗取业务信息、盗用受害者身份进行活动,以及提升权限进行更深度的破坏活动等。
- “网络杀链”的B面!
我们研究“网络杀链“的目的是为了更好的防守。通过研究攻击者的目的和行为,提前做好准备,虚网以待。
在前面提到只有当攻击者完成了第7步工作,前面的6步才真正产生意义,并且攻击者只有完成了从侦察到命令与控制的1-6步才能来到第7步,那么作为防护者,需要研究如何在攻击者发起第1-6步时进行执行相应的行动。
阶段一:侦察阶段
在攻击者发起侦察的阶段,防护者可以通过主动检测尝试发现攻击者的“侦察“行为,然而我们通常不知道攻击者在何时发起”侦察“行为,因为侦察可以是静默状态的,也可以是是主动状态的,因此在侦察阶段发现攻击者是相当困难的,但并非不可能。在攻击者采用静默状态时,被攻击者往往很难发现他们的对手,例如:攻击者收集被攻击者的邮箱地址;采用主动状态时,被攻击者可以从中发现攻击者的痕迹,例如:攻击者访问被攻击者的社交网络时可能会留下痕迹,从相应日志中可以获知攻击者的部分信息,如IP地址等。
防护者可以采取以下行动:
- 收集各类设备、系统日志用于分析;
- 对网络流量信息尽可能的收集,用于威胁分析;
- 采用UEBA的分析方法,发现潜在的威胁者(潜在威胁者的行为通常与正常的人群不同,包括在系统上停留的时间,访问的信息组合异常等);
- 利用威胁情报,例如:匹配访问访问源、身份等信息。
防护者通过结合威胁情报对攻击者进行分析,识别其攻击目标物以及攻击手法,可以为后续拦截活动提供更多信息,优化拦截工具以及选用相应的信息安全人员组件防护团队,提高拦截准确度和效率。
阶段二:武器化(WEAPONIZATION)
虽然防护者在攻击者发起攻击之前无法检测武器化的信息,这一阶段仍然很重要。随着威胁情报服务商的出现,防护者可以使用威胁情报跟踪恶意软件的发展,从而为选择网络安全合作伙伴提供输入,对可能出现的恶意软件进行推测,从而节约后续部署拦截工具的时间,实现高效拦截。另外,由于恶意软件的研发者的知识、习惯通常有一定的模式,对恶意软件开发者进行研究,也可以为拦截恶意软件提供信息。防护者可以采取的行动包括:
- 分析恶意软件,研究恶意软件工作原理;
- 分析恶意软件,分析恶意软件开发者行为习惯和模式;
- 分析恶意软件的时间线,推断使用者的专业能力;
- 利用威胁情报,判断APT攻击。
阶段三:交付(DELIVERY)
对于防护者而言,这是最重要的阶段,也是进行拦截的第一个阶段,这个阶段也是衡量一个企业的网络安全有效性的重要指标,即是否能够在交付阶段对攻击者进行有效拦截。在这一阶段,防护者的活动可以包括:
- 分析交付的手段,例如:钓鱼邮件、U盘等;
- 分析交付的启动时间;
- 分析被攻击的人员、设备/设施信息;
- 推断恶意软件制作者;
- 推断攻击者的目标物以及攻击者;
- 收集攻击信息,用于未来可能出现的司法阶段。
阶段四:利用(EXPLOITATION)
在利用阶段,如果攻击者采用0-day攻击,对于防护者是个挑战,但对于非0-day攻击,防护者应当注意传统的安全防护措施还是非常有效的。在此前提下,防护者能够做的是尽量利用传统的加固措施增加防护措施的弹性,通过以纵深防御思路为基础的框架,增加补偿性安全措施,对目标物进行防护。在该阶段,防护者可以采取的行动包括:
- 采用最小权限原则;
- 采用权限冲突/约束机制;
- 定期进行漏洞扫描,漏洞扫描应当注意全面性,包括全部的设备、设施和系统;
- 定期进行渗透测试,包括外部渗透测试和内部渗透测试;
- 关注开发安全和所交付的软件的安全性;
- 安全意识的培养。
阶段五:安装(INSTALLATION )
在安装阶段,防护者可以通过对终端设备的日志进行分析来发现潜在的威胁,并在此阶段分析恶意软件,以优化终端设备的保护。在该阶段,防护者可以采取的行动包括:
- 使用基于主机的IPS;
- 检测可能出现恶意软件的介质;
- 在检测到恶意软件时告警,并进行必要的拦截;
- 进行权限管理,分析恶意软件所需的最小权限;
- 对可执行文件进行签名管理;
- 分析恶意软件属性,包括版本、编译时间等;
- 使用威胁情报加强未知威胁的防护,例如:恶意软件的MD5、SHA1、SHA256等。
阶段六:命令与控制(COMMAND & CONTROL (C2) )
这是防护者进行拦截的最后一个机会,一旦让攻击者通过C2阶段,将会给企业带来直接损失。在本阶段,防护者的目的是对C2通道进行阻断,使得攻击者无法向攻击目标物的恶意软件发出相应指令,从而做到对目标物的防护。在该阶段,防护者可以实施的活动包括:
- 采用白名单/黑名单等措施加强网络访问控制;
- 分析恶意软件,从而发现C2的来源设施,并并进行反制;
- 采用代理机制进行通信,例如:http、DNS等。
阶段七:针对目标物的活动(ACTIONS ON OBJECTIVES )
攻击者对受害者的访问的时间越长, 受害者的损失就越大。受害者在这一阶段需要评估其损失,并评估使用司法手段的必要性,为司法取证采集必要的信息(例如:日志、数据流)。受害者可以采取的活动包括:
- 检测数据泄漏;
- 检测未授权使用;
- 评估企业损失;
- 采集日志;
- 检测横向移动;
- 采集网络流信息;
- 重现攻击;
- 采取司法手段;
- 优化应急响应、网络安全策略、流程、技术。
- 结语
保护企业资产需要我们清楚地了解攻击者,包括了解他们是谁,以及他们的攻击动机、战略和手法。随着信息科技的进步,攻击者也越来越强大,他们往往是资源充足、训练有素的团体,能够发起复杂的规模攻击,因此我们需要更充分的准备。
笔者认为在是使用“网络杀链”模型时,应当注意前瞻性思维和基于测量的思维。前瞻性思维即,通过对杀链各阶段的分析,防护者应在“网络杀链”的尽量早期阻止攻击,并将防护经验应用于未来;基于测量,评估防护效果,部署响应的网络安全措施,关注缓解网络攻击的能力和恢复能力两个方面。
- 寄语
“网络杀链”的B面,虚网以待。
让我们用分享的精神,为网络安全防护添砖加瓦。
补记:感谢在威胁标准首发后笔者写了一篇随笔,吕毅先生给与的积极反馈,同时提醒笔者可以写一下钻石模型,同时提到“网络杀链”,而笔者也早有就“网络杀链”模型发表些个人观点的想法,以此文对吕毅先生表示答谢。同时写在B面(BSides)沙龙在中国举行活动之前,借B面(BSides)之意。