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

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

| ID             |
| -------------- |
| DSOVS-TEST-002 |

### 概要

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

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

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

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

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

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

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

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

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

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

```mermaid
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 の採用をより簡単にします。

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

## 注目すべきツール

⚠️ **免責事項**

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

注目すべきツールの提案がある場合には [💡 ツールを提案](https://github.com/OWASP/www-project-devsecops-verification-standard/discussions/categories/ideas) してください。

### [OWASP ZAP](https://github.com/zaproxy/zaproxy)

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

[![](/files/Iozm1LOC3Mvvsey4v8bC) GitHub Actions](https://github.com/zaproxy/zaproxy)

[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'](https://github.com/zaproxy/zaproxy)

[![](/files/bPRsBO8uJDMhM9zZsbaT) GitLab CI](https://gitlab.com/gitlab-org/security-products/dependencies/zaproxy)

[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\]](https://gitlab.com/gitlab-org/security-products/dependencies/zaproxy)

[![](/files/iiFvQrCAakgai41Lm5Kv) Azure DevOps](https://medium.com/adessoturkey/owasp-zap-security-tests-in-azure-devops-fe891f5402a4)

[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'](https://medium.com/adessoturkey/owasp-zap-security-tests-in-azure-devops-fe891f5402a4)

### [Nuclei](https://github.com/projectdiscovery/nuclei)

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

[![](/files/Iozm1LOC3Mvvsey4v8bC) GitHub Actions](https://github.com/projectdiscovery/nuclei-action)

```
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
```

### 🙏 クレジット

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

* [Manas Peçenek](https://www.linkedin.com/in/manas-pecenek-1812pr/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coky-t.gitbook.io/owasp-devsecops-verification-standard-ja/tesuto-test-fzu/test-002-dynamic-application-security-testing-dast.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
