ᄒᆞᆫ글 815 特别版光盘

HanCom Solutionware。成为国民文字处理软件的代码撑了三十年。朝鲜一直在挖它的缝。

金镐洸 Cyworld 前代表 / 2026年10月10日

🌐 한국어 · English · 日本語 · 中文

分级: TLP:CLEAR | 类型: 分析专栏 (Analytical Column) | 日期: 2026-10-10 严重度: HIGH | 可信度: A2 | 相关行为体: APT37 · 金秀基(Kimsuky)

代码不会老。理解代码的人会老。 成为韩国“文档基础设施”的国产文字处理软件,以及三十年旧代码留下的作业。

主版本(2026年10月9日)

开篇 — 这个月,公务员邮箱将拦截 HWP

若政府计划落实,2026年10月,公务员与国民往来的公职人员综合邮箱将限制 HWP 附件。地方政府 Onnara 系统已从 5 月 18 日起扩大 HWPX 强制使用。政府给出的理由是“AI 能读的文档”。这次转换还有一个几乎不出现在新闻稿里的原因。十多年来,HWP 一直是朝鲜黑客最可靠的入口。

2025 年 12 月,Genians Security Center 公布了朝鲜关联组织 APT37 的“阿尔忒弥斯行动(Operation Artemis)”。攻击者冒充大学教授或广播撰稿人,多次交谈建立信任后,再发送伪装成预访谈问卷或活动通知的 HWP 文件。受害者打开文档、允许内容运行、点击正文里的“超链接”的瞬间,感染开始。那条链接其实是画成链接样子的 OLE 对象。

美国朝鲜问题媒体 38 North 在 2025 年 10 月的报告中指出:HWP 是韩国部委、军方、核心产业与学界的事实标准——这一事实本身,已成为韩国与美韩同盟的网络安全弱点。

为什么偏偏是下阿韩文?本文用历史、文化、技术三层来回答,最后谈几乎无人认真讨论的问题:三十年的 C 代码,以及仍能理解它的人正在老化。

1. 为韩语而生的文字处理软件

下阿韩文(Hangul Word Processor)由首尔大学计算机社团出身的李赞珍、金亨集、禹元植、金泽辰等人于 1988 年开始开发,1989 年以 1.0 面世。产品名「ᄒᆞᆫ글」保留了已经不用的元音“下阿”(ㆍ)。1990 年韩文与计算机(Hancom)成立,正式商业化。

当时的海外文字处理软件无法好好处理韩文。一个韩文字是初声、中声、终声的组合,现代韩语音节就有 11,172 个。下阿韩文用组合型编码正面解决问题,并实现韩汉混排、竖排、韩式段落与字距控制,成为“国民文字处理软件”。

韩语是助词与词尾发达的黏着语,汉字词与固有词混用,公文与学术文档里汉字并记和特殊符号频繁。最先、最准确地回应这套排版需求的,就是下阿韩文。1990 年代中期微软 Word 叩开韩国市场,却没能越过韩语排版质量与用户习惯的墙。1998 年外汇危机期间,针对微软投资提议掀起的“守住韩文”运动,说明这款软件在韩国社会不只是产品。

正是这种象征性,后来成了攻击者的机会。

2. 表格之国,以及为何变成“只有韩国在用”的格式

公文表格文化

韩国行政文档的特征是表格与改条式。草案、报告、计划、预算,乃至一页情况汇报,大多用表格切分条目,填上以“함”“임”结尾的改条式句子。单元格合并、边框粗细、行距、字体与长平都有既定格式,稍有偏差就会听到“重做”——这是公职社会长久以来的风景。

下阿韩文在表格编辑上占压倒优势。画复杂表、拆合单元格、甚至在表内计算,成了公务员与研究者的工作方式本身。

为什么只有韩国用 HWP — 政治经济锁定

只谈功能不够。HWP 的支配力,除了国民情绪,还靠几层锁定(lock-in)维持。

  • 系统锁定。 政府业务管理系统 Onnara 一直把 HWP 当默认文档格式。公务员用 HWP,民间合作企业、研究机构、学校也必须用 HWP 提交。
  • 格式资产锁定。 数十年积累的公文模板、资助申请、招标书全是 HWP。换格式意味着重做数万份表格。
  • 采购与产业政策。 在培育国产软件的名义下,Hancom Office 在公共采购中长期是默认值。
  • 象征锁定。 “对抗外产的国产软件”叙事,让转换讨论在情绪上更难。

在攻击者看来,这一结构是决定性的。目标每天打开的文件格式、打开时无人怀疑的文件格式、以及全世界事实上只有韩国在用的文件格式。 三个条件叠在 HWP 上。微软 Word 和 PDF 有全球安全行业一起盯;HWP 事实上只有韩国安全行业在看。眼睛少的地方,攻击就会聚过来。

