L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

analyzing-indicators-of-compromise

analyzing-indicators-of-compromise

分析失陷指标(IOC),包括 IP 地址、域名、文件哈希、URL 和电子邮件工件,以确定恶意置信度、攻击活动溯源归因和封锁优先级。适用于对来自钓鱼邮件、安全告警或外部威胁情报的 IOC 进行分诊;使用多源情报对原始 IOC 进行富化;或作出封锁/监控/白名单决策时使用。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: analyzing-indicators-of-compromise description: > 分析失陷指标(IOC),包括 IP 地址、域名、文件哈希、URL 和电子邮件工件,以确定恶意置信度、攻击活动溯源归因和封锁优先级。适用于对来自钓鱼邮件、安全告警或外部威胁情报的 IOC 进行分诊;使用多源情报对原始 IOC 进行富化;或作出封锁/监控/白名单决策时使用。 domain: cybersecurity subdomain: threat-intelligence tags: [IOC, VirusTotal, AbuseIPDB, MalwareBazaar, MISP, threat-intelligence, STIX, NIST-CSF] version: 1.0.0 author: mahipal license: Apache-2.0

分析失陷指标

适用场景

在以下情况下使用本技能:

  • 钓鱼邮件或告警产生需要快速分诊的 IOC(URL、IP 地址、文件哈希)
  • 自动化情报推送批量投递需要在进入封锁控制前进行置信度评分的 IOC
  • 事件调查需要对观察到的网络工件进行上下文富化

不适用于将本技能单独用于高风险封锁决策——始终将自动化富化与分析师判断结合使用,特别是对于共享基础设施(CDN、云服务商)的情况。

前置条件

  • VirusTotal API 密钥(免费或企业版),用于多引擎杀毒软件和沙箱查询
  • AbuseIPDB API 密钥,用于 IP 信誉检查
  • MISP 实例或威胁情报平台(TIP),用于与已知攻击活动交叉核对
  • 安装有 requests 和 vt-py 库的 Python,或带有预构建连接器的 SOAR 平台

工作流程

步骤 1:规范化并分类 IOC 类型

在富化之前,对每个 IOC 进行分类:

  • IPv4/IPv6 地址:检查是否为 RFC 1918 私有地址(跳过外部富化),验证格式
  • 域名/FQDN:为安全处理进行去激活(evil[.]com),使用 tldextract 提取注册域名
  • URL:分别提取域名和路径;检查是否存在重定向
  • 文件哈希:识别哈希类型(MD5/SHA-1/SHA-256);优先使用 SHA-256 确保唯一性
  • 电子邮件地址:拆分为域名部分(检查 MX/DMARC)和本地部分进行模式分析

