DastardlyとTeamCityを連携できます。これにより、既存のCI/CDパイプラインのステージとして、DastardlyのWeb脆弱性スキャンを実行できます。
このページでは、簡単な(サンプルの)TeamCity CI/CDパイプラインとDastardlyを連携する方法を説明します。この手順は、TeamCity 2022.04.4でテストされています。
TeamCityエージェントは、Dockerコンテナを実行するように設定されている必要があります。
DastardlyをTeamCityのCI/CDパイプラインで実行するために、TeamCityのデフォルト以外のプラグインは必要ありません。
Dastardlyスキャンを実行するために必要なマシンスペックは、Dastardlyのシステム要件を参照してください。
settings.kts
ファイルが格納されているリポジトリに、TeamCityからアクセスする設定を行います。
settings.kts
ファイルに次の内容を追加します:
import jetbrains.buildServer.configs.kotlin.* import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep import jetbrains.buildServer.configs.kotlin.buildSteps.script version = "2022.04" project { description = "Contains all other projects" buildType(DastardlyScan) } object DastardlyScan : BuildType({ name = "Dastardly from Burp Suite Scan" vcs { cleanCheckout = true } features { feature { type = "xml-report-plugin" param("xmlReportParsing.reportType", "junit") param("xmlReportParsing.reportDirs", "+:**/reports/**.xml") } } steps { script { name = "Dastardly from Burp Suite Scan" dockerImage = "public.ecr.aws/portswigger/dastardly:latest" dockerPull = true dockerImagePlatform = ScriptBuildStep.ImagePlatform.Linux dockerRunParameters = """ -e DASTARDLY_TARGET_URL=https://ginandjuice.shop/ -e DASTARDLY_OUTPUT_FILE=%teamcity.build.checkoutDir%/reports/dastardly-report.xml """.trimIndent() scriptContent = """ mkdir -p %system.teamcity.build.workingDir%/reports docker-entrypoint.sh dastardly """.trimIndent() } } artifactRules = """ reports/** => reports """.trimIndent() })
DASTARDLY_TARGET_URL
には、スキャンするアプリケーションの開始URLを指定します。
この例では、DASTARDLY_TARGET_URL
にhttps://ginandjuice.shop/
が設定されています - これはWeb脆弱性スキャナをテストするために設計された、意図的に脆弱性を作り込んだWebアプリケーションです。
次にパイプラインが実行されるとき、DastardlyはDASTARDLY_TARGET_URLで
設定したアプリケーションをスキャンします。
TeamCityのメインインタフェースで、New project...クリックし、プロジェクト階層内の適切な場所を選択します。
手動が選択されているか確認します。
プロジェクトに名前を付けます。説明も追加できます。
作成をクリックします。
バージョン対応設定をクリックします。
同期を有効を選択します。
プロジェクト設定VCSルートで、VCSルート作成をクリックするか、プロジェクト設定VCSルートドロップダウンから既存のオプションを選択します。
設定フォーマットがKotlinに設定されているか確認します。
適用をクリックします。
既存のプロジェクト設定を検知ポップアップで、VCSから設定をインポートをクリックします。
Dastardlyを含むTeamCityプロジェクトを実行し、スキャンが完了するのを待ちます。スキャンは最大で10分間実行されます。
TeamCityのメインインタフェースから、Dastardlyを含むプロジェクトをクリックします。
Dastardly from Burp Suite Scanで、スキャンを含むビルドをクリックします。
テストをクリックします。ここで、失敗したテストを確認できます。失敗したテストをクリックすると、その詳細が表示されます。
Dastardlyが発見したセキュリティ問題に対する改善アドバイスは、Stacktraceで確認できます。ここには、無償のWebセキュリティアカデミーリソースの、関連セクションへのリンクもあります。こちらでWebセキュリティの脆弱性についてさらに詳しく説明しています。
Dastardlyが発見したセキュリティ問題の証拠は、Stacktraceで見られます。この証拠には、問題を見つけるためにDastardlyが送信したリクエストと、アプリケーションから送信されたレスポンスが含まれます。