术语表

什么是 IOC(失陷指标):从攻击留下的痕迹中发现入侵的线索

IOC(Indicator of Compromise/失陷指标)是已经发生的入侵所留下的“痕迹”——可疑文件的哈希、通信对端的 IP 或域名、异常进程等。本文从防御视角讲解它的含义与种类、与日志比对的用法,以及“痕迹很容易被事后更换”这一局限。

发布于 2026-06-11 更新于 2026-10-06 3 分钟阅读
本页目录

IOC(失陷指标)是用来判断自己是否已被入侵的线索。本文从防御视角讲解它的含义与种类、用法,以及不可过度依赖的理由(不涉及攻击手法)。

IOC 的主要种类

按「痕迹留在哪里」大致分为 4 类。

网络
通信对端的 IP・域名・URL
文件
恶意软件的哈希・文件名
主机
异常进程・注册表更改
行为
深夜大量外发・可疑登录
种类例子在哪里比对
网络类攻击者服务器的 IP/域名、C2 的 URL防火墙/代理/DNS 日志
文件类恶意软件的 SHA-256 哈希、特征性文件名EDR/杀毒软件/文件清单
主机类可疑的注册表键、陌生的常驻进程操作系统日志・进程清单
行为类与平时不同的时间/国家的登录、突发的大量通信认证日志・通信量监控

IOC 与 IOA — 「痕迹」与「行为」

常被拿来对比的是 IOA(Indicator of Attack=攻击指标)。理解了二者的区别,就能看清 IOC 的长处与短处。

IOC(失陷指标)=结果的痕迹

  • 已经发生之事的证据(哈希・IP 等)
  • 能对已知恶意机械地命中=快
  • 但攻击者可以轻易更换(用完即弃)
  • 本质上是事后追溯

IOA(攻击指标)=进行中的行为

  • 「权限提升→横向移动→对外发送」等手法的流程
  • 能在接近实时的阶段察觉
  • 比痕迹更难更换(因为它是攻击的本质)
  • 需要理解其机理,因此落地较重

对攻击者而言的“更换难易度”(痛苦金字塔)

同样是 IOC,攻击者更换它的成本(=我们卡住它时的效果)也天差地别。越往下越容易更换,越往上越难更换。

手法・TTP(最难更换=最有效)
工具
域名
IP 地址・文件哈希(一瞬间就能更换)
下=攻击者一瞬间就能更换(效果薄)。上=更换起来很费劲(效果强)。

也就是说,哈希和 IP 的比对见效快,但代价是很快就会过时。越是连手法(对方会怎么打过来)都理解到位地去防备,防御就越能持久。

小团队也能做的 IOC 用法

即使没有专门的 EDR 或威胁情报订阅,现实中也有可以做的事。

1

从可信来源获取 IOC

使用官方的入侵披露、当局或 CSIRT 的预警、厂商的调查报告所发布的 IOC。来路不明的清单不要用。
2

与自己的日志・依赖比对

把拿到的 IP/域名/哈希与访问日志、DNS 日志、依赖包逐一对照,确认有无命中(例如:供应链事故被披露时,确认自己是否在用同一个被污染的版本)。
3

一旦命中就隔离并调查

把相关终端/密钥/令牌切离,确认影响范围。按照备份与恢复的步骤还原。如果是网站或服务器,也请参考 入侵的检查方法与最先要做的事。
4

记录自己环境的 IOC 并检查其他终端

把这次发现的痕迹记下来,扩大到其他终端、其他服务,排查是否存在相同的痕迹。

真实案例:用什么作为比对的线索

IOC 并不只有 IP 地址和哈希。在本站报道过的供应链事件中,软件包的「版本」本身就是首先要确认的对象。

事件线索用户确认了什么
XZ Utils(2024 年)含有恶意代码的版本(5.6.0 和 5.6.1)自己的操作系统或容器中是否有这些版本。美国 CISA 建议降级到 5.4.6 等未被入侵的版本
Codecov(2021 年)分发脚本的哈希(SHA-256)与官方值不一致篡改是因为一家公司做了这项检查才被发现的。用户确认了自己在 CI 中运行它的时长,以及它能接触到哪些机密
Trivy(2026 年)被恶意发布的版本(v0.69.4 等)以及公布的检查项目在相关时间段内 CI 是否使用了这些版本或标签。如果使用了,就轮换所有认证信息

三个案例中,线索都是由被入侵的一方或当局公布的,而比对则由用户自己完成。官方通知一出来,先确认自己的环境中是否存在相同的版本或哈希。这就是 IOC 的基本用法。

IOC 有保质期

