很多人第一次看到"开源情报"这四个字,下意识会觉得这是不是跟黑客、卧底、谍战片有关系。其实完全不是。我最早接触OSINT也不是什么高大上的理由,就是做安全应急响应时,客户丢过来一个可疑域名,问"这到底是谁家的、背后关联哪些资产、有没有历史恶意行为记录",我只能靠搜索引擎和一堆公开接口一点点拼线索。折腾多了才意识到,这套从公开信息里拼出有效情报的方法论,本身就是一门值得系统梳理的活儿。
这里说的"开源"不是开源软件那个开源,而是指信息来源公开可得——搜索引擎、社交媒体、域名注册信息、证书透明日志、威胁情报平台、新闻稿、招聘公告,全都算。只要不碰入侵、不碰未授权访问、不碰隐私数据,单纯把散落在公开网络里的信息碎片收集起来交叉验证,就能给很多场景提供决策支撑。这篇文章是"开源情报获取"系列的第一篇,重点解决三件事:开源情报的工作流程是什么、公开信息源怎么分类、一个合格的情报收集工作台怎么搭。适合做安全研究、渗透测试、应急响应、风控合规的朋友参考,也适合做内容安全、品牌保护、记者调查这类工作的人。先把框架立住,后面再逐层展开工具和实战。
1. 信息分类与OSINT工作流程:先弄清边界再动手
1.1 什么才算"公开信息",边界极其重要
做开源情报最容易被误解的一点是:既然是"公开"的,是不是什么都能查、随便怎么用都行?我在带新人的时候,第一步从来不是教工具,而是先划清信息边界。公开信息的核心标准是"合法可达且无需特殊权限"。搜索引擎能搜到的网页算,公开的社交媒体账号算,WHOIS查询接口暴露的注册信息算,证书透明日志里记录的历史域名算。反过来,需要撞库、爆破、钓鱼、未授权接口调用才能拿到的数据,一律不算开源情报。这不是技术问题,是法律和伦理问题,也是专业情报人员和灰产人员的分水岭。
就实际操作层面,我习惯把公开信息简单分成四层。第一层是表面网信息,搜索引擎能直接抓到的,比如新闻、论坛、企业官网、博客;第二层是网络基础设施信息,像DNS解析记录、WHOIS、ASN归属、证书信息,这类信息通常有公开查询接口;第三层是社交媒体与内容平台信息,比如推文、评论、公开主页、简历站点,信息密度高但噪声也大;第四层是第三方数据聚合平台的信息,比如威胁情报平台、漏洞库、商业数据库,这类在合法订阅或公开API前提下开放。把这四层记在心里,后面收集信息时就不容易乱。
1.2 情报处理的标准流程:任务→收集→分析→报告
有边界感只是前提,真正的手艺活体现在流程上。我常用的是四段式流程。第一段是任务定义阶段,先问清楚"要解决什么问题"。举个例子,客户说"查一下这个域名是否安全",这不算一个可执行的任务,因为它没有给出决策点。经过需求拆解后,任务会变成:确认域名注册人所属组织、梳理域名的解析历史与关联IP、查找域名是否与已知恶意家族有关联、给出是否值得继续监控的建议。这四个子问题才算真正可执行。
第二段是收集阶段,围绕任务选择信息源,尽量做到多源覆盖、交叉印证。第三段是分析阶段,把收集来的原始数据去重、清洗、关联,判断置信度,区分事实与推测。第四段是交付阶段,输出结构化的情报报告,回答第一阶段定义的问题,同时给出建议。
这个流程看起来朴素,但很多人做不好,原因是跳步。常见跳步有几种:拿到任务直接搜关键词,搜到什么写什么,完全不管任务要求;或者收集了几十个网站的数据,不整理就开始写报告,最后自己都看不懂数据的来龙去脉。我自己踩过最深的坑就是收集阶段贪多,试图把一切相关信息都捞回来,结果大量低价值信息淹没了真正关键的线索。所以后来我做了一个约定:每个子问题最多选3到5个信息源,收集到的每条记录必须带上"来源、时间、获取方式"三个属性,否则这条记录就不算数。
2. 常用公开信息源与分类体系
2.1 网络基础设施类信息源:域名、IP、证书、ASN
这类信息源是安全类开源情报的地基,因为做威胁分析和资产梳理时,第一步往往是从域名和IP开始的。域名层面最常用的是WHOIS查询,whois命令或网页接口都能查,重点是看注册人组织、注册时间、注册商、联系邮箱和Name Server。这里要提醒一下:现在多数注册商都有隐私保护,直接查到的注册人信息往往是脱敏的,所以WHOIS的价值更多在于历史注册记录和Name Server的变化,而不是像早年那样直接暴露手机号。
DNS信息也是重头戏。除了常规的A、AAAA、CNAME记录,我更建议查DNS历史记录,SecurityTrails、DNSDumpster这类平台都提供部分免费查询能力,可以看到域名过去解析到哪些IP、换了多少次DNS服务器。域名换DNS服务器往往代表管理权变更,是判断域名是否被转手滥用的重要信号。
证书透明日志(CT Log)是另一个容易被忽略但极有用的信息源。因为HTTPS证书签发时基本都会被记录到CT日志里,crt.sh可以直接搜索某个域名下签发过哪些证书,证书里可能包含子域名列表。这相当于免费送你一张子域名清单,用于资产测绘非常顺滑。
IP和ASN层面,直接用IP反查域名、查端口服务、查地理位置都不够,关键是把IP归属到具体资产。这时可以用BGP数据源,比如bgp.he.net查ASN的IP段归属;也可以结合Shodan、Censys这类互联网测绘平台,查IP上开放了哪些端口、运行了什么服务。不过这类平台最实用的是"历史数据"——某个IP过去是否跑过特定服务,这个信息在追踪基础设施轮换时特别顶用。
2.2 威胁情报平台:把脏活累活交给自动化
安全场景下的开源情报,跟媒体记者的开源情报有个明显区别:安全领域有很多现成的威胁情报平台,把多年的恶意样本、恶意域名、恶意IP做了聚合,省掉大量人工搜索。这类平台常用的有VirusTotal、AlienVault OTX、MISP、IBM X-Force Exchange等,国内也有不少商业平台。它们能查很多东西:一个域名历史上是否被报告为恶意、一个文件哈希是否命中已知恶意样本库、一个IP关联过哪些恶意行为标签。
顺便解释一下这类平台的工作原理,很多人以为它们是一个大数据库,其实更准确的说法是"数据众筹+自动扫描"。VirusTotal会把用户提交的样本分发给几十个杀毒引擎检测,再把结果汇总展示;OTX这类平台则是靠社区共享情报指标,配合平台自身的扫描能力。所以多看几个平台的交叉结果比只看一个更可靠,单一平台的误报漏报都不少。
使用威胁情报平台有两条实操心得。第一,不要只看"是否检出恶意"这种结论,要停下来看关联信息。同样的域名,在某个平台显示为恶意,在另一个平台显示为干净,这不是矛盾,而是信息维度不同,需要自己判断。第二,学会用API做批量查询,手动一个个查效率太低。大多数平台免费额度内都提供API,批量拉回结果后自己写脚本去重、打分,这是后文实操部分会展开的内容。
2.3 社交媒体与内容平台:高密度线索的富矿
如果说基础设施信息源是开源情报的"硬情报",那社交媒体和内容平台就是"软情报",两者结合才是完整视角。社交媒体的价值在于:能反映组织或个人的社交关系、倾向、账号使用习惯,甚至能通过时间戳还原事件时间线。比如分析一个钓鱼组织时,常见手法是去搜它的基础设施域名对应的注册邮箱,再到社交平台搜这个邮箱的关联账号,运气好能顺藤摸瓜找到组织成员的公开社交资料。
这里要专门提一下内容平台的特殊价值:GitHub、技术论坛、招聘网站、知识分享平台经常被忽视,但信息密度极大。GitHub上可能有人把自己写的信息收集脚本公开,暴露了组织内部项目结构;招聘网站上的岗位描述能侧面反映组织使用的技术栈;知识分享平台上的技术文章偶尔会贴出内部运维截图。这些都属于公开可得的被动信息,不需要任何授权。
不过社交媒体信息源有个致命问题:噪声极大,且真实性存疑。一个人公开说自己在某公司工作,不代表他真的在那工作;一个账号声称代表某组织发声,也可能是仿冒。所以在利用这类信息时,我的习惯是只把它当作"待验证线索",绝不直接采信。只有至少两个独立来源能相互印证的线索,才会进入情报报告。
3. 核心实操:从零开始构建一套信息收集工作台
3.1 以目标资产为核心的收集路径设计
空谈信息源类型没意义,关键是怎么把它们串成一条可执行的路径。我日常做资产类情报收集时,最常用的入口思路是"域名辐射"和"IP回查"双路并行。域名辐射是从一个已知域名出发,向子域名、关联域名、相关邮箱扩散;IP回查则是从已知IP出发,向域名绑定、端口服务、IP段归属扩散。两条路线最后会在"资产关联图"上汇合。
这里用一个虚构例子走一遍流程。假设任务是对example.org做一轮基础资产情报收集,我会先做这些事,每一步都记录来源和时间:
第一步,查example.org的解析记录,拿到主IP地址,记录解析结果的TTL和当前生效记录;第二步,通过crt.sh查证书透明日志,把该域名下所有历史证书的子域名拉一份列表,去重后作为初步子域名清单;第三步,用WHOIS查域名注册信息,重点记录注册商、创建时间、更新时间和Name Server,判断这个域名的"年龄"和归属组织;第四步,把第一步和第二步得到的所有IP和子域名整理出来,用威胁情报平台逐个查询,看是否命中恶意标签;第五步,在搜索引擎里对域名精确匹配搜索,找公开提及、关联新闻、技术讨论等背景信息。
这个过程看起来简单,但实际执行时信息量大增。一个中型企业的域名资产可能有几十条子域名记录,每条记录查询可能产生多个字段的数据,如果不事先设计好表格结构,条目一多就乱。所以执行之前先把收集模板建好,这是我反复强调的点。
3.2 工具选型与职责分工
工欲善其事,必先利其器。开源情报工具很多,但我一贯的原则是:不要追求工具数量,要追求流程闭环。信息收集、验证、关联、报告,每个环节有一两个顺手工具就够了。
命令行工具里,theHarvester和Amass我用得比较多。theHarvester擅长通过搜索引擎、证书日志、PGP服务器等渠道收集邮箱、子域名和主机名,优势是简单直接;Amass则是更重型的资产测绘工具,通过DNS枚举、证书日志、API接口、被动数据源做域名关联,输出结果相对结构化,适合中大型目标。做DNS查询,dig是底线工具,nslookup输出不好解析,dig的+short参数在脚本里非常方便。做WHOIS查询,命令行whois+正则清洗就好。
在线平台方面,crt.sh查CT日志、SecurityTrails查DNS历史、bgp.he.net查ASN归属,这三个是基础设施类信息的黄金组合。威胁情报查询要做批量,优先看是否有API可用,或者用浏览器插件做快速点查。Shodan和Censys这类测绘平台建议注册账号,它们的历史数据能力在追踪基础设施变更时不可替代。
这里说明一下工具使用的注意事项。命令行工具能拿到原始数据,但清洗数据的过程耗时;在线平台使用方便但覆盖面受平台限制。所以我的使用习惯是:前几轮用在线平台快速建立全局认知,锁定重点目标后再用命令行工具做定向深度收集。比如先通过crt.sh拿到初步子域名列表,再针对每个子域名跑dig和massdns做验证,这样既保证广度也保证深度。
3.3 数据整合与去重:别让数据流变成数据沼泽
信息收集阶段的产出通常是几百条甚至几千条原始记录,这时候最考验功力的是数据整合能力。很多新手栽在这里:数据越来越多,关联关系却越来越模糊,最后只好拿着原始Excel硬写报告,报告质量可想而知。
我的整合思路分三步。第一步,统一数据格式。所有记录统一成"字段:值"的结构,比如"IP: 203.0.113.10""域名: example.org""来源: crt.sh""时间: 2025-01-15",坚决不写散文。这样做的原因是后续可以做程序化去重和排序,也方便回溯来源。第二步,做关联关系建立。把相同IP指向的多个域名放一组,把相同邮箱注册的多个域名放一组,把相同Name Server的域名放一组。这一步其实是在做资产聚类,能发现很多"看起来无关但其实是同一伙资产"的连接点。第三步,给每条记录做置信度标记。高置信度指多个独立来源交叉验证过的,中置信度指单一专业平台确认的,低置信度指仅靠搜索引擎或社交媒体推测的。报告里只把高置信度的信息当"事实"写,中低置信度必须加"推测"字样。
关于数据的自动化处理,我见过不少同行直接用Excel筛选做这步,简单项目没问题,但一旦数据量过百条,就建议用脚本处理。用Python的pandas做数据清洗和去重、用jq处理JSON格式的API返回结果,熟练之后效率能翻几倍。这里顺便提一下:写自动化脚本的核心不是把每一步工具调用都脚本化,而是把"数据格式转换"脚本化。工具五花八门,返回格式千奇百怪,统一成JSON或CSV的工作才是自动化带来的最大收益。
4. 情报分析与研判:别把"数据"当"情报"
4.1 交叉验证与置信度分级
情报分析中最忌讳的一件事,是把"数据"当成"情报"。原始数据只是一个观测事实,情报是在决策场景中经过分析和验证的信息。举个实际例子:你通过WHOIS查到某域名的注册邮箱是abc@gmail.com,这只是一个数据点。只有当你知道abc@gmail.com还关联了三个恶意域名,而这个域名又指向了某台特定IP时,这条数据才转换成了有决策价值的情报——这个域名很可能归属于同一伙组织。
交叉验证是完成这种转换的核心手段。两个以上独立信息源得出同一结论,置信度才能提升。比如一个域名被VirusTotal标记为恶意,这算一个来源的结论;同样这个域名在SecurityTrails的DNS历史记录里解析到某个已知恶意IP段,这算第二个来源的结论。两个来源结论一致,这个域名是高危资产的判断就没什么问题。如果只有一个来源给出结论,或者几个来源相互矛盾,就要降级处理。
因为情报工作的产出往往直接影响决策,所以置信度分级的严谨性直接决定报告的可靠性。我习惯用的分级是三层:确证(Confirmed)、待确认(Pending)、推测(Speculative)。确证意味着两个及以上独立来源交叉验证一致,待确认意味着只有一个来源指向该结论但信息本身可信,推测意味着基于行为模式或弱关联做出的合理推断。每一级在报告里都有严格的措辞要求,"推测"级别的内容必须写明推断依据,方便决策者自行判断。
4.2 情报报告的编写模板
很多人做完情报收集,栽在最后一步——不会写报告。写报告不是罗列数据,而是要回答最初定义的任务问题。整份报告的结构,我通常控制在五块:执行摘要、背景与任务定义、收集过程说明、分析结果、建议与待跟进事项。
执行摘要是给决策者看的,要求用半页篇幅把核心结论说清楚,比如"example.org域名经多方交叉验证,高度关联已知恶意组织,建议立即列入黑名单并加强邮件网关监控"。背景与任务定义部分说明任务来源、目标对象和判断标准,确保阅读者理解报告的前提假设。收集过程说明要列出信息来源、收集时间、使用工具,方便他人复核。分析结果是报告主体,按子问题分段展开,每段都带上置信度标记,结论要有数据支撑。
最后一部分容易被忽略。建议要具体到可执行的粒度,待跟进事项则要说明当前情报的盲区,比如"该域名历史解析记录暂无完整数据,建议持续监控30天"。好的报告一定不是"数据大全",而是"决策抓手",让读报告的人看完知道该做什么。这也是我判断一份情报质量的核心标准:问一句"看完能直接决策吗",答案含含糊糊的,报告就不合格。
4.3 数据留存与处置规范
开源情报操作还有一个经常被忽视但非常重要的环节:数据留存与处置。收集来的信息涉及大量第三方数据,即便来源是公开的,也不代表可以无限期保存、随意传播。我的做法是:原始数据保留6个月,分析报告保留2年,到期后自动清理,清理时删除包含个人信息的字段。
操作层面有几个细节建议。收集的数据要按项目归档,文件名带上任务编号和日期,方便追溯和复核。涉及个人信息的数据,能脱敏就脱敏,能避免收集就避免收集,不主动搜索隐私数据。情报报告的传播范围要控制,内部工作群共享没问题,公开发布前必须先做脱敏审查。现实中就有同行因为写了篇详细的案例分析文章,把目标真实邮箱和内部系统名直接贴上去了,结果给自己和客户都惹了麻烦。开源情报的敏感点往往不在收集端,而在输出端。输出端把好关,整个工作才算闭环。
5. 合规边界与常见误区
5.1 合法与非法的分界线
开源情报在合法合规层面有个铁律:所有信息获取必须基于公开可得的渠道,不进行任何未授权访问,不绕过任何访问控制,不接触非公开数据。这条线必须在项目开始前就明确下来,不能等做到一半才反应过来。比如搜索引擎快照里的内容算公开信息,但某个网站后台的登录页面不算;社交媒体上公开可见的帖子算公开信息,但通过自动脚本暴力爬取账号下所有历史私密数据就不算。灰色地带宁可放弃,不要冒险。
另一个容易被忽视的点是目标所在区域的法规差异。企业在多个地区运营时,同样的公开信息在不同司法辖区可能有不同的采集合规要求,特别涉及个人信息时。我的建议是:如果项目涉及个人信息采集,先跟法务对齐,确认合规条款后再动手;如果项目涉及跨国目标,先做一轮简单的合规风险评估。拿不准就不做,这是底线。
授权问题也要说清楚。做渗透测试、红队评估这类项目时,开源情报收集通常算在授权范围内,但交付报告前还是建议让客户确认一遍信息使用的边界。做独立研究或写公开文章,更要谨慎,所有案例最好用脱敏后的虚构样例。合规不是束缚手脚,而是让开源情报工作能持续做下去的保障。
5.2 实操常见误区
这些年在OSINT实操里见过太多翻车案例,总结下来有五个高频误区。
误区一:把搜索引擎当作唯一信息源。很多新手做开源情报就是不停搜关键词,搜索引擎确实重要,但它只是入口,不是终点。真正有价值的关联信息往往藏在搜索引擎的快照之外,比如CT日志、WHOIS历史、威胁情报平台。搜索引擎之外的世界才是开源情报的主战场。
误区二:只收集不分析。有人能用工具导出几百条数据,但问他这些数据意味着什么,他答不上来。情报工作的核心价值是从数据中提取决策洞察,停留在收集层面的只能叫"网络数据下载"。
误区三:忽略历史数据。只看当前DNS解析记录和分析当前IP,不看历史变化,会漏掉大量关键线索。基础设施轮换本身就是一个重要情报信号,域名突然换Name Server、IP突然开始解析到另一个托管商,往往意味着资产用途在改变。
误区四:轻信单一来源。一个平台显示恶意就下结论,一个文章声称某某组织做了什么就采信,都是做情报的大忌。只有交叉验证过的信息才能进入报告。
误区五:报告写成原始数据堆砌。这个问题前面已经说过,这里再强调一下:报告的价值是帮决策者节省时间,不是把阅读者的时间变成数据整理时间。
5.3 常见问题速查表
日常带新人和做项目沟通时,我经常被问到一些高频问题,这里整理成速查表,方便参考。
| 问题 | 建议 |
|---|---|
| 某域名是否关联已知恶意家族? | 优先用威胁情报平台批量查询,交叉验证至少两个平台 |
| 如何快速发现目标的子域名? | 证书透明日志(crt.sh)优先,辅以DNS枚举工具Amass |
| 如何查询域名历史DNS记录? | 用SecurityTrails类平台看历史快照 |
| 在线平台查到恶意标签,能直接下结论吗? | 不能,先看平台数据来源和样本关联,再做交叉验证 |
| 收集的信息能公开发布吗? | 必须脱敏,涉及个人信息部分直接删除 |
| 搜索引擎找不到相关信息怎么办? | 换信息类型,查基础设施信息、社交媒体、技术平台 |
| 怎么确认一条线索的置信度? | 至少两个独立来源交叉验证为一档,单一来源降级 |
| 遇到拿不准的灰色地带信息要不要收集? | 不要,合规优先,宁可错过不可越界 |
这份速查表不追求覆盖所有场景,但足够应对日常百分之八十的查询需求。遇到更复杂的场景,可以回到前面的方法论去分析。
6. 系列后续方向与我的实操体会
这篇是开源情报获取系列的第一篇,主要搭框架、讲边界、理流程。后续我会继续拆单个信息源的深度玩法,比如证书透明日志的进阶查询、DNS历史记录在追踪基础设施变化中的应用、威胁情报平台API的批量查询脚本,以及一个完整的端到端情报收集实战案例。系列更新的节奏,我尽量保证每个主题都能给出可以直接复制到工作里的方案,而不是泛泛而谈概念。
最后说一点个人体会。做开源情报这些年,我最大的感受是:这门手艺的门槛不在工具多不多、平台贵不贵,而在思维习惯。能不能在大量噪声中识别出微弱信号,能不能在信息不足时诚实地说"这里不确定",能不能在合规边界前忍住不越线,这些都比任何工具重要。工具可以学,平台可以换,思维方式和职业操守才是真正拉开差距的地方。希望这篇框架性的分享,能让刚接触这个方向的读者少走一些弯路。