mcpField
I
investigate-anything

investigate-anything

github.com/useosint生産性571.8k 回インストール12 週間前に更新
リポジトリ

investigate-anything について

オープンソース調査を計画・実施するための基礎スキルです。対象や問い、権限の境界を明確にし、調査範囲、収集計画、情報源の評価、競合仮説の検証、終了判断までを扱います。

主な機能

  1. 01調査の権限範囲と境界を設定
  2. 02曖昧な依頼を回答可能な問いに変換
  3. 03情報源と侵襲性に基づき収集を計画
  4. 04情報源と情報内容を別々に評価
  5. 05競合仮説に照らして証拠を検証

活用シーン

  1. 01取引先の所有関係を調査
  2. 02アカウントが特定人物のものか確認
  3. 03ドメインと他の主体との関係を評価
  4. 04検証可能な結論と終了条件を設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/useosint/skills --skill investigate-anything

インストール後、Claude Code で/investigate-anythingを入力して読み込まれたか確認します。

同梱ファイルreference/ach-worksheet.mdreference/source-grading.md

詳細

あらゆることを調査する

最初の入り口です。後続のすべての作業は、先に行うべき検討より速く進みます。そのため、調査の失敗の多くは情報収集の失敗ではなく、問いの立て方の失敗です。ある名前を対象に40個のツールを実行して、別人について自信たっぷりの調査書を作成してしまうこともあります。ここで行うのは、どの問いに答えるのか、何を答えとするのか、そして何が分かれば自分の見立てが誤りだと証明されるのかを決めることです。

基本用語

このリポジトリ内のすべてのスキルで使う用語です。定義はここにのみ記載します。

  • セレクター — 識別可能なデータポイントのことです。氏名、ハンドル、メールアドレス、電話番号、ドメイン、IPアドレス、ウォレット、ハッシュ、ナンバープレート、IMO、会社番号などが該当します。
  • ピボット — あるセレクターから新しいセレクターへとたどることです(メールアドレス → 漏えい記録 → 使い回されたハンドル → フォーラムのプロフィール → 本名)。調査とは、ピボットをつないだ連鎖です。ピボットを行うたびに、別人へと飛び移ってしまう可能性もあります。

ステップ 1 — 許可された範囲

../../ETHICS.mdを読み、次の5項目を書き出します。

  1. 対象 — 似た名前の別人と区別できる、具体的な対象を記載します。使用する識別情報を書き出します(「会社09xxxxxxの取締役であるJ. Okonkwo」であり、「J. Okonkwo」だけではありません)。
  2. 目的 — ステップ 2を参照してください。
  3. 許可範囲 — セレクターの種類、情報源、対象への接触が許可されているかどうかを記載します。
  4. 禁止範囲 — 行わないことを具体的に記載します。対象が所有するものへのログイン、対象本人や家族への連絡、医療または宗教に関するデータの取得、目的と関係のないセレクターの利用などが該当します。
  5. 管轄 — あなた、対象、データに適用される法律の管轄を記載します。EU/英国では、生存する人物に関する散在した公開情報を集約することは個人データの処理にあたり、適法な根拠とデータの最小化が必要です。

誰がどのような根拠で許可したのか説明できない場合は、中止してください。「慎重に進める」のではなく、中止してください。許可されていない調査は、後から優れた報告書を書いても正当化できません。

完了条件: 5項目すべてを書き出し、どの行為をすると禁止範囲を逸脱するか具体的に挙げられること。

ステップ 2 — 答えられる問いを立てる

「Xについて調べる」は目的ではありません。中止条件がないため、飽きたときや、結果らしく感じる何かを見つけたときに調査が終わってしまいます。対象、判断にどう役立てるか、結論を出す条件が明確になるまで依頼内容を書き直します。

曖昧な問い答えられる問い
この会社を調査するこのサプライヤーには制裁対象となる非開示の所有者がいるか。また、請求書に記載された住所で事業を運営しているか。
このアカウントは誰のものか@handleの運営者は、名前が挙がっている元従業員と同一人物か、それとも別人か。
このドメインを調べるexample.comは、フィッシング用ドメインと同じ事業者が運営し、同じインフラを共有しているか。

次に、否定となる条件を書きます。どのような調査結果なら「いいえ」となるのかを明確にします。否定となる結果があり得ないなら、その問いは反証不可能であり、何を見ても自分の見立てを裏付けることになってしまいます。

完了条件: 目的を1文で表し、「いいえ」と答える場合にどのような結果になるかを書き出していること。

ステップ 3 — 収集を始める前に計画を書く

あてもなくピボットを続けると、ピボットのたびに何かが得られるため、生産的に感じられます。収集計画では、各問いに対して、答えを得られる可能性が最も高い情報源を割り当て、コストと侵襲性の順に並べます。これにより、何の答えにもつながらない興味深い枝道に3時間も費やしていることに気づけます。

