厚クライアントセキュリティテスト
必須アクション(読み終わったらすぐに実行)
NOW:../field-journal/precedent-pentest.mdを読み込むNOW: 対象が デスクトップ厚クライアント(Win/macOS/Linux GUI またはサービス連携)であることを確認し、純粋なWebではないことを確認するNOW: case-init を実行する。インストールパッケージの入手元とテストアカウントの情報をスコープに書き込むNEXT: ツール(Burp アップストリームプロキシ、プロセスモニタリング、リバースエンジニアリングツール)を準備するACT: 信頼境界図を作成 → ローカル面 → ネットワーク面 → 更新/サプライチェーンの順にテストする
適用シナリオ
- C/S アーキテクチャのクライアント、Electron/Qt/.NET WinForms/WPF アプリケーション
- ローカル設定/資格情報ストレージ、IPC、名前付きパイプ
- クライアント側強制チェックのバイパス調査(認可済み)
- 自動更新チャネルとコード署名検証のテスト
ワークフロー
1. 境界の定義
□ プロセスツリー、子プロセス、ドライバ/サービス
□ リッスンポートと送信先ドメイン
□ ローカルセンシティブパス:%APPDATA%、Keychain、レジストリ
2. ローカル攻撃面
□ 平文設定、ハードコードされた鍵、デバッグスイッチ
□ DLL ハイジャック/検索順序(Windows)
□ データベースファイル(SQLite)の権限と暗号化
□ IPC:誰が接続可能か?認証は行われているか?
3. ネットワーク面
□ システムプロキシ / アプリケーション独自のTLS設定
□ 証明書ピンニング → モバイル/JS 方法論または Frida と組み合わせる
□ API 権限昇格:クライアント側で隠された管理インターフェース
4. リバースエンジニアリング検証
□ .NET → dotnet-reverse を使用。ネイティブ → IDA/Ghidra を使用。Electron → asar + js-reverse を使用。
ツールチェーン
| ツール | 用途 |
|---|---|
| Process Monitor / API Monitor | 動作監視 |
| Burp / mitmproxy | トラフィック分析 |
| dnSpy / IDA / Ghidra | リバースエンジニアリング |
| Sysinternals | Windows 面の調査 |
| asar / nexe 検出ツール | Electron アプリの抽出 |
参考資料
references/thick-client-checklist.md../dotnet-reverse/../ida-reverse/../js-reverse/../api-security/
ルーティングコンテキスト
上流: MASTER R32
下流: 純粋プロトコル分析 protocol-reverse;サプライチェーン更新 supply-chain-security
タスク完了セルフチェック
- 信頼境界を描きましたか?
- ローカル面とネットワーク面の両方をカバーしましたか?
- チェックリストを確認しましたか?