# 調査モード

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

チャンネル、グループ、プライベートチャット、ボットにまたがるアカウント全体の調査について、調査範囲の設定から検証済みのケースパッケージの作成までを網羅しています。

チャンネル、グループ、プライベートチャット、ボットを横断して、事案を 初期の取得段階から、引用されたタイムライン、検証可能な引き継ぎに至るまで追跡できます。インタラクティブなウェブサイト 版は `/docs/cases/` にあります。[プレビューの手順をご覧ください](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/PUBLISHING.md#preview-the-website-locally)。

## 事例：4つの会話にわたって目的地が変更されたケース

ある告知がボットを指し示しています。運用グループが新しい送金先について議論し、 ボットのキーボードにそれが表示され、非公開のフォローアップメッセージでそれが繰り返されます。 その後、その告知が編集され、グループメッセージが消えます。

疑問点は以下の通りです。変更の前後で何が確認されたか、どのTelegram アカウントが各項目を投稿したか、宛先がどこに表示されたか、どの添付ファイルのバイトが 保存されたか、そしてどのような間隔が不明のままであるか、ということです。

この例に登場するすべての名前、ID、時刻、およびジャーナルの参照情報は架空のものです。 ワークフローでは現在の機能が使用されています。ケースマップはあくまで例示であり、アプリケーションによって自動的に 生成されたグラフではありません。

フローチャート · チャンネル → ワークスペース・ジャーナル; グループ → ワークスペース・ジャーナル; プライベートチャット → ワークスペース・ジャーナル; ボット → ワークスペース・ジャーナル; ワークスペース・ジャーナル → すべての情報源を検索する; ワークスペース・ジャーナル → 記録の参照先を含む人物プロフィール; ワークスペース・ジャーナル → 保存されたバージョンと添付ファイルの受信確認; すべての情報源を検索する → アナリストのタイムラインおよび情報源登録簿; 記録の参照先を含む人物プロフィール → アナリストのタイムラインおよび情報源登録簿; 保存されたバージョンと添付ファイルの受信確認 → アナリストのタイムラインおよび情報源登録簿; ワークスペース・ジャーナル → 署名付き証拠 ZIP; アナリストのタイムラインおよび情報源登録簿 → 個別に検証済みの証拠資料を用いた案件の引き継ぎ; 署名付き証拠 ZIP → 個別に検証済みの証拠資料を用いた案件の引き継ぎ · チャンネル · グループ · プライベートチャット · ボット · ワークスペース・ジャーナル · すべての情報源を検索する · 記録の参照先を含む人物プロフィール · 保存されたバージョンと添付ファイルの受信確認 · 署名付き証拠 ZIP · アナリストのタイムラインおよび情報源登録簿 · 個別に検証済みの証拠資料を用いた案件の引き継ぎ

**図表をテキストで記述**

1. チャンネル → ワークスペース・ジャーナル
2. グループ → ワークスペース・ジャーナル
3. プライベートチャット → ワークスペース・ジャーナル
4. ボット → ワークスペース・ジャーナル
5. ワークスペース・ジャーナル → すべての情報源を検索する
6. ワークスペース・ジャーナル → 記録の参照先を含む人物プロフィール
7. ワークスペース・ジャーナル → 保存されたバージョンと添付ファイルの受信確認
8. すべての情報源を検索する → アナリストのタイムラインおよび情報源登録簿
9. 記録の参照先を含む人物プロフィール → アナリストのタイムラインおよび情報源登録簿
10. 保存されたバージョンと添付ファイルの受信確認 → アナリストのタイムラインおよび情報源登録簿
11. ワークスペース・ジャーナル → 署名付き証拠 ZIP
12. アナリストのタイムラインおよび情報源登録簿 → 個別に検証済みの証拠資料を用いた案件の引き継ぎ
13. 署名付き証拠 ZIP → 個別に検証済みの証拠資料を用いた案件の引き継ぎ

## 1. 事案を定義し、全容を把握する

1. 収集用アカウントを、専用のワークスペースに接続してください。外部のケースノートには、 ケース参照番号、アカウントID、ワークスペース、監視開始日時、および信頼できる 署名鍵のフィンガープリントを記録してください。
2. 「オープン**ソース」→「監視範囲」→「調査モード**」。このプリセットでは、「 **アカウント全体**」、「チャンネル／グループ／プライベートチャット／ボット」、「自身の操作」、「ソース プロファイル」、および新たに発見されたソースの「表示可能な最新の200件のメッセージ」が選択されます。 内容を確認し、**「範囲を保存**」を押して、範囲の確認を完了してください。
3. **チャットを読み込み**、そのソースをアカウントのダイアログ一覧と比較します。 「除外設定」を確認してください。 **「パラメータ」→「アカウントのリストから読み込むチャット数」は**、デフォルトで 1,000件に設定されており、最大20,000件まで指定可能です。リストの制限を超えるソースは、 アクティブになった時点で追加されます。実際に列挙された内容を記録してください。
4. 「**記録設定**」で「**表示されているすべてのアクティビティ**」を選択し、 監視設定を保存してください。添付ファイルの種類や制限、および空きディスク容量を確認してください。
5. 監視を開始します。制御された新しいメッセージ、編集、削除を検証し、その後、 テストの参照情報および発生したエラーを記録します。

「アカウント全体」の範囲では、保存された設定の範囲内で、アカウント上で確認可能なアクティビティを記録します。 秘密チャットにはアクセスせず、リンクされたすべてのグループに自動的に参加することもありません。また、 既存のすべての会話履歴を遡って記録することもありません。[「収集範囲」](https://phishdestroy.github.io/TgWitness/ja/docs/reference/collection/#observation-scope-chosen-chats-a-folder-or-the-whole-account)をご参照ください。

## 2. すべての情報源を網羅し、歴史的背景を把握する

チャットごとに1行ずつ、ソース登録簿を作成してください：

| 分野 | 記録 |
| --- | --- |
| アイデンティティ | ワークスペース、アカウントID、数値のチャットID、タイトル、およびタイプ |
| 可視性 | メンバーシップ／役割、アクセス権の確認の有無、除外事項 |
| リアルタイムキャプチャ | 開始時期、選択されたイベントの種類、およびその後のポリシー変更 |
| ジャーナルの履歴 | スナップショットの要求／完了状況、制限、時間、および記録の参照情報 |
| 全履歴 | チャットごとの署名付きエクスポートファイル名、境界、および完了／失敗 |
| 添付ファイル | メディアの受信状況、ハッシュ値、サイズ、およびスキップ／失敗の結果 |
| 対応範囲 | サービス停止、取り込みの不完全さ、FloodWait、利用できないメッセージ、その他の欠落 |

各情報源に応じて適切な取得方法を使用してください：

- **「Sources**」で**履歴をすべて読み込む**（現在の`main`）は、有効化されたソースから利用可能な過去の メッセージをワークスペースのジャーナルに読み込みます。一時停止／再開 および署名付き進捗レポートに対応しています。[履歴の取得を](https://phishdestroy.github.io/TgWitness/ja/docs/reference/history/)参照してください。
- **履歴スナップショット**は、最近表示されたメッセージを観察ログに保存します。 デフォルトの上限は500件ですが、**「パラメータ」→「最大履歴スナップショット」**で これを10,000件まで増やすことができます。これらは現在の履歴の観察結果であり、編集履歴を再構築したものではありません。
- **「チャット全体をエクスポート」→「チャット全体をエクスポート」**、または**「チャット」→「チャットをエクスポート**」を選択すると、 現在表示されている1つのチャットの履歴が、個別の署名付き`chat.json`／ `chat.html`バンドルとして取得されます。案件に関連する情報源についてこの操作を繰り返し、各結果を保存してください。
- **新しいチャットやボットが出現した際**、そのプロフィールと最大1,000件の最近の メッセージを保存できます。調査モードでは200件が選択されます。既存のチャットについては、 モードを有効にしても、遡ってそのデータを取り込むことはできません。
- **表示可能な添付ファイルをダウンロードすると**、設定されたポリシーに基づきバイト数が保持されます。 SHA-256およびバイト数が記載された、完了済みの`media.saved`レシートが必要です。キューに入れられた ジョブ、サムネイル、またはファイル名は、保持される添付ファイルには該当しません。

チャット全体のエクスポートを行っても、ジャーナルやユーザープロフィールにはすべての メッセージが反映されるわけではありません。TgWitness内で分析が必要な履歴については、 **「履歴全体を読み込む」**または「範囲指定されたジャーナルのスナップショット」を使用してください。履歴の取得を開始する前に、 有効になっているソースリストを確認してください。いずれの方法でも、Telegramがもはや返さないデータは復元できません。

## 3. 変化し続ける事案と意図的なやり取りを保存する

進行中の事件に関連するチャットを優先的な情報源としてマークしてください。再確認の間隔、継続的な 追跡状況、およびメディアへの反映状況を確認してください。アカウントを使用中は、コレクターの監視を継続してください。 **「チャット」→「プロフィール」→「今すぐプロフィールを保存」**を使用して、 説明文やボットコマンドなどの情報源メタデータを保持してください。これは、保存されたメッセージから導き出される 人物プロフィールとは別物です。

情報源を追跡したり、ボットとやり取りしたりするケースについては：

1. **「Telegramリンクを開く」→「プレビューを保存」は、**指定されたリンクと、操作実行前の プレビューを記録します。
2. **「Join / open and observe」**は、join/openを実行し、指定された場合はボットのstart パラメータを送信します。承認待ちの参加リクエストは「pending」として記録されます。
3. パネルから送信されたテキスト返信およびサポートされているボタンの押下操作については、 `interaction.requested`および`interaction.result`が保持されます。コールバックの受信確認では、 返されたポップアップテキスト、アラートの状態、およびURLを保持することができます。

これらは実際のアカウント操作です。別のTelegramアプリでのコールバックの押下は、 収集ツールからは確認できませんが、その結果として送信されたメッセージや編集内容は確認できる場合があります。 ミニクライアントは、ウェブアプリ、決済、電話、位置情報のワークフローを実行しません。 正確な動作については、「[パネルの操作」](https://phishdestroy.github.io/TgWitness/ja/docs/reference/collection/#act-from-the-panel)をご覧ください。

## 4. チャット間の観察結果を関連付ける

「**Journal**」で「**All sources**」を選択し、記録されたコンテンツを検索してください。一致した レコードを開き、ワークスペース、チャット、メッセージID、シーケンス、およびレコードのハッシュを記録してください。

関連するチャットで、「**People」→「プロフィールを有効にする」**を開き、対象者のプロフィールを確認してください：

- 長期にわたり観測された名前／ユーザー名およびTelegramの数値ID。
- 返信の関係性には、元の記録への参照を含めます。
- **また、**このワークスペースのジャーナル内にある、そのIDが書き込みを行った他のチャットにも含まれています。
- アクティビティ、編集・削除履歴、および言及されたウォレット、電話番号、ユーザー名、リンク。
- 保存されたアバターのメタデータおよび類似のキャッシュされたアバター、ならびにそれぞれの出典元。

調査結果で派生プロファイルを使用する前に、引用された記録を開いてください。プロファイルの対象は、 メッセージが保存されている人物であり、グループの全メンバーではありません。**「パラメータ」→「事実ごとの引用記録数」 は**、参照リストの数を制限するものであり、基礎となるアクティビティの件数を制限するものではありません。 言及やアバターの類似性は手がかりであり、所有権や身元を立証するものではありません。

具体例：

| リンク | 記録 | サポート対象の観測項目 |
| --- | --- | --- |
| 同じ送信者アカウント | グループ #146 および非公開のフォローアップ #205 | いずれもTelegramの送信者ID「71001」を提供しています。 |
| 同じ宛先 | #146、ボットキーボード #173、チャンネル編集 #188、プライベートメッセージ #205 | すべてに`pay.example.invalid/new`が含まれていますが、所有権や管理権は特定されていません。 |
| 保存されたファイルは同じです | メディア受領書 #151 および #209 を完了しました | 保存されたバイトについて、SHA-256の値が完全に一致しています。 |
| チャンネルの出典 | #101 および #188 | 送信者が明記されていない限り、チャンネルへの投稿をユーザー71001によるものと見なさないでください。 |

添付ファイルのハッシュ値と、それに関連するメッセージの参照情報を比較してください。ファイルが同一である からといって、作成者、転送者、または共通の運営者が特定されるわけではありません。名前が同じで アバターが似ているというだけでは、2つのTelegram IDを1人の人物として結びつけることはできません。

## 5. チャット横断型のタイムラインを作成する

**「チャット**」に保存されたバージョンと、その**ジャーナル記録の「#…」**リンクをご利用ください。 **ジャーナル**では、「**すべてのソース**」に「**編集**」「**削除**」「**カバレッジ**」を組み合わせてください。 提供されている場合は「`source_at`」と「`observed_at`」の両方を保持してください。

| 観察期間の例 | 参考資料 | 所見 |
| --- | --- | --- |
| 09:00 | チャンネル #101 | 元の送信先が記録されました |
| 09:12 | グループ #146; メディア #151 | 新しい保存先が投稿されました。ファイルのダウンロードが完了しました。 |
| 09:16 | ボット #173 | キーボードは新しい宛先を指しています |
| 09:20 | チャンネル #188 | 告知文を編集しました。保存された両方のバージョンが残されています。 |
| 09:24 | プライベート #205; メディア #209 | 同じ送信者IDの宛先が繰り返され、同じファイルバイトが保持されています。 |
| 09:28 | グループ #231 | 削除通知を受信しました。削除者および正確な削除時刻は不明です。 |

これらの例示された参照の間に、その他の記録が存在する場合があります。シーケンス番号によって 観測順が定められますが、履歴のスナップショットにはより古いソース日付が含まれており、リアルタイムのイベントよりも 遅れて到着する場合があります。スナップショット、復元されたメッセージ、削除通知、および 再確認時に欠落していた結果については、それぞれ区別してください。 記録範囲の空白部分は「不明な期間」としてマークしてください。後から 履歴を取得しても、遡及的に中断のない観測が確立されるわけではありません。

## 6. アカウントの視点を、その出所を損なうことなく追加する

アカウントごとに個別のワークスペースを使用し、そのインベントリを繰り返し作成してください。 比較を行う際は、毎回、アカウントID、役割、署名鍵のフィンガープリント、および出典情報を記録してください。 メッセージ番号は、チャットやアカウントを跨ぐグローバルな識別子ではありません。

ワークスペース間の相関分析は、外部の事件記録や分析 ツールで行われます。TgWitnessには現在、ワークスペースを横断するグローバル検索、統合タイムライン、 調査グラフ、または統合された事件アーカイブは備わっていません。**1つの** チャンネル／スーパーグループの複数アカウントへのエクスポートは、アカウントのジャーナルを統合するものではなく、別の操作となります。

長期にわたる作業の場合は、[独立した証人](https://phishdestroy.github.io/TgWitness/ja/docs/reference/witness/)との境界を維持してください。 制御された配信チェックを使用して、 各アカウントのキャプチャ経路と可視性を確認してください。

## 7. 案件の引き継ぎをまとめ、確認する

これらを、アナリストが作成したケースディレクトリにまとめて保管してください：

| 資料 | 目的 |
| --- | --- |
| 事例ノートおよび情報源登録簿 | 質問、収集方針、アクセス権限・役割、調査結果、代替説明、および不備 |
| タイムライン | 各エントリについて、日時およびワークスペース／チャット／メッセージ／シーケンスの参照情報を記載しています。 |
| ワークスペースごとの署名付き証拠ZIPファイル | 記録されたジャーナル、マニフェスト、および保存されたメディアの完全な内容が含まれます。パネルフィルターを使用しても、ジャーナルのエクスポート範囲は狭まりません。 |
| 個別に署名されたユーザープロフィールファイル | 派生した参照情報は、対応するワークスペースの証拠と照合して確認されました |
| 署名付きチャット全記録のエクスポート | 観察ジャーナルとは別に、現在の表示履歴を取得します。 |
| 信頼性の高いフィンガープリントと以前のチェックポイント | 主要な識別情報および保存されるジャーナルの範囲 |
| 設定が行われている場合、Witnessのアーティファクト | 独立したジャーナル、署名付き投稿、およびウィットネスのフィンガープリント |
| 検証結果および納品ファイルのハッシュ値 | 何が確認されたか、どのバイトが転送されたか、そして誰に転送されたか |

信頼できるインストール環境から、ファイル名および各ワークスペースの実際のフィンガープリントを記載しています：

```
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の証拠資料には独自の署名と検証手順が設けられています。

## 調査の適応

| 事例 | Trace | 配信 |
| --- | --- | --- |
| ボットによる注文・支払いの紛争 | エントリーの告知 → 保存されたリンクのプレビュー → ボットの起動パラメータ → メッセージおよびキーボード版 → パネルコールバックの受信確認 → プライベート／グループのフォローアップ | 確認されたオファー／応答のタイムラインおよび検証済みの情報源；支払いリンクのみでは、支払いが行われたことを証明するものではありません |
| インシデント発生後の削除されたメッセージ | 影響を受けたすべてのチャット → 保存されたオリジナル／編集履歴 → 削除または再確認時の欠落結果 → 保存されたメディア → カバー範囲およびその他のアカウントの視点 | 保存されたバージョンと明示的な不明な期間；削除を行った主体を推測して記載することはありません |
| ある参加者が、チャットごとに名前を変えています | 送信者ID（数値）→ 名前／ユーザー名の履歴 → 返信 → その他確認されたチャット → 引用された送信先／ファイル | 引用されたTelegramアカウントのアクティビティのタイムライン。実在の人物に関する身元や関係性の仮説は、これとは区別して記載されています。 |

[コレクション参照](https://phishdestroy.github.io/TgWitness/ja/docs/reference/collection/) · [人物プロフィールの検証](https://phishdestroy.github.io/TgWitness/ja/docs/reference/evidence/#people-profiles) · [証拠の引き渡し](https://phishdestroy.github.io/TgWitness/ja/docs/reference/evidence/#investigation-handoff) · [検証完了](https://phishdestroy.github.io/TgWitness/ja/docs/reference/verification/)
