# YARA 与 IOC 管理入门(恶意样本分析、SIEM/EDR 检测、应急响应) > 一句话定位:**IOC 是“威胁线索”;YARA 是基于特征的匹配语言,用来扫描文件/内存,识别恶意样本**。常用于应急排查、恶意样本归类、EDR、SIEM、沙箱。 > ⚠️ 注意:YARA 只做**特征匹配**,不是杀毒引擎;容易被加壳、修改特征绕过。 ## 一、基础概念 ### IOC(Indicator of Compromise,妥协指标) 攻击者入侵后留下的痕迹,用来识别已被攻陷资产。 分为几大类: 1. **文件类IOC**:文件哈希 MD5/SHA1/SHA256、文件名、文件大小、YARA规则 2. **网络类IOC**:恶意IP、域名、URL、C2端口 3. **注册表IOC**:恶意注册表项、键值 4. **进程/行为IOC**:恶意进程名、命令行、计划任务 > 使用场景:应急响应时,全网检索是否存在这个IOC;导入SIEM/EDR做告警。 ### YARA YARA 是开源的**模式匹配工具**,由Virustotal开发。 可以写规则,匹配文件内字符串、字节序列、导入表、PE元数据。 > 适用:恶意样本(木马、勒索、挖矿)识别;不适合直接检测Web漏洞。 ## 二、YARA 基础语法(最简示例) ```yara rule Mal_Miner_Sample { meta: description = "挖矿程序示例规则" author = "sec" date = "2026-10-27" severity = "High" strings: $str1 = "xmrig" ascii $str2 = "donate-level" $hex1 = { 48 83 EC 20 } condition: 2 of ($*) } ``` - `meta`:元数据(描述、作者、CVE、威胁名称,**不参与匹配**) - `strings`:特征,字符串/十六进制字节 - `condition`:匹配逻辑;`2 of ($*)` = 任意2个特征命中即触发 ### 常用 condition 写法 ```yara $str1 and $str2 # 同时命中两个特征 $str1 or $str2 # 任意一个命中 not $str3 # 不能匹配这个特征(排除误报) 2 of ($*) # 任意N个字符串匹配 filesize < 500KB # 文件大小条件 ``` ## 三、YARA 命令行基础 ```bash # 扫描单个文件 yara rule.yar malware.exe # 递归扫描整个目录(应急排查服务器恶意文件) yara -r rule.yar /tmp # 输出匹配详情 yara -v rule.yar target.exe # 输出为json,方便导入SIEM yara -j rule.yar /home ``` > 安装:Linux `apt install yara`;Windows下载官方二进制。 ## 四、IOC 管理:存储、格式、导入、分发 ### 1. IOC 标准格式 - 哈希:SHA256优先(MD5大量碰撞,不推荐作为唯一判定) - 网络IOC:`type=ipv4|domain|url,value=xxx,threat_type=c2,confidence=high` 简单IOC示例清单(csv) ```csv type,value,threat,confidence,comment sha256,aaaa1111...,ransomware,high,xxx勒索样本 ipv4,185.xxx.xxx.xxx,c2,high,挖矿C2 domain,evilxxx.com,c2,high,远控域名 ``` ### 2. IOC管理平台选型 - 开源:OpenIOC、MISP(最经典!威胁情报共享、IOC管理首选)、THOR - 商用:奇安信威胁情报平台、VT、IBM X-Force - 简易小团队:Git + CSV文件(轻量,适合应急临时IOC) ### 3. IOC 使用链路 1. 样本分析 → 提取IOC(哈希、域名、YARA规则) 2. 录入IOC平台,标记:威胁类型、置信度、来源、时间 3. 下发到:SIEM / EDR / 防火墙 4. 全网检索:匹配日志、文件、网络流量,发现受感染主机 5. 命中后告警、研判;失效IOC做归档 ## 五、YARA 和 IOC 的关系(重点,容易混淆) 1. **哈希IOC**:精准,但是**样本改1字节,哈希直接失效**。适合已知固定样本。 2. **YARA规则**:基于内部特征,可以匹配一类变体;但更容易误报,也容易被绕过。 > 实战搭配: > - 已知样本:优先SHA256哈希IOC > - 一类家族恶意程序:写YARA规则批量识别变种 ## 六、应急场景实战流程 1. 拿到恶意样本,沙箱分析 2. 提取:SHA256、C2域名/IP、内置字符串 3. 编写YARA规则,本地测试(测试误报!) 4. 将IOC+YARA导入MISP 5. 下发IOC到SIEM:检索日志,查找是否有主机访问C2 6. EDR推送YARA规则,全网主机扫描,查找同类恶意文件 7. 命中资产进行应急处置;后续规则持续调优,减少误报 ## 七、常见踩坑清单 1. YARA规则特征写太简单 → 大量误报(比如通用字符串) 2. 只靠MD5哈希:攻击者轻微修改样本即可绕过 3. 没有测试规则,直接全量服务器扫描,业务文件大量告警 4. IOC长期不更新:过期IOC产生大量无效告警,造成告警疲劳 5. YARA扫描内存:部分EDR支持,原生yara命令行默认**只扫描磁盘文件** 6. 恶意样本加壳,字符串被加密 → YARA静态特征失效,需要脱壳后提取特征 ## 八、学习实验环境推荐 1. YARA 本地环境 + 恶意样本沙箱(不要直接在本机执行恶意程序!) 2. MISP(虚拟机部署,开源IOC平台,练习IOC录入、导出、关联) 3. VirusTotal:在线测试YARA规则,检索样本IOC ## 九、速记 > IOC = 单点线索(IP/域名/哈希);YARA = 文件特征匹配规则,识别恶意家族;两者配合做威胁狩猎、应急排查。