セキュリティレビュー
OWASP API Security Top 10 (2023) と {開発言語をここに書く} セキュリティベストプラクティスに基づくレビュースキル。
OWASP チェック項目
| ID | リスク | チェック内容 |
|---|---|---|
| API1 | BOLA | tenant_id 検証、file_id との組み合わせ検証 |
| API2 | Broken Auth | gRPC メタデータ認証 |
| API3 | Property | レスポンスの不要情報 |
| API4 | Resource | ファイルサイズ制限、ページネーション |
{開発言語をここに書く} セキュリティ
| 項目 | 検索パターン |
|---|---|
| 依存関係脆弱性 | N/A |
| unsafe コード | N/A |
| ハードコード認証情報 | N/A |
バージョン管理チェック
dependabotやrenovateで自動検証できないバージョン指定をチェックします。Dockerfile内の直接指定、GitHub Actionsのバージョン、設定ファイルで指定されたツールバージョンなどが対象です。古いバージョンの使用はセキュリティリスクやパフォーマンス問題につながる可能性があります。
注意: package.json、requirements.txt、go.modなどの依存関係管理ファイルはdependabot/renovateで検証されるため、このチェックの対象外です。
チェック対象ファイルとパターン
| ファイルタイプ | ファイル名/パターン | チェック内容 |
|---|---|---|
| Dockerfile | Dockerfile, *.dockerfile, Dockerfile.* | FROM イメージとタグ、RUN apt-get install、RUN apk add でのパッケージバージョン |
| GitHub Actions | .github/workflows/*.yml, .github/workflows/*.yaml | uses: でのアクションバージョン、setup-* アクションの *-version 指定 |
| ツールバージョン設定 | .nvmrc, .python-version, .go-version, .tool-versions | 開発環境のツールバージョン指定 |
| その他の設定 | Makefile, runtime.txt | ビルドスクリプトや実行環境のバージョン指定 |
チェック手順
- •
ファイルの検出
- •上記パターンに該当するファイルを検索
- •各ファイルからバージョン指定を抽出
- •
バージョン情報の取得
- •現在指定されているバージョンを特定
- •可能な場合、最新の安定版を確認(Web検索やAPIを使用)
- •EOL(サポート終了)情報を確認
- •
更新可否の判定
- •メジャーバージョン更新: 破壊的変更の可能性あり、更新を推奨
- •EOL: 早急な更新が必要
- •既知のセキュリティ脆弱性: 即座の対応が必要
- •注意: マイナーバージョンやパッチバージョン程度の差では指摘しません
- •
優先度の設定
- •🔴 高: EOLバージョン、既知のセキュリティ脆弱性
- •🟡 中: メジャーバージョン以上の差がある
出力フォーマット
markdown
## バージョン管理ツールの更新可否 | 優先度 | ファイル | ツール/パッケージ | 現在のバージョン | 最新版 | 状態 | 備考 | |--------|----------|-------------------|------------------|--------|------|------| | 🔴 | Dockerfile | python (FROM) | 3.8.0 | 3.12.1 | EOL | Python 3.8は2024年10月でEOL | | 🔴 | Dockerfile | node (FROM) | 16.0.0 | 20.11.0 | 脆弱性あり | CVE-2023-XXXXX: 既知の脆弱性 | | 🟡 | .github/workflows/ci.yml | actions/checkout | v3 | v4 | 更新可 | メジャーバージョンアップ | | 🟡 | Dockerfile | apt-get: postgresql-client | 12 | 16 | 更新可 | メジャーバージョンアップ |
注意: この表に表示されるのは、メジャーバージョン以上の差がある、またはEOL・脆弱性があるバージョン指定のみです。マイナーバージョンやパッチバージョン程度の差は表示されません。
チェック実施の注意点
- •対象の明確化: このチェックはdependabot/renovateで自動検証できないバージョン指定が対象です。
package.json、requirements.txt、go.modなどの依存関係管理ファイルは対象外です - •指摘基準: メジャーバージョン以上の差、またはEOL・既知の脆弱性がある場合のみ指摘します。マイナーバージョンやパッチバージョン程度の差では指摘しません
- •破壊的変更: メジャーバージョン更新時は破壊的変更の可能性があるため、リリースノートの確認を推奨
- •互換性: 特にDockerイメージやCI/CDツールは、更新により既存の動作に影響する可能性あり
- •テスト: バージョン更新後は必ずテストを実行
- •段階的更新: 複数のメジャーバージョンをスキップしている場合は、段階的な更新を推奨