参考文献 / 収集
調査モード
チャンネル、グループ、プライベートチャット、ボットにまたがるアカウント全体の調査について、調査範囲の設定から検証済みのケースパッケージの作成までを網羅しています。
チャンネル、グループ、プライベートチャット、ボットを横断して、事案を
初期の取得段階から、引用されたタイムライン、検証可能な引き継ぎに至るまで追跡できます。インタラクティブなウェブサイト
版は /docs/cases/ にあります。プレビューの手順をご覧ください。
事例:4つの会話にわたって目的地が変更されたケース#
ある告知がボットを指し示しています。運用グループが新しい送金先について議論し、 ボットのキーボードにそれが表示され、非公開のフォローアップメッセージでそれが繰り返されます。 その後、その告知が編集され、グループメッセージが消えます。
疑問点は以下の通りです。変更の前後で何が確認されたか、どのTelegram アカウントが各項目を投稿したか、宛先がどこに表示されたか、どの添付ファイルのバイトが 保存されたか、そしてどのような間隔が不明のままであるか、ということです。
この例に登場するすべての名前、ID、時刻、およびジャーナルの参照情報は架空のものです。 ワークフローでは現在の機能が使用されています。ケースマップはあくまで例示であり、アプリケーションによって自動的に 生成されたグラフではありません。
図表をテキストで記述
- チャンネル → ワークスペース・ジャーナル
- グループ → ワークスペース・ジャーナル
- プライベートチャット → ワークスペース・ジャーナル
- ボット → ワークスペース・ジャーナル
- ワークスペース・ジャーナル → すべての情報源を検索する
- ワークスペース・ジャーナル → 記録の参照先を含む人物プロフィール
- ワークスペース・ジャーナル → 保存されたバージョンと添付ファイルの受信確認
- すべての情報源を検索する → アナリストのタイムラインおよび情報源登録簿
- 記録の参照先を含む人物プロフィール → アナリストのタイムラインおよび情報源登録簿
- 保存されたバージョンと添付ファイルの受信確認 → アナリストのタイムラインおよび情報源登録簿
- ワークスペース・ジャーナル → 署名付き証拠 ZIP
- アナリストのタイムラインおよび情報源登録簿 → 個別に検証済みの証拠資料を用いた案件の引き継ぎ
- 署名付き証拠 ZIP → 個別に検証済みの証拠資料を用いた案件の引き継ぎ
1. 事案を定義し、全容を把握する#
- 収集用アカウントを、専用のワークスペースに接続してください。外部のケースノートには、 ケース参照番号、アカウントID、ワークスペース、監視開始日時、および信頼できる 署名鍵のフィンガープリントを記録してください。
- 「オープンソース」→「監視範囲」→「調査モード」。このプリセットでは、「 アカウント全体」、「チャンネル/グループ/プライベートチャット/ボット」、「自身の操作」、「ソース プロファイル」、および新たに発見されたソースの「表示可能な最新の200件のメッセージ」が選択されます。 内容を確認し、「範囲を保存」を押して、範囲の確認を完了してください。
- チャットを読み込み、そのソースをアカウントのダイアログ一覧と比較します。 「除外設定」を確認してください。 「パラメータ」→「アカウントのリストから読み込むチャット数」は、デフォルトで 1,000件に設定されており、最大20,000件まで指定可能です。リストの制限を超えるソースは、 アクティブになった時点で追加されます。実際に列挙された内容を記録してください。
- 「記録設定」で「表示されているすべてのアクティビティ」を選択し、 監視設定を保存してください。添付ファイルの種類や制限、および空きディスク容量を確認してください。
- 監視を開始します。制御された新しいメッセージ、編集、削除を検証し、その後、 テストの参照情報および発生したエラーを記録します。
「アカウント全体」の範囲では、保存された設定の範囲内で、アカウント上で確認可能なアクティビティを記録します。 秘密チャットにはアクセスせず、リンクされたすべてのグループに自動的に参加することもありません。また、 既存のすべての会話履歴を遡って記録することもありません。「収集範囲」をご参照ください。
2. すべての情報源を網羅し、歴史的背景を把握する#
チャットごとに1行ずつ、ソース登録簿を作成してください:
| 分野 | 記録 |
|---|---|
| アイデンティティ | ワークスペース、アカウントID、数値のチャットID、タイトル、およびタイプ |
| 可視性 | メンバーシップ/役割、アクセス権の確認の有無、除外事項 |
| リアルタイムキャプチャ | 開始時期、選択されたイベントの種類、およびその後のポリシー変更 |
| ジャーナルの履歴 | スナップショットの要求/完了状況、制限、時間、および記録の参照情報 |
| 全履歴 | チャットごとの署名付きエクスポートファイル名、境界、および完了/失敗 |
| 添付ファイル | メディアの受信状況、ハッシュ値、サイズ、およびスキップ/失敗の結果 |
| 対応範囲 | サービス停止、取り込みの不完全さ、FloodWait、利用できないメッセージ、その他の欠落 |
各情報源に応じて適切な取得方法を使用してください:
- 「Sources」で履歴をすべて読み込む(現在の
main)は、有効化されたソースから利用可能な過去の メッセージをワークスペースのジャーナルに読み込みます。一時停止/再開 および署名付き進捗レポートに対応しています。履歴の取得を参照してください。 - 履歴スナップショットは、最近表示されたメッセージを観察ログに保存します。 デフォルトの上限は500件ですが、「パラメータ」→「最大履歴スナップショット」で これを10,000件まで増やすことができます。これらは現在の履歴の観察結果であり、編集履歴を再構築したものではありません。
- 「チャット全体をエクスポート」→「チャット全体をエクスポート」、または「チャット」→「チャットをエクスポート」を選択すると、
現在表示されている1つのチャットの履歴が、個別の署名付き
chat.json/chat.htmlバンドルとして取得されます。案件に関連する情報源についてこの操作を繰り返し、各結果を保存してください。 - 新しいチャットやボットが出現した際、そのプロフィールと最大1,000件の最近の メッセージを保存できます。調査モードでは200件が選択されます。既存のチャットについては、 モードを有効にしても、遡ってそのデータを取り込むことはできません。
- 表示可能な添付ファイルをダウンロードすると、設定されたポリシーに基づきバイト数が保持されます。
SHA-256およびバイト数が記載された、完了済みの
media.savedレシートが必要です。キューに入れられた ジョブ、サムネイル、またはファイル名は、保持される添付ファイルには該当しません。
チャット全体のエクスポートを行っても、ジャーナルやユーザープロフィールにはすべての メッセージが反映されるわけではありません。TgWitness内で分析が必要な履歴については、 「履歴全体を読み込む」または「範囲指定されたジャーナルのスナップショット」を使用してください。履歴の取得を開始する前に、 有効になっているソースリストを確認してください。いずれの方法でも、Telegramがもはや返さないデータは復元できません。
3. 変化し続ける事案と意図的なやり取りを保存する#
進行中の事件に関連するチャットを優先的な情報源としてマークしてください。再確認の間隔、継続的な 追跡状況、およびメディアへの反映状況を確認してください。アカウントを使用中は、コレクターの監視を継続してください。 「チャット」→「プロフィール」→「今すぐプロフィールを保存」を使用して、 説明文やボットコマンドなどの情報源メタデータを保持してください。これは、保存されたメッセージから導き出される 人物プロフィールとは別物です。
情報源を追跡したり、ボットとやり取りしたりするケースについては:
- 「Telegramリンクを開く」→「プレビューを保存」は、指定されたリンクと、操作実行前の プレビューを記録します。
- 「Join / open and observe」は、join/openを実行し、指定された場合はボットのstart パラメータを送信します。承認待ちの参加リクエストは「pending」として記録されます。
- パネルから送信されたテキスト返信およびサポートされているボタンの押下操作については、
interaction.requestedおよびinteraction.resultが保持されます。コールバックの受信確認では、 返されたポップアップテキスト、アラートの状態、およびURLを保持することができます。
これらは実際のアカウント操作です。別のTelegramアプリでのコールバックの押下は、 収集ツールからは確認できませんが、その結果として送信されたメッセージや編集内容は確認できる場合があります。 ミニクライアントは、ウェブアプリ、決済、電話、位置情報のワークフローを実行しません。 正確な動作については、「パネルの操作」をご覧ください。
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つの チャンネル/スーパーグループの複数アカウントへのエクスポートは、アカウントのジャーナルを統合するものではなく、別の操作となります。
長期にわたる作業の場合は、独立した証人との境界を維持してください。 制御された配信チェックを使用して、 各アカウントのキャプチャ経路と可視性を確認してください。
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アカウントのアクティビティのタイムライン。実在の人物に関する身元や関係性の仮説は、これとは区別して記載されています。 |
コレクション参照 · 人物プロフィールの検証 · 証拠の引き渡し · 検証完了