📗
owasp-devsecops-verification-standard-ja
  • OWASP DevSecOps Verification Standard (DSOVS) ja
  • OWASP DevSecOps 検証標準 日本語版
    • OWASP DevSecOps 検証標準
    • リーダー
  • 組織 (Organisation) フェーズ
    • ORG-001 リスク評価 (Risk Assessment)
    • ORG-002 セキュリティトレーニング (Security Training)
    • ORG-003 セキュリティ担当者 (Security Champion)
    • ORG-004 セキュリティレポート (Security Reporting)
  • 要件 (Requirements) フェーズ
    • REQ-001 セキュリティポリシーと規制遵守 (Security Policy and Regulatory Compliance)
    • REQ-002 セキュリティ要件と標準 (Security Requirements and Standards)
    • REQ-003 セキュリティユーザーストーリーと受け入れ基準 (Security User Stories and Acceptance Criterias)
    • REQ-004 セキュリティ課題の追跡 (Security Issues Tracking)
  • 設計 (Design) フェーズ
    • DES-001 セキュリティアーキテクチャ設計レビュー (Security Architecture Design Reviews)
    • DES-002 脅威モデリング (Threat Modelling)
  • コード/ビルド (Code/Build) フェーズ
    • CODE-001 セキュア開発環境 (Secure Development Environment)
    • CODE-002 ハードコードされたシークレットの検出 (Hardcoded Secrets Detection)
    • CODE-003 手動セキュアコードレビュー (Manual Secure Code Review)
    • CODE-004 静的アプリケーションセキュリティテスト (Static Application Security Testing, SAST)
    • CODE-005 ソフトウェアコンポジション解析 (Software Composition Analysis, SCA)
    • CODE-006 ソフトウェアライセンスコンプライアンス (Software License Compliance)
    • CODE-007 インライン IDE セキュアコード解析 (Inline IDE Secure Code Analysis)
    • CODE-008 コンテナセキュリティスキャン (Container Security Scanning)
    • CODE-009 セキュア依存関係管理 (Secure Dependency Management)
  • テスト (Test) フェーズ
    • TEST-001 セキュリティテスト管理 (Security Test Management)
    • TEST-002 動的アプリケーションセキュリティテスト (Dynamic Application Security Testing, DAST)
    • TEST-003 インタラクティブアプリケーションセキュリティテスト (Interactive Application Security Testing, IAST)
    • TEST-004 ペネトレーションテスト (Penetration Testing)
    • TEST-005 セキュリティテストカバレッジ (Security Test Coverage)
  • リリース/デプロイ (Release/Deploy) フェーズ
    • REL-001 成果物署名 (Artifact Signing)
    • REL-002 セキュア成果物管理 (Secure Artifact Management)
    • REL-003 シークレット管理 (Secret Management)
    • REL-004 セキュアコンフィグレーション (Secure Configuration)
    • REL-005 セキュリティポリシーの実施 (Security Policy Enforcement)
    • REL-006 Infrastructure-as-Code (IaC) セキュアデプロイメント (Infrastructure-as-Code (IaC) Secure Deployment)
    • REL-007 コンプライアンススキャン (Compliance Scanning)
    • REL-008 セキュアリリース管理 (Secure Release Management)
  • 運用/監視 (Operate/Monitor) フェーズ
    • OPR-001 環境の堅牢化 (Environment Hardening)
    • OPR-002 アプリケーションの堅牢化 (Application Hardening)
    • OPR-003 環境セキュリティログ記録 (Environment Security Logging)
    • OPR-004 アプリケーションセキュリティログ記録 (Application Security Logging)
    • OPR-005 脆弱性の開示 (Vulnerability Disclosure)
    • OPR-006 証明書管理 (Certificate Management)
    • OPR-007 攻撃対象領域管理 (Attack Surface Management)