IETF 关于处理 IOC 的文档 RFC 9424(2023 年)描述了 IOC 从发现、评估、共享、部署、检测、响应到结束使用(end of life)的管理过程。之所以有最后这个阶段,是因为 IOC 会过时。

  • 攻击者弃用的 IP 地址和域名,之后可能被正常服务重新使用。按旧清单拦截,可能会阻断正常通信
  • 只改动一个字节就会得到不同的哈希,所以同一攻击的新构建版本不会命中
  • 因此请记录每个 IOC 的日期和来源,并定期重新审视

如何在自己的环境中比对 IOC

即使没有专门的产品,也可以自己比对三类公开的 IOC:版本、哈希和域名。

  1. 版本:把锁文件贴进依赖漏洞扫描器,查看是否包含已知的恶意或有漏洞的版本。操作系统的软件包则用各自的命令确认版本,例如 xz --version
  2. 哈希:用 sha256sum 文件名(Windows 上用 certutil -hashfile 文件名 SHA256)计算下载文件的值,与官方值或公布的 IOC 对比
  3. 域名和 IP:在 DNS 日志和 Web 服务器访问日志中搜索公布的域名或 IP。没有日志的时间段无法检查,所以也要确认日志的保存期限

一旦命中,切离相关的终端、密钥或令牌,并转到上面的第 3 步。

本站的观点:IOC 用于事后确认入侵,首要目标是防止入侵

IOC 比对很重要,但它是在入侵发生之后检查痕迹的工作。等到能找到痕迹时,早就已经被入侵了。

所以本站把 IOC 比对作为排查工具保留在手,而把重心放在防止入侵的设计上:最小权限・迅速打补丁(CVE 监控)・抗钓鱼 MFA・不要把机密以明文存放。依赖事后痕迹比对的防御,永远会慢半拍。用痕迹察觉的能力和防止入侵的能力,两者都需要。

出处(一手资料)

  • IETF RFC 9424, "Indicators of Compromise (IoCs) and Their Role in Attack Defence" (August 2023) — rfc-editor.org(IoC 的定义、痛苦金字塔、IoC 的生命周期与结束使用)
  • US CISA, "Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094" (March 29, 2024) — cisa.gov(受影响版本与建议措施)
  • Codecov 和 Trivy 的出处列在各事件的文章中

接下来阅读

FAQ

QIOC 是什么?
A

它是 Indicator of Compromise(失陷指标)的缩写,指已经发生的入侵所留下的“痕迹”。具体来说,是指可疑文件的哈希值、攻击者的通信对端 IP 地址或域名、恶意 URL、异常的进程或注册表更改等。把这些作为一份已知恶意清单保留下来,再与自己的日志和终端比对,用来发现『是否有被入侵的迹象』。

QIOC 和 CVE 有什么区别?
A

CVE 是『漏洞在哪里(漏洞的标识符)』,IOC 是『是否有被入侵的痕迹(攻击的证据)』,二者是两回事。CVE 是打补丁的对象,IOC 是用来确认『是否已经被踩过』的比对材料。按顺序来说,先根据 CVE 修复漏洞,再用 IOC 检查是否被踩过。

Q只看 IOC 就能守住吗?
A

守不住。IOC 本质上是“事后追溯”,攻击者可以轻易地把文件哈希或 IP 用完即弃、随意更换。IOC 比对在『是否命中已知恶意』的最终确认上有效,但主要的防御是能抵御入侵的设计(最小权限・及时打补丁・抗钓鱼 MFA),以及对比痕迹更难更换的“行为”的监控。

QIOC 和 IOA 有什么区别?
A

IOC(失陷指标)是已经发生的入侵所留下的痕迹,例如文件哈希、通信对端的 IP 或域名。IOA(攻击指标)是正在进行的攻击的行为,例如从权限提升到对外发送数据的一连串动作。IOC 可以机械、快速地比对,但攻击者容易更换;IOA 更难更换,但需要更多的理解和监控投入。

QIOC 有哪些具体例子?
A

恶意软件的 SHA-256 哈希、攻击者使用的通信对端 IP 地址和域名、恶意 URL、可疑的文件名或注册表键,以及被入侵的软件包版本。例如在 XZ Utils 事件(2024 年)中,含有恶意代码的版本(5.6.0 和 5.6.1)就是用户首先需要确认的线索。

QIOC 从哪里获取?
A

主要来源是被入侵的公司或项目的官方公告、美国 CISA 和 JPCERT/CC 等当局和 CSIRT 的预警,以及安全厂商的调查报告。不要使用来路不明的清单,其中可能包含会拦截正常通信的错误值。请记录日期和来源,并随着时间推移重新审视 IOC。