0Pricing
Cyber Security Academy · レッスン

CI/CDパイプラインにおけるSASTとDAST

パイプラインにSonarQube、Semgrep、Banditなどの静的解析と、OWASP ZAPによる動的スキャンを組み込みます。

「CI/CDパイプラインにおけるSASTとDAST」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。

アプリケーションセキュリティテストとは

アプリケーションセキュリティテストは、コードが本番環境に到達する前に脆弱性を特定します。相補的な2つのアプローチとして、コードを実行せずに検査するSAST(静的アプリケーションセキュリティテスト)と、実行中のアプリケーションをテストするDAST(動的アプリケーションセキュリティテスト)があります。どちらもCI/CDパイプラインに統合して、セキュリティを左方移行できます。

SAST:静的アプリケーションセキュリティテスト

SASTは、コードを実行せずに、ソースコード、バイトコード、またはバイナリを分析してセキュリティ脆弱性を検出します。すべてのコミットで実行できるため、迅速なフィードバックが得られます。

長所:バグを早期に検出できる、コード全体をカバーできる、実行環境が不要です。

短所:誤検知率が高い、言語に依存する、実行時の設定問題を見逃します。

代表的なSASTツール

オープンソースのSASTツール:

# Semgrep (multi-language, rule-based):
semgrep --config auto ./src

# Bandit (Python):
bandit -r ./src

# ESLint security plugin (JavaScript):
npx eslint --plugin security ./src

# SpotBugs + FindSecBugs (Java):
mvn spotbugs:check

SASTのCI/CDへの統合

GitHub ActionsでSASTを実行するステップの例:

# .github/workflows/security.yml
- name: Run Semgrep
  uses: returntocorp/semgrep-action@v1
  with:
    config: p/owasp-top-ten
    auditOn: push
# Fail build if HIGH severity findings present

DAST:動的アプリケーションセキュリティテスト

DASTは、攻撃者をシミュレートし、外部から実行中のアプリケーションをテストします。認証の問題、セッション管理の欠陥、入力検証のバグなど、実行時にのみ明らかになる脆弱性を検出します。

長所:誤検知が少ない、言語に依存しない、実行時の設定問題を検出できることです。

短所:実行環境が必要で、コードパスを見逃す可能性があります。

代表的なDASTツール

CI/CD向けのDASTツール:

# OWASP ZAP (free, scriptable):
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://staging.app.com

# Nikto:
nikto -h https://staging.app.com

# Nuclei (template-based):
nuclei -u https://staging.app.com -t cves/

IAST:インタラクティブアプリケーションセキュリティテスト

IASTは、機能テスト中にコードの実行を監視するエージェントを使用して、実行時のアプリケーションに計測機能を組み込みます。SASTの精度とDASTの網羅性を組み合わせた手法です。例:Contrast Security、Seeker。言語固有のエージェントと、実行するテストが必要です。

セキュリティの左方移行

Shift leftとは、セキュリティテストを開発ライフサイクルのより早い段階、つまり独立したリリース前のゲートではなく、理想的には開発者のIDEやコミットの段階へ移行することです。早期に検出するほど、修正コストは低くなります。

コスト倍率:開発中のバグは1倍、ステージングでは10倍、本番環境では100倍です。

誤検知への対処

SASTツールでは誤検知が発生します。以下の方法で管理してください。

  • 問題がないことを確認した箇所には、nosec(Bandit)またはインラインの抑制コメントを使用してください
  • アプリケーションのコンテキストに合わせてルールセットを調整してください
  • 抑制理由をコードコメントに記録してください
  • 抑制設定を定期的に見直してください

CI/CDセキュリティパイプラインのアーキテクチャ

完全なセキュリティパイプライン:

  1. コミット前フック:シークレットスキャン(gitleaks)、SAST(semgrep)
  2. PRチェック:SASTの結果、依存関係スキャン(Dependabot)
  3. ステージングへのデプロイ:DASTスキャン(ZAP baseline)
  4. 本番環境:実行時監視(RASP、WAF)

AppSecの有効性の測定

CI/CDにおけるAppSecの主要な指標:

  • セキュリティに関する調査結果の修正にかかる平均時間
  • コード1,000行あたりの調査結果数
  • 誤検知率(開発者の信頼に影響します)
  • 脆弱性の流出率(ステージングと本番環境で発見された割合)

クイックチェック:SASTとDAST

ソースコードを実行せずに分析し、すべてのコミットでCIパイプラインから直接フィードバックを提供するセキュリティテストの種類はどれですか。

レッスンのまとめ

SASTはコードを静的に分析します(早期のフィードバック、誤検知が多い)。DASTは実行中のアプリケーションを動的にテストします(実行時の精度、環境が必要)。どちらもCI/CDパイプラインに組み込む必要があります。左方移行により、修正コストが最も低い段階で脆弱性を検出できます。代表的なツールには、SASTではSemgrepとBandit、DASTではOWASP ZAPとNucleiがあります。誤検知を管理するには、ルールセットを調整し、抑制設定を記録してください。

よくある質問

「CI/CDパイプラインにおけるSASTとDAST」レッスンは無料ですか?

はい。「CI/CDパイプラインにおけるSASTとDAST」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。

「CI/CDパイプラインにおけるSASTとDAST」で何を学びますか?

パイプラインにSonarQube、Semgrep、Banditなどの静的解析と、OWASP ZAPによる動的スキャンを組み込みます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cyber Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「CI/CDパイプラインにおけるSASTとDAST」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCyber Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. CI/CDパイプラインにおけるSASTとDAST
  2. ソフトウェア構成分析(SCA)
  3. シークレットスキャンとハードコードされた認証情報
  4. セキュリティチャンピオンと脅威モデリング
← Cyber Security Academyに戻る