关键要点
- Elastic 用户受到保护,免受针对 3CX 用户的供应链攻击
- Elastic 安全实验室和其他研究团队正在积极研究执行流程的运作方式
- 无论您使用哪种反恶意软件技术,都不应将 3CX 的 shellcode 和进程注入警报添加到例外列表中
前言
On March 29, 2023, CrowdStrike reported a potential supply-chain compromise affecting 3CX VOIP softphone users as detailed in a Reddit post. Elastic Security Labs continues to monitor telemetry for evidence of threat activity and will provide updates as more evidence becomes available. The earliest period of potentially malicious activity is currently understood to be on or around March 22, 2023 as reported by Todyl.
3CX 表示,超过 600,000 家公司和超过 12,000,000 名用户都在使用它,因此 Elastic Security Labs 发布了分类分析,以协助 3CX 客户对 SUDDENICON 进行初步检测,后续恶意软件和入侵分析将在稍后发布。
在此信息更新中,Elastic 安全实验室提供了以下内容:- 与恶意软件活动相关的潜在恶意域- 可能受到影响的 3CX Windows 和 MacOS 客户端的文件哈希- 可能与此活动相关的 Elastic 查询和预建保护- 用于识别 SUDDENICON 恶意软件的 YARA 规则
SUDDENICON 分类分析
3CXDesktopApp安装程序 MSI似乎包含恶意代码,它会在安装后等待七天,然后从GitHub下载其他文件并与恶意命令和控制域进行通信。 客户端应用程序将ffmpeg.dll
和d3dcompiler\_47.dll
写入磁盘,后者包含我们称为 SUDDENICON 的有效负载。 我们抽样的两个库似乎都被植入了后门。 需要注意的是, ffmpeg.dll
和d3dcompiler\_47.dll
都是合法文件名,不应单独针对它们创建规则。
ffmpeg.dll
二进制文件通过查找 FEEDFACE 字节序列并使用静态 RC4 密钥 ( 3jB(2bsG#@c7
) 解密,从d3dcompiler\_47.dll
中提取 SUDDENICON。 然后将生成的有效载荷作为第二阶段有效载荷加载到内存中。 用于将有效载荷映射到内存中的有效载荷前面的 shellcode 存根与与 DPRK 相关联的APPLEJEUS 加载程序存根有相似之处。 成功执行后,此 shellcode 存根会将一个新文件 ( manifest
) 写入磁盘,其时间戳为未来 7 天,用于实现一个计时器,恶意软件在此计时器之后会连接到 C2 基础设施。
通过下载并针对IconStorages Github 存储库(该存储库已被 Github 删除)中附加的图标文件的尾随字节进行 base64 解码,可以检索 C2 域。 该 repo 由 GitHub ID 120072117
于 2022 年 12 月 8 日创建,最近于 2023 年 3 月 16 日更新。 在首次连接到活动的 C2 服务器后,恶意软件会执行包含机器标识符的 POST。 然后它下载并解密一个新的可执行文件。
对新可执行文件的初步分析显示它似乎是一个信息窃取程序。 分析完成后我们将发布更新。
3CX 的首席执行官建议卸载该软件;少数社区论坛帖子概述了安全工具如何应对潜在的恶意软件行为, CrowdStrike和SentinelOne也发布了初步信息。 该威胁很可能能够通过更新渠道引入对手创建的恶意软件,从而覆盖 3CXDesktopApp 的原本良性的组件。 用户也可能会意外地自我感染。
检测逻辑
预防
- 内存威胁检测警报:Shellcode 注入
- Windows.Trojan.SuddenIcon
猎捕查询
使用 Elastic Defend 集成,Elastic Agent 可提供 KQL 和 EQL 的事件。 狩猎查询可能会返回高信号或误报。 这些查询用于识别潜在的可疑行为,但需要进行调查来验证调查结果。
KQL 查询
以下 KQL 查询可用于识别执行 raw.githubusercontent.com 名称解析的 3CX 签名软件, 与此威胁相关的恶意应用程序已经存在:
process.name : "3CXDesktopApp.exe" and dns.question.name : "raw.githubusercontent.com"
以下 KQL 查询可用于识别此活动的几个基于主机的指标:
dll.hash.sha256 : "7986bbaee8940da11ce089383521ab420c443ab7b15ed42aed91fd31ce833896" or dll.hash.sha256 : "c485674ee63ec8d4e8fde9800788175a8b02d3f9416d0e763360fff7f8eb4e02"
EQL 查询
使用 Kibana 中安全解决方案的时间线部分“关联”选项卡下,您可以使用以下 EQL 查询来寻找类似的行为。
以下 EQL 查询可用于分析 3CX 软件和子软件:
any where process.code_signature.subject_name == "3CX Ltd" or process.parent.code_signature.subject_name == "3CX Ltd"
以下 EQL 查询可用于识别执行 raw.githubusercontent.com 名称解析的 3CX 签名软件, 与此威胁相关的恶意应用程序已经存在:
network where process.code_signature.subject_name == "3CX Ltd" and dns.question.name == “raw.githubusercontent.com”
以下 EQL 查询可用于识别 3CXDesktopApp 客户端写入的文件:
file where event.type == "creation" and (host.os.type == "windows" and file.path : "*:\\Users\\*\\AppData\\Local\\Programs\\C3XDesktopApp\\app\\*" and file.name : ("manifest")) or (host.os.type == "macos" and file.path : "*/Library/Application Support/3CX Desktop App/" and file.name : ("UpdateAgent", ".main_storage", ".session-lock")
以下 EQL 查询可用于识别此活动的几个基于主机的指标:
sequence by host.name, process.entity_id[process where process.code_signature.subject_name:"3CX Ltd"][library where dll.hash.sha256:"c485674ee63ec8d4e8fde9800788175a8b02d3f9416d0e763360fff7f8eb4e02","7986bbaee8940da11ce089383521ab420c443ab7b15ed42aed91fd31ce833896"][network where dns.question.name:"raw.githubusercontent.com"]
如果 DLL 已更新,则可以使用以下 EQL 查询来识别此活动:
library where process.code_signature.subject_name : "3CX Ltd" and not dll.code_signature.trusted == true and not startswith~(dll.name, process.name) and /* DLL loaded from the process.executable directory */ endswith~(substring(dll.path, 0, length(dll.path) - (length(dll.name) + 1)), substring(process.executable, 0, length(process.executable) - (length(process.name) + 1)))
雅拉
Elastic Security Labs 已针对恶意 shellcode 发布了两个 YARA 签名,我们将其称为 SUDDENICON。
防御建议
在预防模式下启用了 shellcode 保护的 Elastic Endgame 和 Elastic Endpoint 客户阻止了 SUDDENICON 的执行,但可能需要删除任何受损的客户端软件。 由于 shellcode 检索和注入延迟,3CXDesktopApp 用户可能要等到睡眠间隔过去(大约 7 天)才能看到警报。 在仅检测模式下使用 shellcode 保护的客户应启用预防措施以减轻感染风险。 不要为这些警报创建例外。
参考资料
The following were referenced throughout the above research: - https://www.reddit.com/r/crowdstrike/comments/125r3uu/20230329_situational_awareness_crowdstrike/ - https://www.sentinelone.com/blog/smoothoperator-ongoing-campaign-trojanizes-3cx-software-in-software-supply-chain-attack/ - https://www.todyl.com/blog/post/threat-advisory-3cx-softphone-telephony-campaign
指标
潜在恶意域名
粗体区域表示它们在我们的分析中被观察到。
- akamaicontainer[.]com
- akamaitechcloudservices[.]com
azuredeploystore[.]com
- azureonlinecloud[.]com
- azureonlinestorage[.]com
- dunamistrd[.]com
- glcloudservice[.]com
- journalide[.]org
msedgepackageinfo[.]com
- msstorageazure[.]com
msstorageboxes[.]com
officeaddons[.]com
officestoragebox[.]com
- pbxcloudeservices[.]com
- pbxphonenetwork[.]com
- pbxsources[.]com
- qwepoi123098[.]com
- sbmsa[.]wiki
sourceslabs[.]com
visualstudiofactory[.]com
zacharryblogs[.]com
可能受影响的 3CXDesktopApp 版本和哈希值:
客户端哈希: dde03348075512796241389dfea5560c20a3d2a2eac95c894e7bbed5e85a0acc
操作系统:Windows 安装程序哈希: aa124a4b4df12b34e74ee7f6c683b2ebec4ce9a8edcf9be345823b4fdcf5d868
安装程序文件名: 3cxdesktopapp-18.12.407.msi
客户端哈希: fad482ded2e25ce9e1dd3d3ecc3227af714bdfbbde04347dbc1b21d6a3670405
操作系统:Windows 安装程序哈希: 59e1edf4d82fae4978e97512b0331b7eb21dd4b838b850ba46794d9c7a2c0983
安装程序文件名: 3cxdesktopapp-18.12.416.msi
客户端哈希: 92005051ae314d61074ed94a52e76b1c3e21e7f0e8c1d1fdd497a006ce45fa61
操作系统:macOS 安装程序哈希: 5407cda7d3a75e7b1e030b1f33337a56f293578ffa8b3ae19c671051ed314290
安装程序文件名: 3CXDesktopApp-18.11.1213.dmg
客户端哈希: b86c695822013483fa4e2dfdf712c5ee777d7b99cbad8c2fa2274b133481eadb
操作系统:macOS 安装程序哈希: e6bbc33815b9f20b0cf832d7401dd893fbc467c800728b5891336706da0dbcec
安装程序文件名: 3cxdesktopapp-latest.dmg