深入解析国家级网络攻击:SolarWinds供应链入侵与SAML令牌伪造技术

本文详细分析了国家级攻击者通过SolarWinds供应链入侵的技术细节,包括恶意DLL加载、SAML令牌伪造技术、持久化访问手段及防御建议,涵盖C2通信、IOC指标和微软安全产品防护方案。

活动描述

初始访问

尽管后门代码注入方式未知,但研究显示攻击者可能入侵了SolarWinds的内部构建或分发系统,将后门代码嵌入合法库文件SolarWinds.Orion.Core.BusinessLayer.dll中。该后门通过目标网络的自动更新平台分发。微软安全研究人员目前对攻击者如何入侵这些平台的信息有限。

执行

更新SolarWinds应用时,嵌入的后门代码在合法代码前加载,使组织误以为无恶意活动发生。攻击者使用目标公司数字证书签名库文件以规避应用控制技术。微软已将相关证书从信任列表中移除。证书签名者哈希如下:

DLL从SolarWinds安装文件夹加载后,主植入程序作为Windows服务安装,并作为DLL文件存在于以下路径:

  • SolarWinds Orion安装文件夹,例如%PROGRAMFILES%\SolarWinds\Orion\SolarWinds.Orion.Core.BusinessLayer.dll
  • .NET程序集缓存文件夹(编译时)%WINDIR%\System32\config\systemprofile\AppData\Local\assembly\tmp\<VARIES>\SolarWinds.Orion.Core.BusinessLayer.dll

微软安全研究人员观察到恶意代码仅在SolarWinds.BusinessLayerHost.exe进程上下文中激活。

命令与控制(C2)

恶意DLL通过域avsvmcloud.com调用远程网络基础设施,以准备第二阶段载荷、横向移动及数据窃取。微软将主植入及其组件检测为Solorigate。

目标行动

在微软云中观察到的行动中,攻击者通过泄露特权凭据(如密码)或使用泄露的SAML令牌签名证书伪造令牌获取管理访问权限。SAML令牌签名证书泄露机制未完全明确,但常见工具被用于通过管理访问和远程执行能力访问SAML联合服务器数据库。其他案例中,服务账户凭据被授予管理权限,或管理账户通过其他机制泄露。证书通常存储在SAML联合服务器上,使具有管理权限者可从存储或内存中访问。

获取证书后,攻击者可伪造任意声明和生命周期的SAML令牌,并使用该证书签名,从而访问配置为信任该证书签名的任何资源,包括伪造代表Azure AD高权限账户的令牌。攻击者还可能通过泄露凭据获取Azure AD管理权限,尤其在账户未受多因素认证保护时。

无论通过SAML令牌或其他方式获取Azure AD访问权限,攻击者均使用管理权限进行长期访问和数据访问。

长期访问

在本地环境中建立立足点后,攻击者修改Azure Active Directory设置以促进长期访问:

  • 联合信任:攻击者向现有租户添加新联合信任或修改现有信任属性,以接受攻击者拥有证书签名的令牌。
  • OAuth应用与服务主体凭据:攻击者向合法OAuth应用或服务主体添加凭据(x509密钥或密码凭据),通常具有现有Mail.Read或Mail.ReadWrite权限,从而通过Microsoft Graph或Outlook REST从Exchange Online读取邮件内容(如邮件归档应用)。权限通常为AppOnly。攻击者可能使用管理权限向目标应用或服务主体授予额外权限。

数据访问

数据访问依赖于使用铸造的SAML令牌访问用户文件/邮件,或通过添加的凭据验证并获取访问令牌来模拟应用或服务主体。攻击者定期从VPS提供商服务器连接,使用模拟应用或服务主体的权限访问特定用户邮件(通常为IT和安全人员)。通过模拟使用Mail.Read等权限的现有应用调用相同API,访问隐藏在正常流量中。因此,若怀疑受影响,应假设攻击者可访问通信。

推荐防御措施

若组织未受攻击,微软建议采取以下行动作为整体响应的一部分(非详尽列表,可能随新缓解措施更新):

  • 运行最新防病毒或EDR产品检测受损SolarWinds库及二进制文件异常行为。考虑在确认构建无注入代码前完全禁用SolarWinds。详见SolarWinds安全公告。
  • 使用网络基础设施阻止IOCs中列出的已知C2端点。
  • 遵循身份联合技术提供商的最佳实践保护SAML令牌签名密钥。若支持,考虑对SAML令牌签名证书使用硬件安全。具体咨询提供商。对于AD FS,参阅微软建议:AD FS安全最佳实践。
  • 确保管理权限用户账户遵循最佳实践,包括使用特权访问工作站、JIT/JEA和强认证。减少高权限目录角色(如全局管理员、应用管理员、云应用管理员)成员数量。
  • 确保具有管理权限的服务账户和服务主体使用高熵密钥(如证书)并安全存储。作为安全监控程序的一部分,监控服务账户和服务主体密钥更改及异常使用。监控登录。Microsoft Azure AD和Microsoft Cloud App Security(若使用)指示会话异常。
  • 通过移除/禁用未使用或不必要的应用和服务主体减少攻击面。减少活动应用和服务主体的权限,尤其是应用(AppOnly)权限。
  • 参阅保护Azure AD身份基础设施获取更多建议。

