ソースコードセキュリティ監査
アクション必須(読んだらすぐ実行)
NOW:../field-journal/precedent-pentest.mdまたはコード監査の許可を読み込むNOW: ソースコード/リポジトリへのアクセスがあることを確認(ソースコードなしのバイナリ → RE スキルに移行)NOW: 言語スタックと範囲を明確にする(ディレクトリ/サービス/PR差分)NEXT: tool-index;semgrep などACT: 脅威モデリングのスケッチ → 自動スキャン → 手動検証
適用シナリオ
- ホワイトボックス監査、PR/差分セキュリティレビュー
- Semgrep / CodeQL / Bandit / gosec などのSAST
- 危険なAPI、インジェクションポイント、認可欠如、暗号化の誤用
supply-chain-security/との役割分担:本スキルは自社コードロジックに特化し、サプライチェーンは依存関係とパイプラインを担当
ワークフロー
1. スコープと脅威モデル
□ 信頼境界:ユーザー入力、ファイル、デシリアライゼーション、SSRF、認可ミドルウェア
□ 高価値資産:認証、決済、管理画面、鍵処理
2. 自動スキャン
semgrep --config auto .
# またはプロジェクトルールパッケージ
semgrep --config p/owasp-top-ten .
3. 手動検証(必須)
□ 各SASTヒット:到達可能性?悪用可能性?誤検知?
□ 認可:IDOR/権限昇格、チェック欠如、誤ったマルチテナント分離
□ インジェクション:SQL/コマンド/テンプレート/LDAP
□ 暗号化:ハードコードされた鍵、ECB、独自暗号化
4. 成果物
Finding:位置 + データフロー + PoC + 修正提案
必要に応じて ATT&CK / CWE 番号
ツールチェーン
| ツール | 言語/シナリオ |
|---|---|
| Semgrep | 多言語高速ルール |
| CodeQL | 深いデータフロー(GitHub) |
| Bandit | Python |
| gosec / staticcheck | Go |
| SpotBugs / FindSecBugs | Java |
参照
references/sast-review-checklist.md../supply-chain-security/../api-security/../llm-security/(Agent コード)
ルーティングコンテキスト
上流: MASTER R26
ロール: ops/role-map.md cae
下流: 依存関係の脆弱性 → supply-chain;実行時検証 → pentest-tools
タスク完了セルフチェック
- スキャナの出力をそのまま貼るのではなく、手動検証を行ったか?
- 修正提案を含んでいるか?
- 許可されたリポジトリ範囲に限定しているか?
- チェックリストはあるか?