Powered by GitBook
On this page
  • 動的アプリケーションセキュリティテスト (Dynamic Application Security Testing, DAST)
  • 概要
  • レベル 0 - 動的アプリケーションセキュリティテストを実施するためのツールがない
  • レベル 1 - オンデマンドスキャンを実行するツールを使用し、実行時にアプリケーション脆弱性を特定している
  • レベル 2 - ビルドパイプラインに動的アプリケーションセキュリティテストツールを実装し、自動スキャンを実行し、ビルドのステータスをレポートしている
  • レベル 3 - 発見された内容が自動的に一元管理された課題追跡システムに記録されており、ツールの有効性を定期的にレビューしている
  • 注目すべきツール
  • OWASP ZAP
  • Nuclei
  • 🙏 クレジット
  1. テスト (Test) フェーズ

TEST-002 動的アプリケーションセキュリティテスト (Dynamic Application Security Testing, DAST)

動的アプリケーションセキュリティテスト (Dynamic Application Security Testing, DAST)

ID

DSOVS-TEST-002

概要

動的アプリケーションセキュリティテスト (DAST) は脆弱性を検出するために、アプリケーションの実行中にアプリケーションのセキュリティを解析します。

アプリケーションを評価し、アプリケーションの動作を調べて潜在的な問題を特定することに焦点を当てています。ソースコードを深く理解する必要はありません。

このタイプのテストは操作と動作によるものです。テスト担当者は使用中に発生する問題を探し、ソフトウェア設計の起源までさかのぼります。DAST は発展途上のプロジェクトにおける基本的なセキュリティや業界標準のコンプライアンスを満たすのに役立ちます。

レベル 0 - 動的アプリケーションセキュリティテストを実施するためのツールがない

このレベルでのセキュリティ成熟度では、動的アプリケーションセキュリティ (DAST) スキャンを実行できるツールはありません。

レベル 1 - オンデマンドスキャンを実行するツールを使用し、実行時にアプリケーション脆弱性を特定している

このステージでは、 DAST ツールが存在しますが、スキャンはケースバイケースで実行されます。自動化されておらず、結果は報告や記録されない場合があります。

graph LR; Start-- DAST Scan -->Target-Application;

レベル 2 - ビルドパイプラインに動的アプリケーションセキュリティテストツールを実装し、自動スキャンを実行し、ビルドのステータスをレポートしている

ここでは、ソフトウェアビルドパイプラインに DAST スキャンが実装されています。つまり、ビルドが実行されるたびに、自動 DAST スキャンがトリガーされ、結果が報告されます。

graph LR; 
Start-- code push -->CICD-Pipeline-- DAST Scan -->Target-Application--DAST Results -->CICD-Pipeline; Target-Application-- Code Deployment -->Finish

レベル 3 - 発見された内容が自動的に一元管理された課題追跡システムに記録されており、ツールの有効性を定期的にレビューしている

動的アプリケーションセキュリティ (DAST) のレベル 3 はレベル 2 と同じですが、特定されたすべてのセキュリティ脆弱性が一元管理された課題追跡システムに記録され、シークレット検出ツールの有効性を評価するために定期的にレビューされることが追加されています。つまり、同じタイプの自動スキャンが実行されていますが、将来の使用と改善のために結果が収集、追跡、分析されているのです。

さらに、DAST を実装している成熟した組織は、CI/CD テンプレートの例や、プロキシ設定や OpenAPI 仕様 (OAS) ファイルのフェッチなどの組織固有の共通設定オプションなど、簡略化した設定ガイダンスをチームに提供することが多く、チーム間での DAST の採用をより簡単にします。

graph LR; 
Start-- code push -->CICD-Pipeline-- DAST Scan -->Target-Application--DAST Results -->Centralised-Issue-Tracker; Target-Application-- Code Deployment -->Finish

注目すべきツール

⚠️ 免責事項

OWASP の公式プロジェクトは別として、このセクションのツールはその実績のある機能のみに基づいて選択されており、DSOVS プロジェクトリーダーとそれらを保守する作成者やベンダーとの間には他の関係はありません。