“G7 峰会带来的青瓦台政策变化”

如果这份标题的 hwp 文档通过邮件或 KakaoTalk 发来,几乎没有官僚会不点。

3. 缺陷的特征 — 两条攻击轴

针对 HWP 的攻击分成性格完全不同的两支。分不清,处方就会打偏。

第一 — 内存缺陷:文档被“读”的瞬间就被打穿

旧版 HWP(5.0)格式是在微软复合文档结构(OLE Compound File)上压缩堆叠自有二进制记录。Hancom 虽公开了格式规范,但三十多年的向下兼容要求,让解析器必须处理的例外与分支极多。复杂的二进制解析器就是宽攻击面。

公开漏洞呈现出清晰模式。

时期 标识符 类型 备注
2015 CVE-2015-6585 类型混淆 FireEye 确认为朝鲜关联攻击的零日,Hancom 于 9 月 7 日打补丁
2016–2020 CVE-2017-8291 等 内嵌 Ghostscript(EPS 处理)漏洞 处理 HWP 内 EPS 图的外部 C 库成了攻击通道
2022 CVE-2022-33896 缓冲区下溢 基于 XML 的文档解析过程中的内存缺陷
2026.02 公开 CVE-2025-29867 类型混淆(CWE-843) Hancom Office 2018·2020·2022·2024 全线,CVSS 4.0 为 8.5。公开时点无确认实战滥用

类型混淆、缓冲区上溢/下溢、释放后使用(Use-After-Free)都是 C/C++ 这类内存不安全语言的典型缺陷。补一个,同类会在别处再冒出来。这不是个别开发者的失误,而是语言与架构的问题。Ghostscript 的例子也说明:问题不只在 Hancom 自有代码。为了在文档里画一张图拉进来的外部 C 库,同样可以成为攻击点。

第二 — 滥用正常功能:没有漏洞也能打穿

HWP 可以在文档里放入 OLE 对象。本意是放表格、图片或其他程序的数据。阿尔忒弥斯行动中,攻击者把 OLE 对象伪装成普通超链接。软件一个 bug 都没有,用户忽略警告点一次,感染也能成立。在压缩包里放带 HWP 图标的快捷方式(LNK),属于同一家族。

这条轴的核心不是技术,而是信任。攻击者冒充教授、记者、撰稿人、研究机构职员,先聊上几周再发文件。

两条轴要求不同的处方

轴 A:内存缺陷 轴 B:滥用正常功能
攻击时点 打开(解析)文档的瞬间 用户允许/点击的瞬间
代表案例 CVE-2015-6585、EPS/Ghostscript 阿尔忒弥斯行动、HWP+LNK
补丁能否挡住 单个 bug 能挡,家族会重复 挡不住(功能本身正常)
根本处方 转向内存安全语言、沙箱 CDR / 文档检查、用户行为

用 Rust 重写的 HWP,用户一点伪装链接照样被打穿。反过来,教育再好也挡不住“一打开就执行”的零日。只做一边不够。

4. 朝鲜针对 HWP 的十三年年表

时期 主体 内容 攻击轴
2013 金秀基 卡巴斯基首次公开金秀基行动。含专门偷 HWP 文档的模块。HWP 在成为入侵手段之前,先是收集目标 收集
2015 疑似朝鲜关联 FireEye 公开 HWP 零日 CVE-2015-6585 与后门 Hangman。C2 与其他疑似朝鲜行动相连 A
2016–2020 多个朝鲜关联 伪装成统一/安保研讨会资料、虚拟资产相关文档的 HWP,内嵌恶意 EPS,持续数年 A
2017 APT37 针对外交、安保、统一领域约 20 人的 HWP 鱼叉钓鱼 A+B
2023 金秀基 美韩六机构(美 FBI、国务院、NSA;韩国国情院、警察厅、外交部)联合公告。警告冒充记者、学者的社会工程 B
2025.03 APT37 “玩具箱故事”行动。针对涉朝活动人士,用伪装成 HWP 的 LNK 传播 B
2025.08–11 APT37 阿尔忒弥斯行动。冒充教授/撰稿人、OLE 超链接伪装、隐写术与 DLL 侧加载结合 B

年表很清楚。2010 年代中期以前,轴 A(漏洞)是主力。Hancom 补丁加快、内嵌 Ghostscript 被移除后,重心转到轴 B(社会工程与正常功能滥用)。2023 年美韩联合公告强调的也是:金秀基第一封邮件不带恶意代码,先花很长时间建立信任。

