name: reviewing-security description: "OWASP API Security Top 10 (2023) と {開発言語をここに書く} セキュリティベストプラクティス。脆弱性検出。Use when: セキュリティレビュー、脆弱性チェック、バージョン管理確認を依頼された時。"
セキュリティレビュー
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バージョン、既知のセキュリティ脆弱性
- 🟡 中: メジャーバージョン以上の差がある
出力フォーマット
## バージョン管理ツールの更新可否
| 優先度 | ファイル | ツール/パッケージ | 現在のバージョン | 最新版 | 状態 | 備考 |
| ------ | ------------------------ | -------------------------- | ---------------- | ------- | ---------- | ---------------------------- |
| 🔴 | 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ツールは、更新により既存の動作に影響する可能性あり
- テスト: バージョン更新後は必ずテストを実行
- 段階的更新: 複数のメジャーバージョンをスキップしている場合は、段階的な更新を推奨