![]()
2024年4月,韩国安全团队ASEC追踪到一组异常数据:某政府机构的终端在17分钟内被触发了3次计划任务,名称都带"GoogleUpdate"——但谷歌根本不在该机构的软件白名单里。
这不是误报。朝鲜APT组织Kimsuky正在测试一种新结构,把原本直来直去的攻击链拆成五段接力。过去他们从恶意快捷方式(LNK文件)跳到PowerShell,再直奔批处理脚本,全程暴露给行为检测。现在中间塞进了XML、VBS、PS1三道弯,每道弯都能让杀毒软件"以为是正常系统操作"。
ASEC研究员在报告中打了个比方:以前的攻击像快递员直接把包裹扔门口,现在的版本是"先放物业、再转蜂巢、最后伪装成外卖柜取件码"。
文件名的陷阱:你的简历正在偷看你的简历
Kimsuky这次用的诱饵文件名,精准踩中了东亚职场人的肌肉记忆。"Resume (Sungmin Park).hwp.lnk"——HWP是韩国政府和企业仍在广泛使用的韩文文档格式,LNK后缀被Windows默认隐藏,用户看到的只有"Resume (Sungmin Park).hwp"。
另一个文件名更狠:"Guide to Establishing Data Backup and Recovery Procedures (Reference).lnk"。这是IT管理员看了会点、普通员工看了也会点的双重诱饵,既利用了韩国2023年强化数据备份法规的合规焦虑,又披着"参考文件"的免死金牌。
用户双击后,屏幕确实弹出了一个HWP文档,内容看起来正常。但后台已经执行了一条PowerShell命令,在C盘根目录创建了名为"windirr"的隐藏文件夹——注意不是"windows",多了一个r,系统属性+隐藏属性双保险,普通浏览根本看不见。
这个文件夹里 dropped 的三件套,构成了整个攻击的骨架:sch_ha.db(XML计划任务)、11.vbs(Visual Basic脚本)、pp.ps1(PowerShell脚本)。
ASEC还原的感染链显示,XML文件注册了一个名为"GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388}"的计划任务,每17分钟执行一次。GUID是随机生成的,但"GoogleUpdateTaskMachine"这个前缀抄的是谷歌Chrome真正的更新任务名,只是多了一个下划线和随机后缀。
17分钟这个间隔也有讲究。太短容易被行为检测标记为高频异常,太长则降低控制效率。Kimsuky显然在测试一个"刚好低于多数EDR告警阈值"的数值。
五段接力:每一棒都在说"我是合法的"
把攻击链拆细不是炫技,是针对现代终端防护的精准绕过。企业级杀毒软件和安全检测工具(EDR)的核心逻辑是"行为关联"——如果A动作直接导致了B动作,且B是恶意的,就回溯标记A。
Kimsuky的新结构让这种关联断裂:
第一段LNK触发PowerShell,只干一件事:创建隐藏文件夹和释放三个文件。这看起来像是"某个软件安装包在解压临时文件",常见且无害。
第二段XML注册计划任务,调用的是系统自带的schtasks.exe,参数合法、路径合法、执行周期也合法。单独看这条日志,和真正的谷歌更新任务几乎无法区分。
第三段VBS脚本被计划任务唤醒,它的工作是读取同目录下的PS1文件并执行。VBS本身不碰网络、不读写敏感位置,只是"帮PowerShell传个话"。
第四段PS1脚本终于开始干脏活:下载Python环境安装包、配置持久化、最终投递Python后门。但此时距离用户双击那个"简历文件"可能已经过去数小时,EDR的关联窗口期早已关闭。
第五段BAT文件收尾,清理痕迹并建立反向Shell通道。到这一步,攻击者已经拿到了远程命令执行权限,可以浏览目录、上传下载文件、执行任意程序——而全程没有单一行为触发高置信度告警。
ASEC的分析师在报告中写道:「这种结构变化说明Kimsuky在持续收集对抗反馈。他们不是不知道旧方法会被检测,而是在测试"拆到多细才能躲过特定厂商的关联算法"。」
Python后门的回归:为什么不是Go、不是Rust
Kimsuky最终投递的载荷是一个Python后门,这在2024年的APT圈子里显得有些"复古"。同期活跃的Lazarus Group(同属朝鲜)已经在用Go语言重写工具链,俄罗斯APT29偏爱.NET和C++,中国APT41则大量使用Rust规避内存分析。
Python后门的优势在于"环境依赖即隐身"。韩国政府和企业终端的Python渗透率极高——数据分析、自动化运维、遗留系统维护都依赖它。一个Python进程在内存里跑起来,比陌生的二进制可执行文件显眼得多。
更重要的是,Python后门可以直接调用Windows API而无需编译,修改成本低、测试周期短。Kimsuky显然在追求"快速迭代"而非"长期潜伏":ASEC观察到同一后门在三个月内出现了四个变种,通信协议从HTTP轮询改为WebSocket,又改回HTTP加了自定义头。
这种迭代速度暗示了攻击目标的时间压力。朝鲜情报机构对韩国政府、智库、脱北者团体的情报需求具有强烈的时效性——选举周期、政策窗口、外交谈判节点都需要实时投喂。
Python后门的功能集也印证了这一点:文件操作、命令执行、进程管理,标准APT工具包,没有键盘记录、没有屏幕截图、没有凭证窃取模块。Kimsuky要的是"能进能出、快速拿文件",而非长期潜伏挖金矿。
地理围栏与目标选择:为什么还是韩国
Kimsuky的活跃时间线可以追溯到2012年,十二年来目标高度聚焦:韩国外交部、统一部、国家安全企划部(现国家情报院)、总统府下属智库、以及研究朝鲜问题的学术机构。
2023年至2024年的campaign出现了微妙变化。ASEC注意到诱饵文件的语言从纯韩文扩展到了中英双语版本,文件名也开始模仿国际组织的报告格式。但代码层面的地理围栏检查依然存在——后门启动时会验证系统时区和键盘布局,非韩国区域直接退出。
这种"全球化诱饵、本地化执行"的策略,可能是为了应对韩国机构日益严格的外网隔离。研究人员需要在家或国际会议上处理文件,个人设备的防护等级远低于办公内网,成为新的薄弱点。
另一个变化是目标行业的横向扩展。传统上Kimsuky专注外交和情报系统,但2024年的样本中出现了针对韩国加密货币交易所和区块链分析公司的诱饵。朝鲜外汇收入的压力正在重塑APT组织的任务优先级。
ASEC没有披露具体受害机构名称,但提供了感染时间分布:2024年1月至3月达到峰值,与韩国第22届国会议员选举周期高度重合。朝鲜对韩国政治动态的监控需求,直接转化为了恶意软件的分发节奏。
检测建议与防御缺口
针对这种多阶段攻击,ASEC给出了几条具体建议,但每条都暴露了现有防御体系的尴尬。
第一条是"监控计划任务注册事件,特别是伪装成合法软件更新的任务"。问题在于,Google Chrome、Adobe Reader、Zoom等常用软件都会创建类似名称的计划任务,大规模部署的终端每天可能产生数千条相关日志,人工审核不现实,机器学习模型则面临极高的误报率。
第二条是"检查异常路径的隐藏文件夹,如C:\windirr"。但Windows系统目录本身就有几十个带隐藏属性的文件夹,攻击者只需要把名称换得更像系统组件——比如"C:\Windows\Security\logs"——就能淹没在噪声里。
第三条是"限制PowerShell和VBS的执行策略"。这是有效的,但韩国大量遗留业务系统依赖PowerShell自动化,一刀切会打断正常运维;VBS则是某些工业控制软件的配置接口,禁用成本极高。
更根本的困境在于:Kimsuky的攻击链完全使用系统原生工具和脚本,没有零日漏洞、没有驱动级Rootkit、没有内存注入。这种"Living off the Land"技术让基于特征码的检测彻底失效,只能依赖行为分析——而行为分析需要时间窗口和人工研判,攻击者正在用分段结构压缩这个窗口。
ASEC在报告末尾提到一个细节:某受害机构的EDR实际上记录了全部五段攻击链,但告警级别被算法判定为"低-中-低-中-高",没有触发自动阻断。安全运营中心(SOC)分析师在事后复盘时发现,"高"级别告警出现时,后门已经运行了11天。
Kimsuky的这次结构升级,本质上是在和EDR的关联算法赛跑。每多拆一段,关联断裂的概率就上升一截;每加一个合法系统工具作为中间层,误报成本就推高一层。这不是技术对抗,是成本对抗——防御方的分析师人力,对抗攻击者的自动化分发。
朝鲜APT的预算和人才储备远不及中美俄以,但他们有一个独特优势:目标高度集中。韩国的政治、经济、社会结构对朝鲜情报机构是"可建模的"——知道什么文件名会点、什么法规焦虑会被利用、什么软件环境可以寄生。这种认知优势,部分抵消了技术资源的差距。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.