在文档中对 IOC 进行去激活处理(将 . 替换为 [.],将 :// 替换为 [://]),防止意外点击。

步骤 2:多源富化

VirusTotal(文件哈希、URL、IP、域名):

import vt

client = vt.Client("YOUR_VT_API_KEY")

# 文件哈希查询
file_obj = client.get_object(f"/files/{sha256_hash}")
detections = file_obj.last_analysis_stats
print(f"Malicious: {detections['malicious']}/{sum(detections.values())}")

# 域名分析
domain_obj = client.get_object(f"/domains/{domain}")
print(domain_obj.last_analysis_stats)
print(domain_obj.reputation)
client.close()

AbuseIPDB(IP 地址):

import requests

response = requests.get(
    "https://api.abuseipdb.com/api/v2/check",
    headers={"Key": "YOUR_KEY", "Accept": "application/json"},
    params={"ipAddress": "1.2.3.4", "maxAgeInDays": 90}
)
data = response.json()["data"]
print(f"Confidence: {data['abuseConfidenceScore']}%, Reports: {data['totalReports']}")

MalwareBazaar(文件哈希):

response = requests.post(
    "https://mb-api.abuse.ch/api/v1/",
    data={"query": "get_info", "hash": sha256_hash}
)
result = response.json()
if result["query_status"] == "ok":
    print(result["data"][0]["tags"], result["data"][0]["signature"])

步骤 3:结合攻击活动溯源归因进行上下文分析

在 MISP 中查询匹配 IOC 的现有事件:

from pymisp import PyMISP

misp = PyMISP("https://misp.example.com", "API_KEY")
results = misp.search(value="evil-domain.com", type_attribute="domain")
for event in results:
    print(event["Event"]["info"], event["Event"]["threat_level_id"])

使用 Shodan 获取 IP 上下文(托管服务商、开放端口、Banner 信息),识别 IP 是否属于防弹托管(Bulletproof Hosting)或合法云服务商(存在误报风险)。

步骤 4:分配置信度分数和处置决定

应用分层决策框架:

  • 封锁(高置信度 ≥70%):VirusTotal ≥15 个引擎检测为恶意,AbuseIPDB 分数 ≥70,匹配已知恶意软件家族或攻击活动
  • 监控/告警(中置信度 40-69%):5-14 个引擎检测,AbuseIPDB 分数中等,无攻击活动溯源
  • 白名单/调查(低置信度 <40%):≤4 个引擎检测,无滥用报告,合法服务(Google、Cloudflare CDN IP)
  • 误报(False Positive):被错误标记的合法业务服务;记录并从未来告警中排除

步骤 5:记录并分发

在 TIP/MISP 中记录发现结果,包含:

  • 收集的所有富化数据(时间戳、来源、分数)
  • 处置决定及理由
  • 已采取的封锁措施(防火墙、代理、DNS 黑洞)
  • 相关事件工单编号

以适当置信度字段导出为 STIX 指标(indicator)对象。

核心概念

术语定义
IOC(失陷指标)表明潜在失陷的可观测网络或主机工件
富化(Enrichment)从多个情报来源向原始 IOC 添加上下文数据的过程
去激活(Defanging)修改 IOC(将 . 替换为 [.])以防止在文档中意外激活
误报率(False Positive Rate)被错误标记为恶意的良性工件百分比;对于调整封锁阈值至关重要
黑洞(Sinkhole)将恶意域名查询重定向到良性 IP 的 DNS 服务器,用于在不完全封锁流量的情况下进行检测
TTLIOC 在封锁控制中的存活时间;IP 指标应在 30 天后过期,域名在 90 天后过期

工具与系统

  • VirusTotal:多引擎恶意软件扫描器和威胁情报平台,拥有 70+ 杀毒引擎、沙箱报告和社区评论
  • AbuseIPDB:社区维护的 IP 信誉数据库,具有 90 天滥用报告历史
  • MalwareBazaar (abuse.ch):免费恶意软件哈希仓库,关联 YARA 规则并进行恶意软件家族标记
  • URLScan.io:免费 URL 分析服务,捕获截图、DOM 和网络请求用于钓鱼 URL 分诊
  • Shodan:全网扫描数据,提供托管服务商、开放端口和 Banner 信息用于 IP 富化

常见陷阱

  • 封锁共享基础设施:CDN IP(Cloudflare 104.21.x.x、AWS CloudFront)可能合法托管恶意内容,但封锁该 IP 会中断成千上万个合法站点。
  • 过度依赖 VirusTotal 分数:低 VirusTotal 检测数量并不意味着安全——零日恶意软件和自定义 APT 工具初始得分通常为 0。需检查沙箱行为、MISP 和被动 DNS。
  • 遗漏去激活:在邮件或 Confluence 文档中粘贴活跃 IOC 可能触发自动 URL 扫描器或钓鱼工具。
  • 无过期策略:没有 TTL 的 IOC 会无限期积累在封锁列表中,当基础设施被合法用户重新利用时产生误报。
  • 过度依赖单一来源:VirusTotal 汇聚了杀毒软件的意见——所有意见都可能是错误的或落后于新兴恶意软件。高风险决策应使用 3 个以上独立来源。
Skills enregistrées