第二章:情报来源与收集

情报收集,说白了就是解决一个问题——「你的数据从哪来」。

我刚开始做威胁狩猎时,总觉得工具越多越好。后来发现,数据源的质量直接决定了分析结果的上限。你想想看,垃圾数据进,垃圾数据出,再牛的算法也救不了。

这一章,我把情报来源分成四类来讲:开源情报、商业情报、暗网监控、内部日志。每一类我都踩过坑,咱们一个一个说。

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:图形化关联分析工具,适合做实体关系挖掘。
我的经验:用 Shodan 时,记得过滤掉自家 IP 段。我曾经不小心把自己公司的服务器也扫出来了,还好没对外公开。

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:实时暗网监控,价格相对亲民。
避坑指南:我曾经采购过一个商业情报源,结果发现 70% 的数据在 VirusTotal 上都能免费查到。签合同前,一定要做 POC 测试,对比数据覆盖率和时效性。

2.3 暗网监控

暗网是威胁情报的「深水区」。很多攻击者会在暗网上交易数据、出售漏洞、讨论攻击手法。

但说实话,暗网监控没那么神秘。我把它分为三个步骤:

2.3.1 入口选择

暗网主要基于 Tor 网络。你需要:

  1. 安装 Tor 浏览器(别用普通浏览器访问 .onion 站点)
  2. 配置好代理链,确保匿名性
  3. 准备一些加密货币(比特币或门罗币),用于支付访问费用

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 后自动推送到内部平台
我的经验:暗网上的信息真假难辨。我见过有人故意在论坛上发布假数据来钓鱼。一定要交叉验证,别拿到 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 天)
  • 数据脱敏:敏感字段(如密码、身份证号)需要脱敏处理
  • 冗余备份:日志数据至少保留两份副本
避坑指南:我曾经发现某台服务器的日志采集器挂了三个月没人管。一定要配置日志采集的健康监控告警,采集器挂了要第一时间通知。

小结

情报来源与收集,是威胁狩猎的「地基」。地基不牢,地动山摇。

我个人建议的优先级是:先做好内部日志采集 → 再接入开源情报 → 按需采购商业情报 → 最后考虑暗网监控。

下一章,我们会聊如何把这些情报数据清洗、标准化、关联分析。嗯,那才是真正考验功力的地方。