# すべてのチャットを横断的に調査する

Canonical page: https://phishdestroy.github.io/TgWitness/ja/docs/cases/

チャンネル、グループ、プライベートチャット、ボットを横断して事件全体を処理します。証拠の収集、関連付け、再構築、そして引き渡しを行います。

この手順書では、架空のインシデントを1件、その全経過に沿って追跡します。実際の収集、検索、人物プロファイル、およびエクスポート機能を使用しています。ケースマップはドキュメントの例であり、ご自身の結論やケース登録はアプリケーション外で管理されます。

実例／支払い先が変更されたケース

### 1件のインシデント。4つの会話。再構築すべき痕跡。

あるチャンネルの告知がボットへのリンクを示しています。運用グループが新しい支払いリンクについて議論しています。非公開のフォローアップでその内容が繰り返されています。その後、告知が編集され、グループメッセージが消えてしまいます。

各バージョンは誰が投稿したのでしょうか？そのリンクはどこに表示されましたか？どのファイルが保存されましたか？何が、いつ変更されましたか？

履歴の読み込み、オプションのAIによるソースレビュー、MCP、OCR、および送信用Webhookについては、「[アーカイブの操作」](https://phishdestroy.github.io/TgWitness/ja/docs/archive/)を参照してください。

## 1. アカウント全体を網羅するように設定する

1. [収集用アカウントを、専用のワークスペースに接続してください](https://phishdestroy.github.io/TgWitness/ja/docs/accounts/)。案件番号、アカウントID、ワークスペース名、および署名鍵のフィンガープリントを、案件メモに記録してください。
2. 「オープン**ソース」→「監視範囲」→「調査モード**」。**アカウント全体**、4種類の情報源すべて、および**自身のアクション**を確認します。このプリセットを使用すると、新しい情報源のプロファイルと、その**最新200件の表示可能なメッセージ**を保存できます。**「範囲を保存」**を押して、範囲の確認を完了してください。
3. **「チャットを読み込む」**をクリックしてください。ソースをアカウントのダイアログ一覧と比較し、除外項目を確認してください。「**パラメータ」→「アカウントの一覧から読み込むチャット」**で、必要に応じて初期の一覧制限を調整してください。デフォルトは1,000件のダイアログですが、最大20,000件まで設定可能です。 制限を超えるチャットは、アクティブになった時点で検出されます。
4. 「**記録設定**」で、「**表示されているすべてのアクティビティ」**を選択し、保存してください。添付ファイルの種類、サイズ制限、および空きディスク容量を確認してください。設定を信頼する前に、監視を開始し、制御されたメッセージ、編集、削除を検証してください。

チャンネルグループプライベートチャットボット

1つのアカウント／1つの署名鍵**選択されたアカウントの公開アクティビティすべて → 1つのジャーナル**

メッセージ・編集・削除通知・表示されたリアクション・メンバーシップのイベント・自身のアクション

「アカウント全体」とは、このアカウントがアクセス可能なチャットを、設定されたソースの種類や除外条件を含めてカバーするものです。シークレットチャットは対象外となります。新しいダイアログは更新が届くたびに追加されます。このモードを有効にしても、既存のすべてのチャットの過去の履歴が自動的に完全にダウンロードされるわけではありません。

## 2. 履歴を取得し、ファイルを保存する

調査全体にわたる情報源登録簿を作成します。各チャットについて、一意のID、タイトル、アカウント、アクセス権限／役割、リアルタイム記録開始日時、履歴取得日時、メディア結果、および既知の欠落情報を記載した行を作成します。関連する結果を確認した後で初めて、その情報源を「取得済み」としてマークしてください。

| 要件 | パネルでの操作 | 提供内容 |
| --- | --- | --- |
| 有効化されたチャット全体の履歴 | 出典 → 履歴をすべて読み込む | 現在の主な機能：利用可能な過去のメッセージはワークスペースのジャーナルに記録され、一時停止・再開機能や署名付き進捗レポートが利用可能です。[履歴ガイド](https://phishdestroy.github.io/TgWitness/ja/docs/reference/history/)。 |
| ジャーナル内の既存のチャット履歴 | ソース → 記録設定 → 履歴スナップショット | 最近表示されたメッセージは、署名付き観測データとして記録されます。デフォルトの上限は500件ですが、「**パラメータ」→「最大履歴スナップショット」**で最大10,000件まで増やすことができます。 |
| 1つのチャットにおける、現在表示されている履歴のすべて | チャット全体のエクスポート → チャット全体をエクスポート、または チャット → チャットをエクスポート | `chat.json`および`chat.html`を含む、個別の署名付きバンドルです。ソースごとに繰り返し実行し、完了／失敗の結果を保持してください。 |
| 新しいチャットが表示された際の状況 | 監視範囲 → 新しいチャットやボットが出現したとき | 送信者のプロフィールと、最近表示されているメッセージ最大1,000件が記録されます。調査モードでは200件が選択されます。既存のチャットについては、遡ってこの記録が行われることはありません。 |
| 添付ファイルのバイト数 | 表示可能な添付ファイルのダウンロード + ファイル種別ごとの制限 | `media.saved`、そのSHA-256ハッシュ値、およびバイト数を必ずご確認ください。キューに入れられた、スキップされた、または失敗したダウンロードは、保存されたファイルとはみなされません。 |

チャットの完全なエクスポートは独立したスナップショットであり、その履歴全体がジャーナルやユーザープロフィールにインポートされるわけではありません。TgWitness内で検索が必要な過去のデータについては、「有効なソース全体から**履歴を読み込む**」機能、または範囲を限定したジャーナルスナップショットをご利用ください。実行を開始する前に、ソースリストを確認してください。

実際の事例では、告知チャンネル、運用グループ、ボットとの会話、およびプライベートでのフォローアップを取得します。請求書の添付ファイルのバイトデータとハッシュ値を保存します。現在利用可能な履歴では、キャプチャ前に削除されたメッセージや、Telegramがもはや返さない中間編集内容を復元することはできません。

## 3. 展開する会話と自身の行動を記録する

事件の進展に合わせて監視を継続してください。進行中の事件に関するチャットを優先情報源としてスターを付け、[**記録設定] → [再確認]** で優先度やその他の情報源の再確認を設定してください。作業の進捗に合わせて、`recheck.completed`、継続的なキャッチアップ、FloodWait、およびメディアの成果を確認してください。

「**チャット」→「プロフィール」→「プロフィールを今すぐ保存」**を選択すると、現在の情報源の説明、ボットコマンド、およびTelegramから返されるその他のメタデータを保持できます。この情報源プロフィールは、ジャーナルのメッセージから構築される人物プロフィールとは別物です。

**事件調査の一環として、ボットをフォローするか、招待を受け入れること**

1. 「**チャット**」**→「Telegramリンクを開く」**で、まずプレビューを保存してください。元のリンクと表示されたプレビューが、署名付きの記録となります。
2. 調査の必要性に応じて、**`Join / open`**コマンドを実行すると、ソースへの参加または開封**が行われ**、指定された開始パラメータを用いてボットが起動します。保留中の参加リクエストは、記録上も保留状態のままとなります。
3. 記録が必要な操作については、パネルのテキスト返信機能、またはサポートされている**「Press」ボタン**コントロールをご利用ください。ジャーナルには、返されたコールバックテキストやURLを含め、`interaction.requested`および`interaction.result`が保持されます。

これらの制御機能は、Telegram上で実際の操作を実行します。別のTelegramアプリで押されたコールバックは、コレクターには認識されませんが、ボットによるその後のメッセージや編集は認識される場合があります。Webアプリ、決済、および電話や位置情報の要求は、ミニクライアントの範囲外となります。

## 4. チャット間の人物、リンク、ファイルを追跡する

1. **ジャーナル**を開き、ソースフィルターを「**すべてのソース**」のままにして、特徴的なフレーズ、ドメイン、ユーザー名、または保存済みの識別子を検索してください。一致した各レコードを開き、そのチャット、メッセージID、およびジャーナルのシーケンス番号を記録してください。
2. 対象のチャットを確認するには、**「チャット」→「ユーザー」→「プロフィールを表示」**の順に選択し、対象者を選択してください。名前／ユーザー名の履歴、返信の関連性、アクティビティ、**および「関連項目」**にある他の監視対象チャットや抽出されたリンク、ウォレット、電話番号などを確認できます。引用されたジャーナル記録を開いてください。
3. このワークスペース内の他のチャットにおいて、同じ数値のTelegramユーザーIDを追跡してください。一致する名前、ウォレットの言及、または類似したアバターは、確認すべき手がかりとして扱ってください。言及されたアドレスは所有権を証明するものではなく、類似したアバターは同一人物であることを証明するものではありません。
4. 各レコード間で保存された添付ファイルの SHA-256 値を比較します。ハッシュ値が一致している場合、保存されたファイルのバイト単位での同一性が保証されます。誰がそれらを共有したかについて結論を出す前に、関連するメッセージおよび送信者の記録を確認してください。

ケースマップ / 参照先を追跡する架空の事例・実際のグラフではありません

チャンネル / お知らせ**原文 → 編集後の翻訳文**

記録 #101、#188 メッセージ #84 · 送信者不明

グループ / 運用**ユーザー71001が新しいリンクを投稿しました**

記録 #146 · メッセージ #309 保存済みファイル受領確認 #151

BOT / 注文に関する会話**そのリンク先へ移動するボタンがあります**

記録 #173 · メッセージ #12 「戻る」ボタンのメタデータ

非公開 / フォローアップ**ユーザー71001が宛先を繰り返し入力しています**

記録 #205 · メッセージ #922 保存済みファイル受領証 #209

4つのチャットから、それぞれ異なる観察結果が得られています。すべての接続について、元の記録を追跡してください。送信者が特定されていない限り、チャンネルへの投稿をユーザー71001に割り当てないでください。

この手順説明で使用されている数値IDおよび記録参照番号は、架空のものです。この図は、検索、プロフィール、記録の検査を用いたアナリストのワークフローを説明するものであり、本アプリケーションは全体的な調査グラフを生成するものではありません。

| 接続 | 補足情報 | 維持すべき結論 |
| --- | --- | --- |
| 同じTelegramアカウント | グループ #146 およびプライベートチャット #205 のユーザー ID 71001 | 両方のチャットに、同じ送信者IDが投稿されています。実在の人物であるかどうかは、別の問題となります。 |
| 繰り返し先 | #146の`pay.example.invalid/new`、ボタンのメタデータ #173、編集された投稿 #188 および #205 | 同じ宛先が、確認された4つの文脈に登場しています。これだけでは、誰がそれを管理しているかを特定することはできません。 |
| 同じファイルのバイト数 | 完了したメディア受信記録 #151 および #209 における SHA-256 値が完全に一致しています。 | 保存された2つの添付ファイルは、バイト単位で同一です。ファイル名やサムネイルだけでは、これを立証することはできません。 |

ユーザープロフィールには、そのチャットに保存されたメッセージを持つ作成者が記載され、*同じワークスペースの*ジャーナル内の他のチャットとの関連性が示されます。これらは完全なメンバーディレクトリではありません。アバターのハッシュ値は別のローカルキャッシュから取得されます。プロフィールの引用数については、「**パラメータ」→「事実ごとの引用レコード数」**で設定可能な制限があります。

## 5. 時系列を再構築し、欠落部分を明記する

**「Chats」**では、保存されたバージョンと、それに対応する**「Journal」の記録 #…** リンクをご確認ください。**「Journal」**では、**「All sources」**に加え、**「Edits」**、**「Deletions**」、**「Coverage」**をご利用ください。Telegramが提供する日付と、収集者が記録した時刻の両方を用いて、事件のタイムラインを作成してください。

1. 09:00 · #101**キャプチャされたチャンネルの投稿**

   元のリンク先はそのまま維持されています。
2. 09:12 · #146 / #151**グループが別のリンクを紹介しています**

   ユーザー71001が投稿し、添付ファイルのダウンロードが完了しました。
3. 09:16 · #173**ボットは同じ宛先を表示します**

   保存されたキーボードのメタデータには、そのリンクが含まれています。
4. 09:20 · #188**チャンネルの告知の変更点**

   元の記録と編集後の記録の両方が残されます。
5. 09:24 · #205 / #209**非公開のフォローアップでも同様の内容が繰り返されています**

   保存された添付ファイルのSHA-256ハッシュ値は、#151と同じです。
6. 09:28 · #231**グループ削除の通知が届きました**

   以前の指摘は依然として当てはまります。削除者や正確な削除時刻は提供されていません。

観察時間や参照情報の例を示しています。これらのエントリの間には、その他のジャーナル記録が存在します。

ジャーナルの順序は受信順であり、必ずしもTelegramでの元の操作順とは限りません。新しいリアルタイムメッセージの後に、古い履歴のスナップショットが到着する場合もあります。リアルタイムの観測結果、スナップショット、復元されたメッセージ、削除通知、および「再確認時に欠落」しているものを明確に区別してください。記録に空白がある箇所には、明示的に「不明」と記載してください。後のスナップショットがあっても、その空白は消去されません。

## 6. 他の収集用アカウントにも適用する

アカウントごとにワークスペースを追加し、範囲と履歴の記録を繰り返してください。各アカウントのメンバーシップ／役割および署名鍵のフィンガープリントを記録してください。識別子はワークスペースおよびチャットごとに特定されるようにしてください。同じメッセージ番号であっても、アカウントを横断するグローバルな識別子ではありません。

ケースノートや分析ツール内の関連する観察結果を比較する際は、各行のアカウントおよびジャーナルの参照情報を保持してください。TgWitnessでは現在、ワークスペースを横断したグローバル検索、統合タイムライン、人物関係図、またはケースアーカイブは提供しておりません。1つのチャンネルまたはスーパーグループのマルチアカウント完全エクスポートは独立した機能であり、すべてのアカウントのジャーナルを統合するものではありません。

長期にわたる作業の際は、以前の境界を維持するために[独立した](https://phishdestroy.github.io/TgWitness/ja/docs/witness/)証人を追加してください。制御された配信パイロットを活用し、アカウントのキャプチャ経路と可視性を検証してください。

## 7. 完全かつ検証可能な事件資料一式を提供する

各ワークスペースから、署名付きジャーナルのZIPファイルをエクスポートします。このファイルには、パネル検索フィルターの設定にかかわらず、記録されたジャーナル全体が含まれています。関連する人物のプロフィールを個別にエクスポートし、各チャットの履歴バンドルをすべて保持するとともに、添付ファイルの証拠も完全に保存します。

```
CASE-001/                         # assembled by the analyst
  case-notes.md                   # question, findings, alternative explanations
  sources.csv                     # every chat, role, acquisition result and gap
  timeline.csv                    # account + chat + message + seq + both times
  workspace-A/
    evidence.zip                  # complete signed observation journal
    retained-checkpoint.json
    profiles-operations.json      # separately signed people profiles
    history-channel.zip           # signed current-history export
    history-group.zip
    verification.txt
  workspace-B/                    # separate journal and trusted fingerprint
  witness/                        # retained checks, journal and signed posts
  SHA256SUMS                      # hashes of the delivered files
```

別のチャネルを通じて、信頼できるフィンガープリントを保持してください。信頼できるインストール環境から、各アーティファクトをそのワークスペースのIDと照合して検証してください：

```
python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json
python -m tgwitness.verify profiles-operations.json --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --evidence evidence.zip
python -m tgwitness.verify history-channel.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256
```

実際の検証結果を確認し、オリジナルデータを保存するとともに、調査結果とともにカバレッジレポート、取得失敗情報、転送記録を保持してください。最上位のケースフォルダおよびアナリストの結論は外部でまとめられますが、個々のTgWitnessアーティファクトにはそれぞれ独自の署名が付与されています。

## 他の調査においても、同様の方法をご活用ください。

**ボットによる注文または支払いの紛争**

**質問：**そのボットは何を約束し、どのボタンのリンク先が提供され、その後何が変更されたのでしょうか？

**追跡：**チャンネルへの投稿 → 保存されたボットリンクのプレビュー → ボット起動パラメータ → メッセージおよびキーボード入力履歴 → パネルから発行されたコールバック受信記録 → グループ／プライベートでのフォローアップ。各宛先をその送信元レコードと照合し、プロフィール説明および添付メディアを保持します。

**提供内容：**確認されたオファーと応答のタイムライン、情報源の参照先、および検証済みのエクスポートデータです。表示されている支払いリンクは、支払いが行われたことの証拠にはなりません。

**チャット間のインシデント後に削除されたメッセージ**

**質問：**関連するメッセージが消える前に、すでにどのようなことが確認されていたのでしょうか？

**追跡対象：**影響を受けたすべてのチャット → 元のメッセージ → 配信された編集内容 → 削除通知、またはその後の再確認で欠落が確認された結果 → 保存された添付ファイル → 当該インシデントに関する報道。独立したアカウントによる観察結果を、その可視性に関する記述と照らし合わせて比較してください。

**提供内容：**保存されたバージョンの時系列と、明確に特定された「不明」の期間です。履歴に存在しないメッセージを、特定の個人がそれを削除した証拠として扱わないでください。

**ある参加者が、複数のチャットで名前を変えています**

**質問：**名前が変わっているにもかかわらず、どの観測されたアクティビティが同じTelegramアカウントに属するものでしょうか？

**追跡：**数値の送信者ID → 保存された名前／ユーザー名の履歴 → 返信 → ワークスペース内の他のチャット → 言及された宛先および保存されたファイル。主張されたすべての接続についてソースレコードを確認し、類似アカウントは区別して扱ってください。

**提供内容：**引用されたアカウント活動のタイムラインと、関係性に関する個別の仮説です。名前の類似性やアバターのpHashは手がかりであり、身元の証明ではありません。
