監査内容の詳しい備考
この文書は、ai-auditが「何を、なぜ、どのように確認するのか」を、監査を受け取る側にも説明できるようにした備考です。
最初に:3種類の確認を区別する
| 種類 | できること | できないこと |
|---|---|---|
| 機械検査 | 形式、ハッシュ、既知パターン、母集団、ファイル存在を再現可能に判定 | 業務上の妥当性や未知の脆弱性を保証しない |
| AIレビュー | 仕様とコードを広く読み、設計上の矛盾や抜けを候補化 | 人間の専門家、第三者監査、法的判断を代替しない |
| 人間の判断 | 適用性、残余リスク、承認権限、案件固有条件を判断 | 証拠なしの判断を機械的事実へ変えない |
ai-auditは、この3つを混ぜずに成果物へ記録します。
1. 対象範囲と同一性
目的
「どのコードを監査したか」を後から確認できるようにします。監査後にコードが変更されたのに、古い報告書だけが残る状態を防ぎます。
確認内容
- Gitリポジトリ、HEADコミット、ブランチ
- 開始時と終了時の追跡済み・未追跡・index差分
- 監査対象と対象外
- 生成物として除外したパス
- シンボリックリンク、削除、未追跡追加
証拠
git status、コミットID、対象一覧、seal.json、verify-seal結果。
備考
封印はコードの安全性を保証するものではありません。「監査したものと現在のものが同じか」を確認する仕組みです。
2. 情報保護・プライバシー
目的
監査のために秘密情報や個人情報を新しく漏らさないことです。
確認内容
- APIキー、トークン、パスワード、秘密鍵、復旧コード
- 氏名、メール、電話、住所、顧客名、実データ
- ログ、設定、CI、YAML複数行値への秘密値混入
- 外部AI、外部スキャナー、パッケージ登録先へ送信される内容
- 公開成果物に含まれる端末固有パスや内部URL
証拠
マスキング済み検出結果、成果物スキャン結果、外部送信の有無、未検証事項。
備考
生の秘密値は証拠にしません。検出位置と種類を残し、値はマスクします。公開可能性と顧客への提出可能性は別に判断します。
3. 仕様適合・要求トレーサビリティ
目的
「実装が動く」だけでなく「依頼された内容と一致する」ことを確認します。
確認内容
- 主要機能と受入条件
- 禁止事項と安全条件
- 仕様にあるが実装されていない機能
- 実装されたが仕様にない機能
- 要求とテストの対応
- エラー、境界値、再試行、中断、重複操作
証拠
仕様書、要求ID、テストID、UATログ、期待値、実測値、スクリーンショット、制限事項。
備考
仕様がない場合、合格基準そのものが決められません。最初に目的、機能、禁止事項、データ、合否条件を簡潔に文書化し、不明点は未確定として扱います。
4. セキュリティ
目的
既知の弱点、危険な設計、依存関係のリスクを、対象に応じた深さで確認します。
確認内容
- 入力値の検証と出力時のエスケープ
- 認証、認可、権限境界、セッション管理
- 保存時・通信時のデータ保護
- 依存パッケージ、CVE、版固定、出所
- エラー表示とログへの情報露出
- 外部URL、ディープリンク、ファイルパス、アップロード
- 暗号方式、鍵の保管、乱数
証拠
SAST/SCA結果、該当コード、CWE、OWASP要求ID、再現手順、修正差分、再試験ログ。
備考
ツールが「検出なし」と返しても安全証明にはなりません。対象言語を解析できたか、設定が適切か、実行できなかった検査がないかも記録します。
5. 外部副作用・過剰な自律性
目的
AIや自動化が、利用者の意図を超えて送信、削除、課金、通知、公開を行わないことを確認します。
確認内容
- 外部API、メール、プッシュ通知、決済、SNS投稿
- DB更新、ファイル削除、クラウド資源変更
- 再試行による二重実行
- タイムアウト・途中中断後の状態
- 事前確認、確認画面、dry-run、ロールバック
- 人間の承認が必要な境界
証拠
副作用一覧、権限表、状態遷移、冪等性試験、隔離環境ログ、承認記録。
備考
本番や共有環境で欠陥注入を行いません。安全な隔離環境と明示承認がなければ未検証にします。
6. 品質特性
ISO/IEC 25010:2023の品質分類を共通語彙として使います。
| 品質特性 | 確認例 |
|---|---|
| 機能適合性 | 必要機能、正確性、目的への適合 |
| 性能効率性 | 応答時間、資源使用量、容量 |
| 互換性 | 共存、データ形式、他システム連携 |
| 相互作用能力 | 操作の分かりやすさ、アクセシビリティ、誤操作防止 |
| 信頼性 | 障害耐性、復旧、データ損失防止 |
| セキュリティ | 機密性、完全性、真正性、責任追跡 |
| 保守性 | 構造、試験容易性、変更影響、引継ぎ |
| 柔軟性 | 環境適応、拡張、置換可能性 |
| 安全性 | 人・環境・設備への危害を避ける設計 |
備考
分類名を使うことと、ISO認証・適合宣言は別です。本ツールは要求を対応付けた範囲と試験結果を示します。
7. iOS・Android
共通のMASVS確認
- 端末内保存
- 暗号と鍵管理
- 認証・認可
- ネットワーク通信
- プラットフォーム連携
- コード品質と更新
- 改ざん・解析耐性
- プライバシー
iOS固有の追加確認
PrivacyInfo.xcprivacy- Required Reason API
- 外部SDKのマニフェスト
- Entitlementsと最小権限
- コード署名と配布成果物
- Data Protection、Keychain、ATS
- App Store申告と実装の整合
備考
ソースコードだけでは、実機挙動、署名済みIPA、App Store Connectの申告を確認できません。成果物やアカウントへアクセスできなければ未検証として残します。
8. 供給網・ライセンス・来歴
確認内容
- 依存名の実在性
- バージョン固定とロックファイル
- 保守状況と既知脆弱性
- ライセンスと再配布条件
- 生成に使ったAI、日時、指示概要
- ビルド環境と生成物の対応
備考
AIが提案した依存名をそのまま信用しません。インストール前の出所確認と、不要な依存を増やさない判断も監査対象です。
9. 保守・運用・復旧
確認内容
- 構造、命名、重複、テスト網羅率
- ログレベル、個人情報、保持期間
- 監視、通知、障害時の手順
- バックアップと実復元試験
- 再監査条件と有効期限
- 引継ぎ資料とcode-atlas
備考
バックアップ設定があるだけでは復旧可能とは判断しません。隔離環境での復元、所要時間、データ欠損を確認します。
10. 監査プロセスそのもの
確認内容
audit-onlyとremediationの分離- 別系統AIレビューの入力と権限
- 要求母集団の欠落、重複、格下げ
- 証拠の非空、ハッシュ、使い回し
- 非適用の理由と別承認者
- 報告書と機械可読プロファイルの結論一致
- 外部提出の署名承認
備考
別のAI提供者を使っても、組織上の第三者監査にはなりません。「別系統AIレビュー」と表記します。外部提出の承認者の本人性・権限・鍵管理は顧客組織が確認します。
11. 安全関連・産業制御・規制対象
一般IT用の監査だけでは判定しません。
- 適用法令、設備境界、安全分類
- ハザード、安全目標、安全要求
- 設計項目、試験、証拠、逸脱、残余リスク
- 構成ベースライン
- FAT、SAT、試運転、段階承認
- 組織的に独立した人間のレビュー
専門規格と承認が未確定ならnot-acceptableです。必要な工程証拠が揃っても、本ツール単独の最良結論はconditionalです。法定検査、運転許可、安全証明、独立V&Vを代替しません。
12. 結論の読み方
| 結論 | 意味 |
|---|---|
acceptable-within-scope |
適用要求が存在し、記録された範囲ではすべて合格 |
conditional |
未試験、条件付き、不適合、適用未確定、重要な非適用等がある |
not-acceptable |
適用要求なし、Critical未合格、必須項目の不合格、安全系停止等 |
どの結論も「無欠陥」「認証済み」「本番利用を承認」を意味しません。利用判断は、対象範囲、未検証事項、残余リスク、契約条件を読んだ権限者が行います。
13. 監査で確認しないもの
明示的な範囲と証拠がなければ、次は確認済みにしません。
- 法令適合性の最終判断
- 認証取得
- 侵入テストの代替
- 実機・実OS・全端末の動作
- App Storeや各ストアの承認
- 本番データ・本番ネットワークでの安全性
- 将来公表される脆弱性
- 契約検収、事業判断、残余リスク受容