DastardlyとJenkinsを連携できます。これにより、既存のCI/CDパイプラインのステージとして、DastardlyのWeb脆弱性スキャンを実行できます。
このページでは、簡単な(サンプルの)Jenkins CI/CDパイプラインとDastardlyを連携する方法を説明します。この手順は、Jenkins 2.361.2でテストされています。
Jenkinsサーバまたはビルドノードに、Dockerがインストールされている必要があります。
DastardlyをJenkinsのCI/CDパイプラインで実行するために、Jenkinsのデフォルト以外のプラグインは必要ありません。
Dastardlyスキャンを実行するために必要なマシンスペックは、Dastardlyのシステム要件を参照してください。
Jenkins Dashboardで、新規ジョブ作成をクリックします。
パイプラインのジョブ名を入力し、パイプラインをクリックし、OKをクリックします。
パイプラインに説明を記述できます。
サイドメニューで、パイプラインをクリックします。
定義ドロップダウンで、Pipeline script from SCMを選択します。
パイプラインセクションで、コードリポジトリの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_URL
にhttps://ginandjuice.shop/
が設定されています - これはWeb脆弱性スキャナをテストするために設計された、意図的に脆弱性を作り込んだWebアプリケーションです。
次にパイプラインが実行されるとき、DastardlyはDASTARDLY_TARGET_URLで
設定したアプリケーションをスキャンします。
Dastardlyを含むJenkinsパイプラインを実行し、スキャンが完了するのを待ちます。スキャンは最大で10分間実行されます。
スキャン結果にアクセスするには、ビルド履歴の下にある最新のビルドをクリックします。
テスト結果をクリックします。ここで、失敗したテストを確認できます。失敗したテストをクリックすると、その詳細が表示されます。
Dastardlyが発見したセキュリティ問題に対する改善アドバイスは、Stacktraceで確認できます。ここには、無償のWebセキュリティアカデミーリソースの、関連セクションへのリンクもあります。こちらでWebセキュリティの脆弱性についてさらに詳しく説明しています。
Dastardlyが発見したセキュリティ問題の証拠は、Stacktraceで見られます。この証拠には、問題を見つけるためにDastardlyが送信したリクエストと、アプリケーションから送信されたレスポンスが含まれます。