5. 朝鲜现在仍在打 HWP

朝鲜的 HWP 攻击不是过去时。2026 年,业界仍在报告 HWPX 与脚本文件(JSE)结合的变种,以及金秀基把 HWP 与 LNK 编织在一起的链式攻击。

还有一点。攻击者已经把 HWPX 当诱饵用。换成开放格式,这场战争不会结束。他们跟的不是格式,而是目标信任的工作流。韩国公共机构用 HWPX,诱饵就变成 HWPX;公职人员综合邮箱被拦住,他们就转到即时通讯与云链接。

6. 我们该做什么

处方必须按两条轴来设计。本文提四点。第一、第二针对 轴 A,第三针对 轴 B,第四是 组织与个人 的份。

第一,把三十年 C 代码迁到内存安全语言 [轴 A]

这是本文最想强调的部分。

下阿韩文的根是 1980 年代末 DOS 时代的 C 代码。经过 Windows 时代扩展到 C/C++,上面又叠了三十多年的功能与兼容代码。直接操作指针、手工分配释放内存,当时是性能的最佳选择。今天,那份代码是朝鲜挖了十多年的攻击点。据说一度因为各 Windows 版本 GDI 渲染不同,连 MFC 都不用,自己做渲染。

然后是人的问题。做出下阿韩文的第一代开发者如今前后六十岁,大多早已离开公司。真正理解最初设计意图与内部结构的人在减少,叠在上面的代码却继续增加。代码不会老,理解代码的人会老。 遗留系统最大的风险,就是这种知识断裂。

世界的方向已经定了。

  • 微软表示,每年在自有产品中修补的安全漏洞约 70% 是内存安全问题。
  • 谷歌报告,Android 新代码开始用 Rust 等内存安全语言后,内存安全漏洞占全部漏洞的比重从 2019 年的 76% 降到 2024 年的 24%。关键是:不必把旧 C/C++ 全部推翻,只改新代码 就有效果。
  • 美国 CISA、NSA、FBI 与友邦网络机构 2023 年联合建议软件厂商制定“内存安全路线图”;白宫国家网络主任办公室(ONCD)也在 2024 年正式推动转向内存安全语言。
  • 美国国防高级研究计划局(DARPA)正在推进用 AI 把 C 自动转成 Rust 的 TRACTOR 项目。

过去,把数百万行 C 迁到另一种语言不现实。现在有了新工具:基于 LLM 的代码迁移。现实顺序是:

  1. 先迁解析器。 轴 A 的攻击发生在文档被“读”的瞬间。从接收外部输入的边界代码——HWP/HWPX 解析器、图像与 OLE 处理模块——用 Rust 重写。
  2. 用 AI 转换,用测试验证。 LLM 做 C 到 Rust 的初译;差分测试与模糊测试把同样的数百万份文档送进新旧引擎比对。Hancom 有三十年真实文档这一谁都没有的测试资产。LLM 是翻译机,不是裁判。裁判是测试。
  3. 把剩下的 C 关起来。 暂时迁不走的部分放进沙箱,即使被打穿也不扩散到整个系统。
  4. 把知识写成代码留下。 转换过程中用 LLM 文档化遗留行为,再用测试钉死,第一代的默会知识就能以下一代读得懂的形式保存。

谁出钱?老实说,这活 Hancom 一家扛太大。企业很难自发把数百亿韩元花在不增加营收的安全重写上。但只要 HWP 是国家文档基础设施,这就不是一家公司的质量问题,而是国家网络安全问题。需要两根杠杆。

  • 采购条件。 要求公共机构采购的文档软件提交“内存安全路线图”。美国把 Secure by Design 接到采购上,是同一做法。
  • 联合研发。 用国家研发支持解析器重写与模糊测试基础设施,并把部分成果(尤其是 HWPX 解析器)开源,让整个安全行业一起验证。

第二,把开放文档体系的转换推到底。尽量缩小暴露在单一文字处理软件上的面。

政府 2022 年在中央部委 Onnara 强制 HWPX,并从 2026 年 5 月 18 日起扩大到地方政府。公务员之间的 On-mail 与面向国民的公职人员综合邮箱从 10 月起限制 HWP 附件。HWPX 遵循基于 XML 的开放文档标准(OWPML,KS X 6101),把扩展名改成 zip 就能直接看内部结构。

转换的真正价值是“可检查性”。结构必须透明,自动检查、无害化(CDR)、AI 分析才可能。但如前所述,开放格式不等于安全格式。 HWPX 上也报告过解析漏洞,攻击者已经在用 HWPX。格式转换是起点,不是终点。

