security-testing-patterns について
開発・セキュリティチーム向けに、アプリケーションのセキュリティテスト手法を案内するスキルです。自動検査と手動テストを組み合わせ、検出結果の評価と修正管理を扱います。
主な機能
- 01SAST・DAST・SCAの手法
- 02侵入テストとファジング
- 03CI/CDスキャンの設計
- 04検出結果の評価と修正管理
活用シーン
- 01CI/CDのセキュリティテスト設計
- 02APIやアクセス制御の評価
- 03脆弱性修正の優先順位付け
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill security-testing-patternsインストール後、Claude Code で/security-testing-patternsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-security.mdautomation-pipeline.mddast.mdfuzzing.mdpenetration-testing.mdsast.mdsca.md詳細
セキュリティテストのパターン
静的解析、動的テスト、ペネトレーションテスト、脆弱性評価を含む、包括的なセキュリティテスト戦略を実装するための専門的なガイダンスです。
このスキルを使う場面
- CI/CD にセキュリティテストパイプラインを実装するとき
- セキュリティ監査や脆弱性評価を実施するとき
- アプリケーションのセキュリティ制御と防御を検証するとき
- ペネトレーションテストやセキュリティレビューを実施するとき
- SAST/DAST ツールを設定し、結果を解釈するとき
- 認証および認可の仕組みをテストするとき
- API セキュリティと OWASP 標準への準拠を評価するとき
- 開発ワークフローにセキュリティスキャンを統合するとき
- セキュリティ上の指摘に対応し、修正の優先順位を決めるとき
- セキュリティテスト手法についてチームをトレーニングするとき
基本概念
セキュリティテストのピラミッド(階層的なアプローチ)
- ユニットセキュリティテスト - 暗号化や検証などのセキュリティ機能をテストします
- SAST - 開発中に静的解析を行います
- SCA - 依存関係とコンポーネントの脆弱性をスキャンします
- DAST - 実行中のアプリケーションを動的にテストします
- IAST - SAST と DAST を組み合わせた対話型解析を行います
- ペネトレーションテスト - 専門家が手動でセキュリティテストを行います
- レッドチーム演習 - 敵対的な状況をシミュレーションしてテストします
テストの分類
静的テスト(SAST)
- ソースコードを実行せずに解析します
- 開発ライフサイクルの早い段階で問題を検出します
- コード全体をカバーします
- 偽陽性の割合が高くなります
動的テスト(DAST)
- 実行中のアプリケーションをテストします
- 実行時や設定の問題を検出します
- プログラミング言語に依存しません
- デプロイ済みの環境が必要です
コンポジション解析(SCA)
- 依存関係をスキャンして脆弱性を検出します
- ライセンスへの準拠状況を追跡します
- 自動修正のオプションを提供します
手動テスト
- ペネトレーションテスト
- ビジネスロジックの検証
- 複雑な攻撃シナリオ
クイックリファレンス
| タスク | リファレンスを読み込む |
|---|---|
| 静的アプリケーションセキュリティテスト(SAST) | skills/security-testing-patterns/references/sast.md |
| 動的アプリケーションセキュリティテスト(DAST) | skills/security-testing-patterns/references/dast.md |
| ソフトウェアコンポジション解析(SCA) | skills/security-testing-patterns/references/sca.md |
| ペネトレーションテスト手法 | skills/security-testing-patterns/references/penetration-testing.md |
| API セキュリティテスト(OWASP Top 10) | skills/security-testing-patterns/references/api-security.md |
| ファジングとプロパティベーステスト | skills/security-testing-patterns/references/fuzzing.md |
| セキュリティ自動化パイプライン | skills/security-testing-patterns/references/automation-pipeline.md |
セキュリティテストのワークフロー
フェーズ 1:計画
- セキュリティ要件と脅威モデルを定義します
- 適切なテストツールと手法を選択します
- セキュリティ体制のベースラインを確立します
- 重大度のしきい値と受け入れ基準を設定します
フェーズ 2:自動テスト
- SAST - IDE と CI/CD パイプラインに統合します
- SCA - 依存関係のスキャンを設定します(npm audit、Snyk、Dependabot)
- DAST - デプロイ済み環境に対するスキャンをスケジュールします
- コンテナスキャン - Docker イメージをスキャンします(Trivy、Aqua)
フェーズ 3:手動テスト
- 認証および認可のテスト
- ビジネスロジックの脆弱性評価
- API セキュリティテスト(OWASP API Top 10)
- ペネトレーションテストとエクスプロイト
フェーズ 4:分析と修正
- 重大度と悪用可能性に基づいて指摘事項をトリアージします
- 偽陽性を取り除きます
- リスクに基づいて修正の優先順位を決めます
- 脆弱性が解決されるまで追跡します
- 回帰テストで修正を検証します
フェーズ 5:継続的なモニタリング
- 依存関係における新たな脆弱性を監視します
- コード変更後に再スキャンします
- 定期的にペネトレーションテストを実施します
- セキュリティのベースラインとポリシーを更新します
よくある間違い
ツールの選択
- 誤り:SAST のみ、または DAST のみを使用する
- 正解:複数のテスト種別を組み合わせた階層的なアプローチを採用する
誤検知の管理
- 誤り:確認せずに検出結果を無視または抑制する
- 適切:セキュリティチームによる検証を含む、体系的なトリアージプロセス
統合のタイミング
- 誤り:リリース前にのみセキュリティテストを実施する
- 適切:開発全体を通じて継続的にセキュリティテストを実施する
スコープの定義
- 誤り:メインアプリケーションのコードのみをテストする
- 適切:依存関係、API、インフラストラクチャ、サードパーティとの統合も対象に含める
修正の優先順位
- 誤り:すべての検出結果を同じように修正する
- 適切:リスクに基づいて優先順位を付ける(深刻度 × 悪用可能性 × ビジネスへの影響)
テストにおける認証
- 誤り:認証なしでDASTスキャンを実施する
- 適切:保護された機能をテストするために、認証済みスキャンを設定する
ベストプラクティス
- シフトレフト:開発の早い段階でセキュリティテストを統合する
- 継続的なテスト:CI/CDパイプラインでセキュリティスキャンを自動化する
- 多層的なアプローチ:SAST、DAST、SCA、手動テストを組み合わせる
- リスクベースのテスト:脅威モデルに基づいてテストの優先順位を付ける
- 誤検知の管理:検出結果をトリアージするプロセスを確立する
- 修正状況の追跡:脆弱性管理にSIEM/SOARを使用する
- 定期的な更新:セキュリティツールとシグネチャを最新の状態に保つ
- セキュリティチャンピオン:開発者にセキュリティテストのトレーニングを行う
- メトリクスとKPI:セキュリティ態勢を継続的に追跡する
- コンプライアンスの検証:テストを規制要件に対応付ける
リソース
- OWASP Testing Guide:https://owasp.org/www-project-web-security-testing-guide/
- OWASP API Security:https://owasp.org/www-project-api-security/
- NIST SP 800-115:情報セキュリティテストの技術ガイド
- PTES:ペネトレーションテスト実施標準
- SANS Security Testing:https://www.sans.org/security-resources/
- HackerOne Methodology:https://www.hackerone.com/ethical-hacker/hack-learn
- PortSwigger Academy:https://portswigger.net/web-security
コメント
Markdown 対応