セキュリティテストの導入

1. 目的

CI/CDパイプラインの構築で構築したCI/CDパイプラインでは、静的解析・自動テスト・自動デプロイまでは構築できていますが、セキュリティ観点の検査は組み込まれていません。このままでは、セキュリティ上問題のあるリソースがシステムに組み込まれても検知できません。

そこで、CI/CDパイプラインにセキュリティテストを導入してみましょう。

2. やるべきこと

  1. CI/CDパイプラインに実装すべきセキュリティテストと、利用する技術スタックを検討してみましょう
  2. 実際にCI/CDパイプラインに組み込んでみましょう
  3. 簡単な脆弱性を意図的に埋め込み、テストで検知できるか確認してみましょう(すべてを網羅する必要はなく、代表的なケースに絞って構いません)

3. 余裕があれば

  1. 運用中のリソースに対する継続的な脆弱性監視まで設計してみましょう

4. ツール・機能の候補

※ 以下のすべてを使う必要はなく、目的に合わせて適切なものを選んでみましょう。ここに無いツールを使っても構いません。

ツール・機能名 概要
Semgrep 多言語対応のソースコード脆弱性スキャナ。SQLインジェクションや任意コード実行などのパターンを検出
CodeQL GitHub純正のソースコード解析。Code Scanningタブと統合される
Bandit Python専用のソースコード脆弱性スキャナ
Trivy 依存パッケージ・コンテナイメージ・IaCコードなどを横断的にスキャン
Dependabot 依存パッケージの脆弱性を検出し、修正のPRを自動で作成
Snyk 多言語対応の商用セキュリティスキャンサービス
OSV-Scanner Google製のOSVデータベースを使った依存関係スキャナ
Checkov TerraformやCloudFormation等のIaCコードから設定不備を検出
GitHub Secret Scanning / Push Protection APIキーなどの機密情報のコミット・Pushを検出・ブロック
gitleaks OSSの機密情報検出ツール。CIから実行可能
ECR Enhanced scanning コンテナイメージのレジストリ上での継続的な脆弱性スキャン
Amazon Inspector EC2 / Lambda / ECRに対する継続的な脆弱性監視
OWASP ZAP 動作中のWebアプリに対するDASTツールの定番

5. 目安期間

2〜3週間

ポートフォリオ制作のフィードバックはスタンダードプラン以上でご利用いただけます。

プランのアップグレード