DastardlyとJenkinsの連携

DastardlyとJenkinsを連携できます。これにより、既存のCI/CDパイプラインのステージとして、DastardlyのWeb脆弱性スキャンを実行できます。

このページでは、簡単な(サンプルの)Jenkins CI/CDパイプラインとDastardlyを連携する方法を説明します。この手順は、Jenkins 2.361.2でテストされています。

Jenkinsサーバの要件

Jenkinsサーバまたはビルドノードに、Dockerがインストールされている必要があります。

DastardlyをJenkinsのCI/CDパイプラインで実行するために、Jenkinsのデフォルト以外のプラグインは必要ありません。

Dastardlyスキャンを実行するために必要なマシンスペックは、Dastardlyのシステム要件を参照してください。

Jenkinsパイプラインの設定

  1. Jenkins Dashboardで、新規ジョブ作成をクリックします。

  2. パイプラインのジョブ名を入力し、パイプラインをクリックし、OKをクリックします。

    Jenkinsで新しいパイプラインを作成。
  3. パイプラインに説明を記述できます。

  4. サイドメニューで、パイプラインをクリックします。

  5. 定義ドロップダウンで、Pipeline script from SCMを選択します。

  6. パイプラインセクションで、コードリポジトリのJenkinsfileを指すように設定します。リポジトリへのアクセスに使用される認証情報を含める必要があります。

  7. 保存をクリックします。

    Jenkinsでパイプラインを設定。

Jenkinsfileの作成

対応するコードリポジトリの場所にJenkinsfileファイルを作成します。ファイルには次の内容を追加します:

// Jenkinsfile (Declarative Pipeline) for integration of Dastardly, from Burp Suite. pipeline { agent any stages { stage ("Docker Pull Dastardly from Burp Suite container image") { steps { sh 'docker pull public.ecr.aws/portswigger/dastardly:latest' } } stage ("Docker run Dastardly from Burp Suite Scan") { steps { cleanWs() sh ''' docker run --user $(id -u) -v ${WORKSPACE}:${WORKSPACE}:rw \ -e DASTARDLY_TARGET_URL=https://ginandjuice.shop/ \ -e DASTARDLY_OUTPUT_FILE=${WORKSPACE}/dastardly-report.xml \ public.ecr.aws/portswigger/dastardly:latest ''' } } } post { always { junit testResults: 'dastardly-report.xml', skipPublishingChecks: true } } }

DASTARDLY_TARGET_URLには、スキャンするアプリケーションの開始URLを指定します。

この例では、DASTARDLY_TARGET_URLhttps://ginandjuice.shop/が設定されています - これはWeb脆弱性スキャナをテストするために設計された、意図的に脆弱性を作り込んだWebアプリケーションです。

次にパイプラインが実行されるとき、DastardlyはDASTARDLY_TARGET_URLで設定したアプリケーションをスキャンします。

JenkinsでDastardlyのスキャン結果を表示

  1. Dastardlyを含むJenkinsパイプラインを実行し、スキャンが完了するのを待ちます。スキャンは最大で10分間実行されます。

  2. スキャン結果にアクセスするには、ビルド履歴の下にある最新のビルドをクリックします。

  3. テスト結果をクリックします。ここで、失敗したテストを確認できます。失敗したテストをクリックすると、その詳細が表示されます。

改善アドバイス

Dastardlyが発見したセキュリティ問題に対する改善アドバイスは、Stacktraceで確認できます。ここには、無償のWebセキュリティアカデミーリソースの、関連セクションへのリンクもあります。こちらでWebセキュリティの脆弱性についてさらに詳しく説明しています。

Jenkinsで示されるDastardlyのセキュリティ問題改善アドバイス。
Dastardlyが発見したセキュリティ問題に対する改善アドバイス。

証拠

Dastardlyが発見したセキュリティ問題の証拠は、Stacktraceで見られます。この証拠には、問題を見つけるためにDastardlyが送信したリクエストと、アプリケーションから送信されたレスポンスが含まれます。

Jenkinsで表示される、Dastardlyのセキュリティ問題の証拠
Dastardlyが発見したセキュリティ問題の証拠。