// SECURITY AUDIT

セキュリティ監査レポート

信頼するが、検証せよ — 監査の結論はすべてここに公開します。

監査の概要

3 回目の再検証 · 2026-08-18
📅 監査日:2026-08-16 / 17 / 18(3 回)📄 範囲:lib/ 全 279 ファイル · android/(録画サービス全文初審)· docs/ · test/(351 件すべて実行)🔬 手法:ファイル横断検証 + 新規領域の逐行精読 + Semgrep SAST(634 ルール / 510 ファイル)+ 動的検証
0
高危 · すべて修正
0
中危 · すべて修正
0
低危 · すべて修正
0
情報類 · 確認済み
0
安全設計として確認

総評:3 回の監査で収束、攻撃面レポートはゼロ。封筒暗号・ホップ単位の通信検証・権限ゲート付きサンドボックス・クラッシュ安全な移行は 3 回の交差検証で一貫して堅牢。新規監査領域(録画 / ワークフロー / 翻訳 / パッケージャ / 音声)に新たな高中危なし。Semgrep は lib/ でゼロ件。リリース可能な状態。

🔧
3 回の監査、すべて修正済み:08-16 初回(A~T 全 20 セクション)→ 08-17 交差監査 → 08-18 再検証。累計 高 2 / 中 14 / 低 9 + 情報 4、高中危はすべてクローズ、残りの低危は当日修正。詳細は 更新ログ

監査の経緯と修正

第 1 回 · 2026-08-16(A~T 全 20 セクション)

高危·修正済
AI 会話リクエストがリダイレクトに追従 — 乗っ取られたチェーンで応答が改変されうる。修正:followRedirects=false + 3xx で例外(ai_task_client.dart:27-54)。
高危·修正済
クリップボードの機微データにゲートなし — どのツールも読めた。修正:既定で保護、セキュリティセンター検証が必要に。
中危·修正済
SSRF 変種バイパス — 8 進 / 短縮 / 16 進 IP で私網ブロックを迂回できた。修正:resolveIpLiteral で全変種を解析 + 単体テスト 6 件(http_safe.dart:72-127)。
中危·修正済
プラグインブリッジにサイズ上限なし — 悪意プラグインでメモリ枯渇。修正:storage 10MB / file 50MB 上限。
中危·修正済
復元中のクリップボード並行書き戻し — 新データを汚染しうる。修正:restorePaused 排他(backup_service.dart)。
中危·修正済
大容量コピーがメインスレッドをブロック — ANR リスク。修正:バックグラウンドスレッド + @Volatile(MainActivity.kt:1331-1343)。
低危·修正済
低危 6 件 — ロック前のパスワード残存、通知 URL 表示、冗長ログ等、すべて修正。

第 2 回 · 2026-08-17(交差監査)

高危·修正済
翻訳サービスの HTML 注入チェーン(H1) — エスケープされない訳文が WebView に直行。修正:訳文の HTML エスケープ + CSP meta script-src 'none'。
高危·緩和済
tool_keys 平文保存(H2) — プラグイン鍵が Hive に平文。緩和:外側のバックアップ暗号化 + エクスポート強制案内。
中危·修正済
非ループバック http AI エンドポイント — 平文エンドポイント設定が可能だった。修正:isAllowedEndpoint をグローバル + プロジェクト + リクエスト層の 3 層で適用。
中危·修正済
外部ファイル取込が既存データを上書き — 重大なデータ損失リスク。修正:既存データはマージ取込 + アトミック置換。
中危·修正済
残存する平文経路(WebDAV / ブリッジ) — HTTPS 強制またはループバック限定に収束。

第 3 回 · 2026-08-18(再検証 + 追加監査)

合格
新規監査領域に高中危なし — 録画サービス全文 / ワークフロー動作 / 翻訳全チェーン / APK パッケージャ / 音声、すべてクリーン。
低危·修正済
低危 3 件を同日修正 — 無制限ワークフロー delay(10 分に制限)、翻訳のリダイレクト追従(_postNoRedirect)、失敗通知の URL 露出(host のみ)。
合格
Semgrep SAST スキャン — 634 ルール / 510 ファイル、lib/ でゼロ件。
合格
実機検証 10 項目すべて合格 — 起動 / パスワード設定 / プロセス再起動 / クリップボードゲート / AppLock 再ロック / 共有確認など。
合格
動的検証 — flutter analyze 0 error · テスト 351/351 合格 · release ビルド成功。

安全と確認された設計

以下のセキュリティ機構はファイル横断の相互検証を通過し、安全かつ有効と確認されています:

#セキュリティ機構検証経路状態
1Hive 暗号化キーのハードウェア保護FlutterSecureStorage → Android Keystore / iOS Keychain
27/7 の機密 Box が全て暗号化main.dart で相互検証、機密 Box はすべて cipher でオープン
3バックアップの暗号化強制パスワードなし → UnencryptedBackupException
4バックアップ暗号化アルゴリズムPBKDF2(300k ラウンド)+ AES-256-GCM
5Release でのログオーバーヘッドゼロすべてのログ出力が kDebugMode
6WebDAV HTTPS 強制HTTP 設定は直接拒否
7サンドボックス eval / Function 無効化Object.defineProperty で完全カバー
8サンドボックス CSP 注入meta タグ + HTTP ヘッダーの二重経路
9パストラバーサル対策プラグインインポートとバックアップ復元に安全検証あり
10その他の確認項目バックアップ暗号 v3、復元プロセスのアトミック化、機密ページの FLAG_SECURE など
🔬
完全な報告(コード位置と修正案を含む)はプロジェクト docs/security_audit_report_2026-08-18_ZCode.md にあります。セキュリティは私たちの土台 — 問題は フィードバック まで。
マトリックスモード: ON — 再入力するか ESC で終了