微软产品防护与资源

  • 12月21日 - Solorigate资源中心
  • 事件响应者从系统性身份泄露中恢复的建议
  • 保护Microsoft 365免受本地攻击
  • 分析Solorigate及Microsoft Defender防护
  • Microsoft Defender阻止检测
  • 客户保护自身免受近期国家级网络攻击的重要步骤
  • Trojan:MSIL/Solorigate.BR!dha威胁描述 - Microsoft安全情报
  • Azure Sentinel泄露后狩猎
  • Microsoft365 Defender狩猎查询
  • 统一审计日志(UAL)检测与狩猎
  • 清算时刻:需要强大全球网络安全响应

若认为组织已受侵害,建议全面审计本地和云基础设施,包括配置、每用户和每应用设置、转发规则及其他攻击者为持久访问所做的更改。此外,建议全面移除用户和应用访问,审查各配置,并根据行业最佳实践重新颁发强凭据。

危害指标(IOCs)

以下列表提供此活动中观察到的IOCs。鼓励客户实施检测和防护以识别先前活动或防止未来活动。此列表非详尽,可能随调查扩展。建议查阅FireEye提供的IOCs:高度规避攻击者利用SolarWinds供应链侵害多全球受害者与SUNBURST后门 | FireEye Inc.

命令与控制

类型
avsvmcloud[.]com 命令与控制(C2)

观察到的恶意SolarWinds.Orion.Core.BusinessLayer.dll实例

SHA256 文件版本 首次出现时间
e0b9eda35f01c1540134aba9195e7e6393286dde3e001fce36fb661cc346b91d 2020.2.100.11713 2020年2月
a58d02465e26bdd3a839fd90e4b317eece431d28cab203bbdde569e11247d9e2 2020.2.100.11784 2020年3月
32519b85c0b422e4656de6e6c41878e95fd95026267daab4215ee59c107d6c77 2019.4.5200.9083 2020年3月
dab758bf98d9b36fa057a66cd0284737abf89857b73ca89280267ee7caf62f3b 2020.2.100.12219 2020年3月
eb6fab5a2964c5817fb239a7a5079cabca0a00464fb3e07155f28b0a57a2c0ed 2020.2.100.11831 2020年3月
c09040d35630d75dfef0f804f320f8b3d16a481071076918e9b236a321c1ea77 不可用 2020年3月
ffdbdd460420972fd2926a7f460c198523480bc6279dd6cca177230db18748e8 2019.4.5200.9065 2020年3月
b8a05cc492f70ffa4adcd446b693d5aa2b71dc4fa2bf5022bf60d7b13884f666 2019.4.5200.9068 2020年3月
20e35055113dac104d2bb02d4e7e33413fae0e5a426e0eea0dfd2c1dce692fd9 2019.4.5200.9078 2020年3月
0f5d7e6dfdd62c83eb096ba193b5ae394001bac036745495674156ead6557589 2019.4.5200.9078 2020年3月
cc082d21b9e880ceb6c96db1c48a0375aaf06a5f444cb0144b70e01dc69048e6 2019.4.5200.9083 2020年3月
ac1b2b89e60707a20e9eb1ca480bc3410ead40643b386d624c5d21b47c02917c 2020.4.100.478 2020年4月
019085a76ba7126fff22770d71bd901c325fc68ac55aa743327984e89f4b0134 2020.2.5200.12394 2020年4月
ce77d116a074dab7a22a0fd4f2c1ab475f16eec42e1ded3c0b0aa8211fe858d6 2020.2.5300.12432 2020年5月
2b3445e42d64c85a5475bdbc88a50ba8c013febb53ea97119a11604b7595e53d 2019.4.5200.9078 2020年5月
92bd1c3d2a11fc4aba2735d9547bd0261560fb20f36a0e7ca2f2d451f1b62690 2020.4.100.751 2020年5月
a3efbc07068606ba1c19a7ef21f4de15d15b41ef680832d7bcba485143668f2d 不可用 不可用
a25cadd48d70f6ea0c4a241d99c5241269e6faccb4054e62d16784640f8e53bc 2019.4.5200.8890 2019年10月
d3c6785e18fba3749fb785bc313cf8346182f532c59172b69adfb31b96a5d0af 2019.4.5200.8890 2019年10月

分析员评论:这些指标不应视为此活动的详尽列表。此外,除恶意DLL外,微软研究人员在2019年10月观察到两个文件在SolarWinds DLL中添加类时存在代码异常,但这两个文件无活跃恶意代码或方法。

修订历史

  • 2020-12-21:添加Solorigate资源中心链接
  • 2020-12-21:添加DART博客链接
  • 2020-12-18:更新链接包括微软产品防护与资源
  • 2020-12-17:添加Azure Sentinel博客文章链接,添加更多观察到的恶意实例
  • 2020-12-16:更新Azure Sentinel检测链接
  • 2020-12-13:发布
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计