各問いについて、答えを示す指標、その指標を得る情報源またはスキル、受動的な方法かどうか、結果が得られなかった場合にどうするかを記載します。常に受動的な方法を優先します。対象に接触するものに進む前に、アーカイブ、登録情報、ログを調べ尽くしてください。得られた情報に応じて計画を見直してかまいません。重要なのは、計画からの逸脱を把握できるようにすることです。

完了条件: 目的に関する各問いに、情報源またはスキルが指定され、最初に試す方法と代替手段の順序が決まっていること。

ステップ 4 — 開始セレクターで振り分ける

ワークフロースキルの名前を入力します。

該当するもの実行するもの
個人名または実在の人物find-anyone
企業、ブランド、または請求書上の事業体x-ray-a-company
ドメイン、ウェブサイト、または IPrecon-a-domain-passively
ユーザー名またはハンドルhunt-a-handle
メールアドレスwhat-an-email-reveals
電話番号whose-number-is-this
特定または検証したい写真や動画where-was-this-taken
すでに本人のものと判断しているソーシャルプロフィールpattern-of-life-from-socials

明確な開始点がありませんか? 一意で、インデックス化されているセレクターから始めましょう。名前やハンドルは重複したり他人に取得されたりするため、メールアドレスやドメインのほうが適しています。

実施内容を説明すると、テクニックスキルが読み込まれます。対象者が管理するものに触れる前に、investigate-without-getting-made を実行してください。最初のピボットから、graph-the-network を使ってケースをグラフにまとめます。

完了条件:振り分けられたワークフローを実行し、出典とともに調査結果を記録していること。

ステップ 5 — 情報源は後回しにせず、収集時に評価する

アドミラルティ方式(NATO 方式)を使います。すべての項目について、情報源の信頼性を示す文字と情報の信頼性を示す数字を、それぞれ独立して評価します。

  • A~F の文字:情報源の実績とアクセス状況を示します。A = 実績があり、信ぴょう性に疑いがない。F = 評価できない。
  • 1~6 の数字:独立した別の情報源で内容が確認されているか、内容自体に論理性があるかを示します。1 = 別の情報源でも確認済み。6 = 評価できない。

情報源の独立性が重要です。企業登記の提出書類は B2、その提出書類を報じる信頼できる新聞記事も、よくて B2です。その新聞記事を繰り返す匿名のフォーラム投稿は D3であり、新たな裏付けにはなりません。情報源が主張するものではなく、実際に確認した情報源を評価してください。完全な評価表、具体例、よくある誤評価については、 reference/source-grading.md を参照してください。

完了条件:保持するすべての調査結果に、2文字の評価が付いていること。

ステップ 6 — 仮説同士を照合する

競合仮説分析(ACH)は、調査における自然な進め方、つまり最もありそうな筋書きを選び、裏付けを探すというやり方が、必ず成功してしまうためにあります。もっともらしい筋書きなら、どれにも簡単に裏付けが見つかります。

ありふれたものも含め、すべての仮説を列挙します(「同姓同名の別人である」「アカウントが売却された」「共有 IP は共有ホスティングである」など)。仮説ごとに証拠を並べたマトリクスを作り、各セルでは、その証拠が当該仮説と矛盾しないかだけを確認します。そのうえで列ごとに検討します。最も多くの裏付けがある仮説ではなく、矛盾が最も少ない仮説が有力です。すべての仮説と矛盾しない証拠には、仮説を見分ける価値がありません。対象者が LinkedIn を利用していることは、どの仮説を支持するかの判断材料にはなりません。診断力のある項目が少数あれば、矛盾しない項目が何百件あっても上回ります。ワークシートと記入例については、reference/ach-worksheet.md を参照してください。

完了条件:少なくとも 1 つ、自分が望んでいなかった仮説を挙げ、支持する仮説を覆す証拠として何があり得るかを記録していること。

うまくいかないケース

確証バイアス(OSINT 版)。 名前を渡され、その人物は物流業界で働いていると聞かされます。物流業界のプロフィールを見つけると、同姓同名の別人ではないかという疑問を持つのをやめてしまいます。候補者を見つけるために使った識別要素を、検証する段階では当てはめなくなることが兆候です。対策:検索する前に、対象者に必ず当てはまる属性と、当てはまってはならない属性を書き出します。すべての候補者を両方の観点から確認します。候補者を除外したことも調査結果であり、レポートに記載します。