OWASP Zed Attack Proxy (ZAP) は世界で最も人気のあるフリーのセキュリティツールの一つであり、献身的な国際ボランティアチームによって活発にメンテナンスされています。アプリケーションを開発してテストする際に、ウェブアプリケーションのセキュリティ脆弱性を自動的に見つけるのに役立ちます。また、経験豊富なペンテスト担当者が手動でセキュリティテストを行う際に使用する優れたツールでもあります。

Nuclei はテンプレートに基づいてターゲット全体にリクエストを送信するために使用され、誤検出をゼロにし、多数のホストで高速なスキャンを提供します。Nuclei は TCP, DNS, HTTP, SSL, File, Whois, Websocket, Headless などのさまざまなプロトコルのスキャンを提供します。強力で柔軟なテンプレートにより、Nuclei を使用してあらゆる種類のセキュリティチェックをモデル化できます。

name: Nuclei - Vulnerability Scan

on:
    schedule:
      - cron: '0 0 * * *'
    workflow_dispatch:

jobs:
  nuclei-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Nuclei - Vulnerability Scan
        uses: projectdiscovery/nuclei-action@main
        with:
          target: https://example.com

      - name: GitHub Workflow artifacts
        uses: actions/upload-artifact@v2
        with:
          name: nuclei.log
          path: nuclei.log

      - name: GitHub Security Dashboard Alerts update
        uses: github/codeql-action/upload-sarif@v2
        with:
          sarif_file: nuclei.sarif

🙏 クレジット

コミュニティへの素晴らしい貢献なしにはこれを実現できませんでした。使用された外部からのインスピレーションに感謝の意を表します。

PreviousTEST-001 セキュリティテスト管理 (Security Test Management)NextTEST-003 インタラクティブアプリケーションセキュリティテスト (Interactive Application Security Testing, IAST)

Last updated 1 year ago

注目すべきツールの提案がある場合には してください。

💡 ツールを提案
OWASP ZAP
on: [push]jobs: zap_scan: runs-on: ubuntu-latest name: Scan the webapplication steps: - name: Checkout uses: actions/checkout@v2 with: ref: master - name: ZAP Scan uses: zaproxy/action-baseline@v0.7.0 with: token: ${{ secrets.GITHUB_TOKEN }} docker_name: 'owasp/zap2docker-stable' target: 'https://www.zaproxy.org' rules_file_name: '.zap/rules.tsv' cmd_options: '-a'
dast: image: registry.gitlab.com/gitlab-org/security-products/zaproxy variables: website: "https://example.com" script: - mkdir /zap/wrk/ - /zap/zap-baseline.py -J gl-dast-report.json -t $website || true - cp /zap/wrk/gl-dast-report.json . artifacts: paths: [gl-dast-report.json]
resources: repositories: - repository: <repo_name> type: git name: <project_name>/<repo_name> ref: refs/heads/mastertrigger: nonestages:- stage: 'buildstage' jobs: - job: 'buildjob' pool: vmImage: 'ubuntu-latest' steps: - checkout: self - checkout: <repo_name> - bash: docker run -d -p <container_port>:<target_port> <your_image> displayName: 'App Container' - bash: | chmod -R 777 ./ docker run --rm -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py -t http://$(ip -f inet -o addr show docker0 | awk '{print $4}' | cut -d '/' -f 1):<container_port> -x xml_report.xml true displayName: 'Owasp Container Scan' - powershell: | $XslPath = "<repo_name>/xml_to_nunit.xslt" $XmlInputPath = "xml_report.xml" $XmlOutputPath = "converted_report.xml" $XslTransform = New-Object System.Xml.Xsl.XslCompiledTransform $XslTransform.Load($XslPath) $XslTransform.Transform($XmlInputPath, $XmlOutputPath) displayName: 'PowerShell Script' - task: PublishTestResults@2 displayName: 'Publish Test Results' inputs: testResultsFormat: 'NUnit' testResultsFiles: 'converted_report.xml'
Nuclei
Manas Peçenek
GitHub Actions
GitLab CI
Azure DevOps
GitHub Actions