investigate-without-getting-made
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseInvestigate without getting made
隐秘开展调查,避免身份暴露
Collection is bidirectional. Most investigators are burned not by a clever
adversary but by a platform doing exactly what it advertises: telling the
subject who looked at their profile, suggesting the investigator to the subject
as someone they may know, or marking a story as viewed. The default failure is
not a leaked IP address. It is being logged into a real account.
信息收集是双向的。大多数调查人员暴露身份并非因为遇到了精明的对手,而是因为平台完全按其宣传的功能运作:告知调查对象谁查看了他们的资料、向调查对象推荐可能认识的调查人员,或是标记内容已被查看。最常见的失误并非IP地址泄露,而是登录了真实账户。
Threat-model first
先进行威胁建模
OPSEC effort should be proportionate. Answer three questions before you spend a
day building infrastructure — or before you decide you need none.
- Who might notice? A dormant shell company, a moderately technical individual, a criminal group running monitored infrastructure, or a state service. Their capability sets the bar.
- What would they see? Passive collection: a line in a server log. A logged-in visit: your name. An interaction: your persona and its history.
- What is the consequence? Nothing, or evidence destroyed and accounts gone dark, or the investigation attributed to your organisation and disclosed, or physical risk to you or a source.
| Situation | Proportionate posture |
|---|---|
| Registries, archives, CT logs, court records | Normal browser, no persona. You are one of thousands. |
| Viewing a target's public website | Clean browser profile, commercial VPN, no logged-in sessions. |
| Any logged-in platform view of a target | Persona account, dedicated profile, and check the platform's viewer-notification behaviour first. |
| Target operates monitored infrastructure or is technically capable | Dedicated VM, non-datacentre egress, no reused fingerprint, timing discipline. |
| Organised crime, harassment risk, physical safety in play | Everything above plus compartmented hardware, and a colleague who knows what you're doing. |
Over-engineering costs too: a locked-down setup gets CAPTCHA'd, rate-limited and
blocked, so you collect less, and unusual configurations are themselves
distinctive. Blend in where blending in is the goal. And before working out how
to view something safely, check whether an archive already holds it
() — a snapshot tells the target nothing.
read-deleted-pagesOPSEC工作应与风险相匹配。在花一天时间搭建基础设施——或是决定无需任何防护之前,先回答三个问题:
- 谁可能注意到你? 一家休眠的空壳公司、具备中等技术水平的个人、运营受监控基础设施的犯罪团伙,或是国家机构。他们的能力决定了防护的标准。
- 他们会看到什么? 被动收集:服务器日志中的一条记录。登录状态下的访问:你的真实姓名。互动行为:你的角色及其历史记录。
- 后果是什么? 无任何影响,或是证据被销毁、账户停用,或是调查被归因于你的机构并被披露,甚至是你或消息源面临人身风险。
| 场景 | 适配的防护姿态 |
|---|---|
| 注册信息库、档案、CT日志、法庭记录 | 普通浏览器,无需使用角色。你只是数千访问者之一。 |
| 查看目标的公开网站 | 干净的浏览器配置文件、商用VPN,无登录会话。 |
| 在任何登录平台查看目标内容 | 使用角色账户、专用配置文件,且先确认平台的浏览者通知机制。 |
| 目标运营受监控基础设施或具备技术能力 | 专用虚拟机、非数据中心出口、不重复使用指纹、严格控制操作时间。 |
| 涉及有组织犯罪、骚扰风险或人身安全问题 | 以上所有措施,加上隔离硬件,以及知晓你工作内容的同事。 |
过度设计也会产生成本:过于封闭的设置会触发验证码、速率限制甚至被封禁,导致你收集到的信息更少,而且特殊的配置本身就具有辨识度。在需要融入环境的场景下,尽量保持普通。另外,在研究如何安全查看内容之前,先确认是否已有存档保存了该内容()——快照不会向目标透露任何信息。
read-deleted-pagesYour attribution surface
你的归因面
What a site or platform can learn from a visit:
| Surface | What it gives away |
|---|---|
| IP and ASN | The network, not the address, is the tell: a datacentre ASN says "VPN or scraper", a corporate ASN says your employer's name — the worst outcome, and common, because people forget the office network is an identifier |
| Browser fingerprint | User-agent, window geometry, fonts, canvas and WebGL rendering, hardware concurrency, timezone — often unique and, crucially, stable across sessions and IPs, so it links your visits to each other when nothing else does |
| TLS fingerprint | The client hello (cipher suites, extensions, ordering) identifies your client independently of anything the browser exposes; it is why a tool behind a proxy is trivially separable from a real browser — the headers say Chrome and the handshake does not |
| Language and locale | |
| Timing | Activity only in one country's working hours, gaps on its holidays, bursts on the hour. Timing survives every other control you apply |
| Link previews | Pasting a target URL into chat, a ticket, or a doc makes that platform fetch it; the fetch hits the target's server and correlates with your other activity. Disable previews or defang URLs |
Logged-in accounts are the big one. Authentication converts an anonymous
request into an identified one, and the leaks are features: profile-view
notifications and viewer lists, story and video view lists, "people you may
know" suggestions driven by contact-list and interaction graphs, read receipts,
follower and list notifications, mutual-connection displays. Some fire with no
action beyond loading a page.
Per-surface checks, what each platform category exposes, and the settings that
do and don't help: reference/attribution-surface.md.
网站或平台可从一次访问中获取的信息:
| 归因面 | 泄露的信息 |
|---|---|
| IP与ASN | 关键线索是网络而非具体地址:数据中心ASN意味着“VPN或爬虫”,企业ASN会暴露你的雇主名称——这是最糟糕的结果,而且很常见,因为人们会忘记办公网络本身就是一个标识符 |
| 浏览器指纹 | 用户代理、窗口尺寸、字体、Canvas与WebGL渲染、硬件并发数、时区——通常是唯一的,且关键在于跨会话和IP保持稳定,因此即使没有其他线索,它也能将你的多次访问关联起来 |
| TLS指纹 | 客户端问候(密码套件、扩展、排序)可独立于浏览器暴露的信息识别你的客户端;这就是为什么代理后的工具很容易与真实浏览器区分开来——请求头显示是Chrome,但握手信息却不一致 |
| 语言与区域设置 | |
| 操作时间 | 仅在某国工作时段活动、该国节假日期间无操作、整点时段集中活动。时间模式不受其他任何防护措施的影响 |
| 链接预览 | 将目标URL粘贴到聊天、工单或文档中时,平台会自动抓取该链接;抓取请求会命中目标服务器,并与你的其他活动关联。应禁用预览或修改URL使其失效 |
已登录账户是最大的风险点。 身份验证会将匿名请求转换为已识别请求,而信息泄露是平台的固有功能:资料浏览通知与浏览者列表、故事与视频浏览列表、基于联系人列表和互动图谱生成的“可能认识的人”推荐、已读回执、关注者与列表通知、共同联系人显示。有些功能甚至只需加载页面就会触发。
关于各归因面的检查、各平台类别暴露的信息,以及有用和无用的设置:reference/attribution-surface.md。
Separation is absolute
身份分离必须绝对彻底
Research identity and real identity never touch. Not "mostly" — one crossing
links them permanently, and it is not reversible once a platform has correlated
it. The specific leaks, roughly in order of how often they burn people:
- A real phone number for SMS verification. The strongest cross-platform identifier there is; platforms link accounts on it internally and use it to power contact-based suggestions. One verification links the persona to you forever, including retroactively.
- A recovery email that is yours — or one that is another persona's, which links the personas to each other.
- A payment method. Any card, wallet, or subscription, including the VPN.
- A reused password, which surfaces in a future breach and clusters your
accounts for anyone who buys the dump — see .
what-leaked-about-you - A synced browser profile, carrying history, autofill, and saved passwords into the research environment. Personal cookies and sessions do the rest.
- An avatar that reverse-searches back to you — or to anyone
(). A cropped personal photo, a friend's photo, and a stock image all fail, for different reasons. Strip upload metadata too (
find-the-original-image).secrets-in-file-metadata - Style and habits. A distinctive phrasing, a recurring typo, fixed hours.
- Contact-list upload. Granting an app contacts access, on a phone that has ever held your real contacts, hands the platform the graph that links everything.
研究身份与真实身份绝不能有任何关联。不是“几乎不关联”——一次交叉关联就会永久绑定两者,一旦平台完成关联,就无法逆转。以下是最常见的导致暴露的泄露点,按发生频率排序:
- 使用真实手机号进行SMS验证。 这是最强的跨平台标识符;平台会通过手机号在内部关联账户,并基于此生成联系人推荐。一次验证就会将角色永久关联到你,包括追溯关联。
- 使用属于你的恢复邮箱——或是属于其他角色的邮箱,这会将多个角色相互关联。
- 使用支付方式。 任何银行卡、钱包或订阅服务,包括VPN。
- 重复使用密码,这会在未来的数据泄露中暴露,并让购买泄露数据的人将你的多个账户归为一类——参见。
what-leaked-about-you - 同步浏览器配置文件,将历史记录、自动填充内容和保存的密码带入研究环境。个人Cookie和会话会完成剩下的关联。
- 使用可反向搜索到你的头像——或是任何人的头像()。裁剪的个人照片、朋友的照片和图库图片都会失效,只是原因不同。还要清除上传文件的元数据(
find-the-original-image)。secrets-in-file-metadata - 风格与习惯。 独特的措辞、反复出现的拼写错误、固定的操作时间。
- 上传联系人列表。 在曾保存过真实联系人的手机上授权应用访问联系人,会将关联一切的图谱交给平台。
Personas
傀儡角色(Personas)
Build one only when observation genuinely requires an account, and read the ToS
section below first. A brand-new empty account is both useless and conspicuous: it can't see much and
it looks exactly like what it is, so it gets blocked, challenged, or banned at
the moment you need it. Personas need plausible history and age, so create them
well before the case that needs them and let them accumulate ordinary activity.
Maintain a small stable rather than one per investigation.
Coherence is the whole game: name, locale, language, timezone, posting hours,
interests, and connections all agreeing with each other and with the platform's
demographics. A persona claiming a city while posting on that city's night
schedule is a contradiction a human notices instantly.
Step-by-step build, identifier sourcing, ageing schedule, and the maintenance
routine: reference/persona-runbook.md.
Hard limit, regardless of mandate: personas are for observation — not for
eliciting private information, inducing anyone to act, or gaining entry to
closed systems or groups on a false pretext you have no authorization to make.
仅当观察确实需要账户时才创建角色,且先阅读下方的服务条款(ToS)部分。全新的空账户既无用又显眼:无法查看太多内容,而且看起来就是一个新账户,因此在你需要它的那一刻就会被封禁、验证或限制。角色需要合理的历史记录和“年龄”,因此要在需要使用的案例开始前很久就创建,并让其积累日常活动。维护少量稳定的角色,而非每个案例创建一个。
一致性是关键:姓名、区域、语言、时区、发帖时间、兴趣和人脉都要相互一致,且符合平台的人口统计数据。一个声称住在某城市却在该城市夜间发帖的角色,会被人一眼识破矛盾。
角色创建的分步指南、标识符来源、培养计划和维护流程:reference/persona-runbook.md。
无论任务要求如何,硬性限制:角色仅用于观察——不得用于获取私人信息、诱导他人行动,或凭借未经授权的虚假借口进入封闭系统或群组。
Network egress
网络出口
| Option | Good for | Bad for |
|---|---|---|
| Commercial VPN | Hiding your ASN and rough location from ordinary sites; the common default | Anything that blocks datacentre ranges; anything where "obvious VPN" is itself a signal; trusting the provider |
| Residential / mobile proxy | Appearing as an ordinary consumer connection; reaching services that block datacentres | Cost, variable reliability, and a serious sourcing problem — see below |
| Tor | Strong anonymity against network observers; accessing onion services | Persona accounts (exit nodes are a published list, so expect blocks, CAPTCHAs, and account security challenges); anything needing session stability or geographic plausibility |
| Your own VPS | Control and stability | Being a datacentre IP that traces to a billing identity, which is often worse than a VPN |
Tor is the strongest tool here and the wrong one most of the time: exit
addresses are publicly enumerable, so a monitored target sees "someone using Tor
looked at this" — more attention-getting than an ordinary visit — and platforms
treat Tor logins as high-risk, triggering the verification challenges that kill
a persona.
Residential proxies deserve a specific warning: many pools are assembled from
consumer devices enrolled through bundled SDKs whose users did not meaningfully
consent, and your traffic exits through a stranger's home connection — an
ethical problem and potentially a legal one for both of you. Know how your
provider sources its pool, or don't use one.
Verify whatever you choose: check the exit address and its ASN, confirm DNS
resolves through the tunnel, and block WebRTC, which reveals addresses
independently of it.
| 选项 | 适用场景 | 不适用场景 |
|---|---|---|
| 商用VPN | 向普通网站隐藏你的ASN和大致位置;常见的默认选择 | 任何封禁数据中心IP范围的服务;任何将“明显使用VPN”视为信号的场景;需要信任服务提供商 |
| 住宅/移动代理 | 模拟普通消费者连接;访问封禁数据中心IP的服务 | 成本高、可靠性不稳定,且存在严重的来源问题——见下文 |
| Tor | 针对网络观察者的强匿名性;访问洋葱服务 | 角色账户(出口节点是公开列表,因此会被封禁、触发验证码和账户安全验证);任何需要会话稳定性或地理合理性的场景 |
| 自有VPS | 可控性和稳定性 | 属于数据中心IP,可追溯到账单身份,这通常比VPN更糟糕 |
Tor是这里最强的工具,但大多数时候并不适用:出口地址是公开可枚举的,因此受监控的目标会看到“有人使用Tor查看了此内容”——这比普通访问更引人注意,且平台会将Tor登录视为高风险,触发会毁掉角色的验证挑战。
住宅代理需要特别提醒:许多代理池是通过捆绑SDK从消费者设备收集的,而这些设备的用户并未真正同意,你的流量会通过陌生人的家庭网络出口——这既存在伦理问题,也可能对你和对方都带来法律风险。要了解你的提供商如何获取代理池,否则不要使用。
无论选择哪种方式,都要进行验证:检查出口地址及其ASN,确认DNS通过隧道解析,阻止WebRTC(它会独立于隧道泄露地址)。
Environment and compartmentation
环境与隔离
One case, one environment. A dedicated VM per case is the clean answer; a
dedicated browser profile is the minimum. Containerised tab isolation separates
cookies but not fingerprint — a convenience, not a boundary. Across setups: no
personal accounts ever signed in; snapshot clean and roll back between cases;
keep notes and downloads in the case's encrypted store; never open a target's
document or PDF in an environment that can reach your real identity.
Compartmentation means a persona used on case A is never used on case B. Two
targets who compare notes — and targets in one ecosystem do — reconstruct your
operation from the overlap. Same for numbers, emails, proxies, and avatars.
Never authenticate to anything belonging to the target. Not their portal,
not their wifi, not a login with credentials found in breach data, not a
"forgot password" flow to confirm an account exists. That is the line between
open-source research and unauthorized access, and it does not move because the
password was easy to find.
一个案例,一个环境。每个案例使用专用虚拟机是最彻底的方案;专用浏览器配置文件是最低要求。容器化标签隔离可分离Cookie,但无法分离指纹——这只是便利措施,而非安全边界。所有设置需遵循:绝不登录任何个人账户;案例间恢复干净快照并回滚;将笔记和下载内容保存在案例的加密存储中;绝不在可访问真实身份的环境中打开目标的文档或PDF。
隔离意味着用于案例A的角色绝不能用于案例B。两个目标若交流信息——同一生态中的目标确实会这么做——会从重叠信息中重建你的操作。号码、邮箱、代理和头像也是如此。
绝不要登录任何属于目标的系统。 无论是他们的门户、wifi,还是使用泄露数据中的凭证登录,或是通过“忘记密码”流程确认账户存在。这是开源研究与未授权访问的界限,不会因为密码容易获取而改变。
Where this goes wrong
常见失误
- The logged-in slip. A colleague sends a link, you click it in your normal browser, and the target has your name. The most common burn by a distance. Defang shared URLs and make the research browser visually distinct.
- The privacy setting that isn't. Anonymous-browsing modes stop the name reaching the target, but the platform still has it, the setting can revert, and some notifications aren't covered. They reduce exposure, not remove it.
- Contact-graph suggestions. You never visited the profile, yet they're suggested to you and you to them, because your device or persona touched a number or address in their contact graph.
- Verification challenge mid-case. Ageing and stable egress reduce it; nothing eliminates it. Plan for the account to die at the worst moment.
- Metadata in your own outputs. Screenshots and reports carrying your username, hostname, or internal paths, sent to a client.
- Correlating your own personas. Same avatar generator, same bio template, same three interests, made in one afternoon from one exit IP. Platforms cluster on exactly this.
- Assuming passive means invisible. One request in a server log is nothing; a distinctive pattern across a hundred is a signature. And scanners and API clients carry their own TLS and header fingerprints, with some logging your queries server-side — know what egresses where.
- 登录失误。 同事发送一个链接,你在常用浏览器中点击,目标就获取了你的姓名。这是最常见的暴露方式。应修改共享URL使其失效,并让研究用浏览器具有明显的视觉区分。
- 无效的隐私设置。 匿名浏览模式可阻止姓名传递给目标,但平台仍会获取姓名,设置可能会恢复,且某些通知不受该模式覆盖。它只能减少暴露,无法消除。
- 联系人图谱推荐。 你从未访问过某个资料,但对方被推荐给你,你也被推荐给对方,因为你的设备或角色接触过对方联系人图谱中的号码或地址。
- 案例进行中触发验证挑战。 培养角色和稳定的出口可减少这种情况,但无法完全消除。要做好账户在最糟糕时刻失效的准备。
- 自身输出内容中的元数据。 截图和报告中包含你的用户名、主机名或内部路径,并发送给了客户。
- 角色间的关联。 使用同一个头像生成器、相同的简介模板、相同的三个兴趣,在一个下午从同一个出口IP创建多个角色。平台正是基于这些信息将角色归类。
- 假设被动操作就不会被发现。 服务器日志中的一条请求无关紧要;但一百次请求形成的独特模式就是一个特征。此外,扫描器和API客户端有自己的TLS和请求头指纹,有些还会在服务器端记录你的查询——要清楚哪些流量从哪里出口。
Grading your exposure
暴露程度分级
After any collection action, grade what the target could know.
- Clean — nothing reached target-controlled infrastructure: third-party archives, registries, and logs only.
- Anonymous contact — the target's servers logged a request carrying no identity beyond an IP you control and a common fingerprint.
- Pseudonymous contact — the target can see a persona: a viewer entry, a follow, a notification. Recoverable if the persona is clean and compartmented.
- Attributed — a real identity, employer ASN, or cross-linked selector reached the target. Stop, record what was exposed and when, and tell the case owner; a concealed burn becomes a burn the other side discovers first.
Log exposure events as they happen, with timestamps. Reconstructing them after a
case goes wrong is guesswork, and the client will ask.
完成任何收集操作后,评估目标可能知晓的信息:
- 无接触——未触及目标控制的基础设施:仅使用第三方存档、注册信息库和日志。
- 匿名接触——目标服务器记录了一条请求,仅包含你可控的IP和常见指纹,无身份信息。
- 伪匿名接触——目标可看到一个角色:浏览者条目、关注、通知。如果角色是干净且隔离的,可挽回。
- 已归因——真实身份、雇主ASN或交叉关联的标识符已传递给目标。立即停止操作,记录暴露的内容和时间,并告知案例负责人;隐蔽的暴露会变成被对方先发现的暴露。
记录暴露事件及其时间戳。案例出问题后再重建这些信息只能靠猜测,客户也会要求提供相关记录。
Worked example
实操示例
Objective: is a supplier's named director active in an industry forum? Subject
is a small business owner, not technically sophisticated, but the forum is niche
and members notice new accounts.
Posture: commercial VPN, dedicated browser profile, an existing aged persona
from the stable — not a new one, because the forum's member list shows join
dates.
The dead end that matters: the forum blocks the VPN's ranges outright. Instead
of escalating tooling, the archive route () yields cached
thread pages containing most of what was needed, with no contact at all. Graded
clean.
read-deleted-pagesOne question still needs a live profile page. The persona logs in from a
consumer connection rather than the VPN, in the forum's working hours, views the
profile, and leaves. The forum has no "who viewed" feature, so exposure is
graded anonymous contact — with a note that the administrator can still read
access logs.
Not done: a professional-network profile view of the same person, because that
platform notifies. The question it would have answered went into the report's
gaps section instead. A tipped-off subject costs more than an unanswered
secondary question.
目标:某供应商的指定董事是否活跃于某行业论坛?调查对象是小企业主,技术水平不高,但该论坛是小众论坛,会员会注意到新账户。
防护姿态:商用VPN、专用浏览器配置文件、稳定角色库中已培养成熟的角色——而非新角色,因为论坛会员列表显示加入日期。
关键的替代方案:论坛直接封禁了VPN的IP范围。无需升级工具,通过存档途径()获取了缓存的帖子页面,包含所需的大部分信息,完全未与目标接触。暴露程度分级为无接触。
read-deleted-pages仍需查看一个实时资料页面。角色从消费者网络而非VPN登录,在论坛的工作时段查看资料后离开。该论坛无“谁查看了我”的功能,因此暴露程度分级为匿名接触——需注明管理员仍可查看访问日志。
未执行的操作:查看该人员的职业社交平台资料,因为该平台会发送通知。原本要通过该操作回答的问题被列入报告的未解答部分。惊动调查对象的代价远大于一个未解答的次要问题。
Pivots
关联操作
OPSEC is a precondition, not a producer of selectors. Run it before
, , , and
any interactive step in or . Check avatars with
, strip uploads with , prefer
to live visits, and log exposure events so
can state what the subject may know.
pattern-of-life-from-socialshunt-a-handlefind-leaks-in-the-wildfind-anyonex-ray-a-companyfind-the-original-imagesecrets-in-file-metadataread-deleted-pageswrite-the-intel-briefOPSEC是前提,而非标识符的生成器。在执行、、,以及或中的任何互动步骤之前,先进行OPSEC检查。使用检查头像,使用清除上传文件的元数据,优先使用而非实时访问,并记录暴露事件,以便说明调查对象可能知晓的信息。
pattern-of-life-from-socialshunt-a-handlefind-leaks-in-the-wildfind-anyonex-ray-a-companyfind-the-original-imagesecrets-in-file-metadataread-deleted-pageswrite-the-intel-briefLegal and ToS notes
法律与服务条款注意事项
Say this plainly: fake accounts violate most platforms' terms of service.
Accurate-information requirements are near-universal, the accounts get banned,
and the ban can take your collection with it. Terms breach is generally a
contract matter rather than a crime, but the boundary between breaching terms
and unauthorized access is jurisdiction-specific and has been litigated both
ways. Decide with counsel whether your mandate covers it, and record it.
Impersonating a real, identifiable person is a far more serious matter than
an invented persona — a number of jurisdictions criminalise online impersonation
specifically (California Penal Code § 528.5 is one example), and it exposes you
to defamation and civil claims. Impersonating a law-enforcement officer,
government official, or lawyer is a criminal offence in its own right in many
places, including under US federal law, and no investigative mandate covers it.
Also: a persona is personal data processing under GDPR-style regimes when used
to collect on living people, and the persona's own conduct is attributable to
your organisation. See ../../ETHICS.md. If you cannot justify
the persona in writing, do not create it.
明确说明:虚假账户违反大多数平台的服务条款。 提供准确信息的要求几乎是普遍的,虚假账户会被封禁,封禁会导致你收集的信息丢失。违反服务条款通常是合同问题而非犯罪,但违反条款与未授权访问的界限因司法管辖区而异,且已有相关诉讼。需与法律顾问确认你的任务是否涵盖此类操作,并做好记录。
冒充真实可识别的个人比使用虚构角色严重得多——许多司法管辖区专门将在线冒充列为犯罪(例如《加州刑法典》第528.5条),这会让你面临诽谤和民事诉讼。冒充执法人员、政府官员或律师在许多地方本身就是刑事犯罪,包括美国联邦法律,任何调查任务都不允许此类操作。
此外:在GDPR类监管制度下,使用角色收集活人的信息属于个人数据处理,角色的行为可归因于你的机构。参见../../ETHICS.md。如果无法书面证明创建角色的合理性,请勿创建。