C2是什么?是IP地址、域名、URL?是命令与控制、beacon?
C2作为名词来讲,是指APT组织掌握的基础设施,也就是IP、域名、URL。如果基础设施的角度出发,来看其动词含义,实际上是指命令与控制(Command and Control)。APT组织基于广域网/公网、局域网/内网、Tor洋葱路由、卫星等基础设施针对已成功侵入的目标进行命令控制、指令下发、资源下发和数据回传等操作。
在攻击方进行命令与控制的过程中,基于OODA循环(观察、定位、决策、行动)展开网空杀伤链(侦查、定制、投放、利用、安装、控制、行动),C2属于其中的控制阶段。在此过程中,攻击方需要隐藏自身的攻击行为、信道,即使被发现也很难定位到真实的C2基础设施,甚至即便定位到了真实的C2基础设施,也无法溯源到攻击方真实的身份背景。因此,攻击方为了达成效果,基于不同维度的基础设施使用了诸多技术手段,可参见《ATT&CK威胁框架》中的命令与控制阶段。但由于ATT&CK威胁框架中的技术点属于简单的罗列,并不有助于体系化的分析,故而提供以下C2分析框架,依次分为:Payload、信道、协议、报文、基础设施、C2节点六个部分。
图1 命令与控制技战术遍历与体系化分析
我们将从上图中的基础设施广域网/公网、局域网/内网、Tor洋葱路由、卫星展开,了解C2的多样风格。
2021年12月30日安天发布《Kimsuky组织针对韩国新闻行业的钓鱼活动分析》的报告中提到,攻击者首先通过BBS漏洞入侵了网站,然后上传Webshell及其他攻击活动中所需要的组件到web服务器,web服务器作为跳板机,实现发送邮件、接收受害者信息、提供恶意载荷下载等功能。最后攻击者构造钓鱼邮件投递到目标机诱导用户执行,攻击者可通过Webshell获取收集到的受害者信息。该工具可能为Kimsuky组织自研的Webshell工具,能够获取网站服务器的操作系统版本、操作系统名、主机名、CPU型号、IP地址等信息,同时其具备目录选择及文件的下载、重命名、删除、查看、上传等功能。对Webshell分析发现其采用的是嵌套的gzinflate和base64_decode作为加密手段。
攻击者利用入侵的网站或者服务器作为C2,无法直接将此C2判定为恶意,且C2的有效时间不固定,C2的状态是变化的,需要持续的观察,因此其无法直接作为IoC的检测指标。
“DDR”(Dead Drop Resolvers),原指一种间谍活动策略,指的是使用秘密位置在两方之间传递物品或信息,双方在未见面的情况下进行信息传递,并且隐藏了所有交流的迹象。该技术可对应威胁框架中的技术点“T1102.001 C2信息传递点”。
越来越多APT组织利用合法Web服务即DDR作为C2的策略,这是因为其方便创建、测试环境更为容易,且报文是加密的,无法直接封禁,给安全产品带来检测难度。
海莲花自2020年开始使用IoT设备用作流量转发,以隐藏真实的C2地址。但是依然可以通过设备取证来获取其真实的C2节点。
2017年11月9日,维基解密(WikiLeaks)公开了Hive的源代码和开发日志,Hive是CIA用于控制其恶意软件基础设施的主要组件,通过可选身份验证的方式来隐藏C2节点。
APT组织将入侵服务器作为内部的C2基础设施,通过常见的P2P协议在内网进行横向移动。索伦之眼(Strider)在域控制器上,通过注册了Windows LSA(本地安全认证)密码过滤器建立持久机制,同时使用具有本地网络和互联网访问权限的本地服务器包括代理服务器、Web服务器、软件更新服务器(存在供应链威胁)作为内部代理节点。
作为内网代理的另一个案例:在2021年SolarWinds供应链攻击事件中,背后的APT组织使用基于Cobalt Strike的SMB管道(\\.\pipe\protected_storage[REDACTED]).作为内网C2。
在隔离网络情况下,使用可移动设备作为C2。
APT29组织使用域名前置隐蔽通道,使用Tor洋葱路由隐藏C2节点。
图拉(Turla)组织利用的卫星网络大多位于中东和非洲的国家。因为卫星通信的覆盖范围非常广,所以很难追踪到威胁操作者的具体位置。图拉(Turla)组织或是通过BGP劫持卫星通讯协议作为C2信道。
2019年6月,在图拉(Turla)组织对中东的一个目标进行攻击时,劫持了伊朗APT34间谍组织的网络基础设施,并用它作为恶意软件的下载服务器,来将恶意软件植入受害者的网络中。
结合以上案例,将高级威胁活动中C2的多样风格进行抽象化的总结:
表1 高级威胁活动中C2的多样风格进行抽象
案例 | C2特点 | 如何发现 |
案例一:入侵网站作为C2 | 使用代理,隐藏真实C2 | 流量侧、情报侧钓鱼分析猎杀发现 |
案例二:利用DDR信息传递点作为C2 | 使用合法Web服务,规避检测 | 流量侧载荷Payload文件检测发现 |
案例三:利用入侵的IoT网络设备作为C2 | 使用非应用层协议,利用IoT设备作为流量代理转发 | 流量侧、情报侧设备取证发现 |
案例四:自建C2基础设施控制 | 使用加密信道、使用隐写术、使用多跳代理 | 情报侧发现 |
案例五:入侵内网服务器、或使用可移动设备作为C2 | 利用入侵内网服务器作为代理,使用可移动介质带入带出 | 终端侧、流量侧内网横向移动发现 |
案例六:通过域前置,通过Tor隐藏C2节点 | 使用域名前置隐藏信道,使用Tor洋葱路由隐藏C2节点 | 终端侧、流量侧后门载荷发现 |
案例七:利用卫星通信作为C2 | 利用卫星原有信道通信 | 情报侧发现后门中的IP属于卫星范围 |
案例八:入侵其他组织C2作为C2 | 将其他APT组织的C2基础设施据为己有 | 流量侧、情报侧对比分析C2分发的载荷发现 |
从威胁框架整体来看,已不单单是C2命令与控制单一维度的问题,ATT&CK总计330项,安天终端侧智甲目前已覆盖168项,覆盖度可达51%,可防御/可拦截75项、可检测/可记录93项,可对每一个技术点均输出了对应的标签。
图2基于端点侧部署的安天智甲终端防御系统的检测和拦截点
由于绝大多数的ATT&CK威胁框架在流量上没有呈现形式,在流量侧,安天探海威胁检测在具备检测条件的点上做了深入挖掘。其中包括:针对200多种协议,特别是多种加密协议的识别和元数据提取。支持各类具备文件传输能力的协议中的文件提取和剥离检测、深度分析(支持检测的协议包括文档、可执行程序、脚本、压缩包、文本、图片、多媒体、软件数据等),能识别370多种文件格式。所剥离的载荷文件,可对其进行深度分析。基于对载荷文件的检测,可以大幅度的提升ATT&CK威胁框架的覆盖度。
图3 基于流量侧部署的安天探海威胁监测系统的可输出的攻击动作标签
首先可以在终端侧进行定位,随之在流量侧观察,最后在情报侧进行猎杀。最终依靠在情报上整体的对命令与控制进行决策与研判,形成观察、定位、决策、行动环节上的闭环。虽然C2的有效时间不固定,但可以判定其“非黑即白”,C2的状态也是变化的,需要持续的跟进观察,基于体系化的分析方法,可以针对高级威胁中的C2多样化的情况进行抽象,然后针对目标进行猎杀与捕获。