第三,建立基于 LLM 的文档检查体系

第一项里的 LLM 是修代码的工具;这里的 LLM 是检查进来文档的工具。同一技术,完全不同的用途。

轴 B 很难用特征码抓住。它不是恶意代码,而是正常功能加上像样的语境。所以需要读语境的检查。从 HWPX 结构化抽出 OLE 对象、外部链接、脚本、元数据后,可以让 LLM 问:

  • “自称访谈问卷,为什么里面有可执行对象?”
  • “正文里看到的链接文字和实际指向是否一致?”
  • “显示为发件人的教授所属,与文档格式、元数据是否一致?”

在这套结构里,LLM 也不是最终裁判。确定性检查引擎确认风险要素;LLM 在前段过滤可疑信号,并用人能听懂的话解释。把数十年旧版 HWP 迁到 HWPX 或结构化数据,也是这套检查体系与公共数据利用的共同基础。

第四,组织默认 CDR,个人守住五个习惯 [组织·个人]

组织。 CDR(Content Disarm and Reconstruction,内容拆解重建)从文档里去掉 OLE 对象、脚本、外部链接等可执行要素,再重建成安全文档。无论漏洞是否已知都能工作,因此对轴 A 的零日和轴 B 的伪装链接都有效。外部进来的文档应默认只在经过 CDR 之后才能打开,写进邮件网关。

个人。 政策与技术要变,需要几年。这期间朝鲜瞄准的,终究是一个人的一次点击。

从今天就能做的五件事

  1. 第一次联系你的教授、记者、撰稿人发来文档,用你本来就认识的渠道再确认一次。 2023 年美韩联合公告建议用短视频通话确认身份——哪怕那是素颜视频通话。
  2. 打开文档时弹出“允许内容”“运行”之类警告,不要点。 正常的报告或问卷不会要这种许可。
  3. 文档里的链接和图标不是文档。 非要打开,就自己核对地址,另开浏览器输入。
  4. 在 Windows 资源管理器打开“显示文件扩展名”。 带着 HWP 图标的 .lnk 不是文档,是可执行文件。
  5. 保持 Hancom Office 最新,替换已停止支持的旧版。 收到可疑文档,向 KISA(118)或国情院(111)报告。

7. 预期反驳与回应

“那干脆换成微软 Word 不就行了?”国家 AI 战略委员会的民间委员里确实出现过 Word 导入论。但换成 Word,并不是少掉一条攻击轴,只是换到另一家公司的 C++ 解析器。Word 也长期是宏与 OLE 滥用的常客通道。还要算丢掉数十年公共模板与韩语排版资产的成本,以及把国家核心文档基础设施押在一家外国公司上的风险。问题不是“国产还是外产”,而是“能否检查、是否内存安全”。达标的话,HWPX、DOCX、ODF 都可以。HWPX 是现实起点,因为它能以最小损失迁移现有格式资产。

“公务员和研究者的转换成本呢?”不小。旧模板会坏,旧版用户打不开文件,部委间系统对接也要改。所以政府也选择了分阶段:公职人员综合邮箱给五个月宽限期,先从提示弹窗做起。转换成本是真的,但和十三年持续渗透的成本比,故事就不一样了。

“Hancom 这些年什么都没做吗?”不是。Hancom 从 2010 年起支持 HWPX,2021 年定期补丁把 HWPX 设为默认保存格式。2018 年前后用安全更新移除了成为攻击通道的内嵌 Ghostscript 模块,漏洞报告后也通过 KrCERT/CC 发补丁。本文的要点不是 Hancom 不够努力,而是仅靠现在的打补丁和换格式,结束不了语言层面的缺陷家族。下一步是改代码的地基。

“换成 Rust,朝鲜黑客就结束了吗?” 不会。第三章已经说明:Rust 只缩小轴 A,挡不住点伪装链接的轴 B。所以四条处方必须绑在一起。

收束

1989 年,外国软件还处理不好韩文的时候,几个大学生改变了这个国家用韩语写文档的方式。他们写下的 C 代码,撑起了三十多年的行政、研究与产业。

那份代码现在仍按当时的样子运行。变的是外面的世界。朝鲜挖它的缝已经十三年,最初设计它的人一个接一个离开现场。公务员邮箱拦截 HWP 的这个十月,必须是开始,而不是结束。改完格式之后改代码,改完代码之后把知识留给下一代。

1989 年的大学生有 C;2026 年的我们有 AI 和内存安全语言。重写下阿韩文,不是丢掉那份遗产,而是让那份遗产再撑三十年。

参考链接

朝鲜 HWP 攻击案例

漏洞与联合公告

开放文档转换政策

内存安全语言转换