循環報告。 3 つの情報源が一致したので、確定と評価します。しかし、その 3 つがすべて同じブログ記事を転載している場合や、同じアグリゲーター、または同じ流出データセットを参照している場合があります。これは、確信を持って誤った帰属をする最も一般的な原因であり、調べないかぎり見えません。裏付けとなる情報源ごとに、その情報源をたどってください。公開日を時系列で確認し、同一の言い回しや転載された誤字がないか調べます。また、「独立した」人名検索サイトが同じブローカーのデータフィードを再販していないか確認します。dig-through-data-brokers を参照してください。独立しているとは、ウェブサイトが異なることではなく、収集方法が異なることです。

古いデータを最新情報として提示する。 登記簿、WHOIS、ブローカーの記録に付されているのは、取得時の日付であり、今日の事実ではありません。すべての事実の横に確認日を記録し、read-deleted-pages を使ってページをアーカイブしてください。

識別子のずれ。 ピボットのたびに、対象人物が入れ替わってしまうリスクがあります。成功率がそれぞれ 90% のピボットを 5 回つなげると、成功は五分五分になります。再度、対象者とのつながりを確認してください。ピボットのたびに、新しい対象を対象者に結び付ける、確認済みの識別子を明示します。

ツールの出力を証拠として扱う。 列挙ツールのヒットリスト、侵害データのアグリゲーターによる一致結果、顔検索のスコアは、いずれも手掛かりです。ツールが本人確認をしたわけではありません。文字列やベクトルを照合しただけです。

確信度の評価

手法スキルに別の指示がないかぎり、リポジトリ全体に適用されます。

  • 確認済み — 真に独立した 2 つ以上の情報源(サイトが異なるのではなく、収集方法が異なるもの)、または署名入りの登記申請書などの権威ある一次記録が 1 つあり、矛盾する情報がない。
  • 有力 — 強力な情報源が 1 つある場合、または循環報告の確認を経て、代替仮説の検証でもそれらの可能性が低いと判明した、複数の弱い情報源がある場合。
  • 未確認 — 裏付けのない手掛かりが 1 つだけある場合。レポートにその旨を記載します。後続の文章がそれに依存しているからといって、黙って評価を引き上げてはいけません。
  • 否定 — 矛盾が確認されたもの。記録し、その理由を記載します。

いつ終了するか

判断に必要な確信度で目的に関する問いに答えられたとき、または入手可能なオープンソースでは答えられないことを文書化し、答えを得るために必要なもの(記録の請求、召喚状、聞き取り調査など)を示せたときに終了します。「A、B、C を確認しましたが、X を立証できませんでした」は成果物であり、多くの場合、誠実な結論です。スコープの境界を越えた場合も終了してください。これは再承認が必要な事態であり、作業の途中で判断してよいことではありません。

完了条件 — 目的に関する問いに回答するか、回答不能であることを文書化し、write-the-intel-brief を実行していること。

実例

目的:この請求書に記載された仕入先 Nordvale Trading は、営業禁止対象の事業体の元取締役によって支配されているでしょうか?識別要因:取締役の生年月の月と年。

x-ray-a-company は、取締役「A. Kestrel」の記録を含む登記情報を返します。生年月は一致し、住所は私書箱転送サービスの施設です。人物検索サイト2つと企業情報サイト1つは、いずれも A. Kestrel の同じ自宅住所を示しています。一見、裏付けがあるように見えますが、それぞれをたどると、3つすべてが1つのブローカーフィードに由来する、通りの名前の同じ誤記を含んでいます。循環的な情報であり、D3 と評価して除外します。

競合する仮説:(1)同一人物、(2)別人の A. Kestrel、(3)名前を名義人として使用。診断項目:営業禁止対象の事業体の提出書類と Nordvale の提出書類には、同じ珍しい会計事務所が記載されており、請求書のフッターにあるドメインは、営業禁止対象の事業体の旧サイトと登録者のメールアドレスを共有しています(who-owns-this-domain)。これは(2)とは矛盾し、(1)と(3)とは整合します。名義人の仮説は未検証であることを明示し、ギャップとして、この管轄区域では実質的所有者が開示されていないことを示したうえで、「可能性が高い」と報告します。

ピボット

すべてのワークフローは、実行中に graph-the-network に情報を送り、最後に write-the-intel-brief に情報を送ります。セレクターからスキルへのルーティングはステップ4です。各手法スキルには、それぞれのピボットが記載されています。

法的注意事項

公開されているからといって、利用が許可されているわけではありません。公開された個人データの集約にもデータ保護法が適用され、集約した情報は個々の情報よりも機微性が高くなります。データが公開されている場合でも、自動収集には利用規約が適用されます。また、スクレイピングをめぐる紛争では、ページが閲覧可能だったかどうかではなく、認可と契約が争点となります。書面による許可なく、対象者が所有するシステムに対して認証、調査、またはトラフィックの送信を行わないでください。

コメント