ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

开源情报OSINT获取实战:从信息分类到工作台搭建

开源情报OSINT获取实战:从信息分类到工作台搭建 很多人第一次看到开源情报这四个字下意识会觉得这是不是跟黑客、卧底、谍战片有关系。其实完全不是。我最早接触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查到某域名的注册邮箱是abcgmail.com这只是一个数据点。只有当你知道abcgmail.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的批量查询脚本以及一个完整的端到端情报收集实战案例。系列更新的节奏我尽量保证每个主题都能给出可以直接复制到工作里的方案而不是泛泛而谈概念。最后说一点个人体会。做开源情报这些年我最大的感受是这门手艺的门槛不在工具多不多、平台贵不贵而在思维习惯。能不能在大量噪声中识别出微弱信号能不能在信息不足时诚实地说这里不确定能不能在合规边界前忍住不越线这些都比任何工具重要。工具可以学平台可以换思维方式和职业操守才是真正拉开差距的地方。希望这篇框架性的分享能让刚接触这个方向的读者少走一些弯路。
返回列表