第二章:情报来源与收集
情报收集,说白了就是解决一个问题——「你的数据从哪来」。
我刚开始做威胁狩猎时,总觉得工具越多越好。后来发现,数据源的质量直接决定了分析结果的上限。你想想看,垃圾数据进,垃圾数据出,再牛的算法也救不了。
这一章,我把情报来源分成四类来讲:开源情报、商业情报、暗网监控、内部日志。每一类我都踩过坑,咱们一个一个说。
2.1 开源情报(OSINT)
OSINT 是威胁情报的起点。说白了,就是利用公开可获取的信息来做分析。我个人习惯把 OSINT 分成三个层次:
2.1.1 基础层:搜索引擎与社交网络
别小看 Google。我见过太多人只会搜「xxx 漏洞」,其实高级搜索语法才是宝藏。
# 搜索特定域名下的 PDF 报告
site:example.com filetype:pdf threat intelligence
# 搜索暴露的配置文件
intitle:"index of" "config.php"
# 搜索特定时间范围内的讨论
"ransomware" after:2024-01-01 before:2024-06-01
社交网络也是好地方。Twitter 上很多安全研究员会第一时间发布 PoC。Reddit 的 r/netsec、r/blueteamsec 也值得每天刷一刷。
2.1.2 工具层:自动化收集
手动搜太累了。我推荐几个常用的工具:
- Shodan:互联网设备搜索引擎。我曾在 Shodan 上发现某公司暴露的 Elasticsearch 实例,里面全是客户数据。
- Censys:类似 Shodan,但更侧重 TLS 证书和协议分析。
- theHarvester:用于收集邮箱、子域名、IP 等信息。
- Maltego:图形化关联分析工具,适合做实体关系挖掘。
2.1.3 专业层:威胁情报平台
这些平台聚合了全球的威胁数据,是 OSINT 的高级形态:
| 平台 | 特点 | 适用场景 |
|---|---|---|
| VirusTotal | 多引擎扫描 + 社区评论 | 文件/URL 分析 |
| AlienVault OTX | 免费 + 社区驱动 | IOC 共享 |
| MISP | 开源 + 可自建 | 内部情报共享 |
| IBM X-Force | 商业级 + 历史数据 | 深度溯源 |
我个人最常用的是 MISP。为什么?因为它可以私有化部署,数据完全由自己控制。在金融行业做威胁狩猎时,合规要求很高,MISP 是首选。
2.2 商业情报源
开源情报虽然免费,但质量参差不齐。商业情报源的优势在于:数据经过清洗、验证、关联。
我接触过的商业情报源主要有三类:
2.2.1 综合型厂商
- Recorded Future:实时性极强,支持多语言。我曾在一次 APT 攻击中,靠它提前 2 小时拿到了 IOC。
- ThreatConnect:平台化产品,集成了情报收集、分析和响应。
- Anomali:开源 + 商业混合模式,适合预算有限的中型企业。
2.2.2 垂直领域厂商
有些厂商专注于特定领域:
- Flashpoint:暗网情报专家。我合作过几次,他们的俄语和中文暗网监控能力很强。
- RiskIQ:数字风险保护,侧重域名仿冒和移动端威胁。
- Cybersixgill:实时暗网监控,价格相对亲民。
2.3 暗网监控
暗网是威胁情报的「深水区」。很多攻击者会在暗网上交易数据、出售漏洞、讨论攻击手法。
但说实话,暗网监控没那么神秘。我把它分为三个步骤:
2.3.1 入口选择
暗网主要基于 Tor 网络。你需要:
- 安装 Tor 浏览器(别用普通浏览器访问 .onion 站点)
- 配置好代理链,确保匿名性
- 准备一些加密货币(比特币或门罗币),用于支付访问费用
2.3.2 重点监控站点
- 黑客论坛:如 Exploit.in、XSS.is、RaidForums(已关停,但类似站点不断出现)
- 数据交易市场:如 Russian Market、BidenCash
- 勒索软件泄露站点:很多勒索团伙会建立专属泄露站点
嗯,这里要注意:访问这些站点本身就有法律风险。我建议通过第三方服务来监控,而不是自己直接访问。
2.3.3 自动化监控方案
手动刷暗网太累了。我搭建过一个自动化方案:
# 使用 Python + Selenium 模拟 Tor 浏览器访问
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.set_preference('network.proxy.type', 1)
options.set_preference('network.proxy.socks', '127.0.0.1')
options.set_preference('network.proxy.socks_port', 9050)
driver = webdriver.Firefox(options=options)
driver.get('http://example.onion')
# 提取页面内容,匹配关键词
# 匹配到 IOC 后自动推送到内部平台
2.4 内部日志采集
外部情报再丰富,也替代不了内部数据。我常说一句话:「先把自己的日志管好,再谈威胁狩猎」。
2.4.1 必须采集的日志类型
| 日志类型 | 关键字段 | 典型用途 |
|---|---|---|
| Windows 安全日志 | EventID 4624, 4625, 4688 | 登录审计、进程创建 |
| DNS 日志 | 查询域名、客户端 IP | 检测 C2 通信 |
| 代理日志 | URL、User-Agent、响应码 | 检测恶意下载 |
| 防火墙日志 | 源/目的 IP、端口、协议 | 检测异常连接 |
| 邮件日志 | 发件人、收件人、附件哈希 | 检测钓鱼邮件 |
2.4.2 日志采集架构
我推荐使用 ELK 或 Splunk 作为日志平台。这里给一个简单的 Filebeat 配置示例:
# filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/auth.log
fields:
log_type: linux_syslog
- type: winlog
enabled: true
event_id: 4624, 4625, 4688, 5156
output.elasticsearch:
hosts: ["192.168.1.100:9200"]
index: "threat-hunting-%{+yyyy.MM.dd}"
2.4.3 日志质量检查清单
我曾经接手过一个项目,日志采集了半年,结果发现 80% 的日志时间戳是错的。所以,我总结了一个检查清单:
- 时间同步:所有设备必须使用 NTP 同步,时区统一为 UTC
- 字段完整性:关键字段不能为空(如源 IP、目的 IP)
- 日志轮转:设置合理的保留周期(建议至少 90 天)
- 数据脱敏:敏感字段(如密码、身份证号)需要脱敏处理
- 冗余备份:日志数据至少保留两份副本
小结
情报来源与收集,是威胁狩猎的「地基」。地基不牢,地动山摇。
我个人建议的优先级是:先做好内部日志采集 → 再接入开源情报 → 按需采购商业情报 → 最后考虑暗网监控。
下一章,我们会聊如何把这些情报数据清洗、标准化、关联分析。嗯,那才是真正考验功力的地方。