利用可能なCI/CD変数
これらのCI/CD変数は、ブラウザベースのDASTアナライザーに固有のものです。DASTの動作を要件に合わせてカスタマイズできます。
スキャナーの動作
これらの変数は、スキャンがどのように実行され、その結果がどこに保存されるかを制御します。
| CI/CD変数 | 種類 | 例 | 説明 |
|---|---|---|---|
DAST_CHECKS_TO_EXCLUDE | 文字列 | 552.2,78.1 | スキャンから除外するチェック識別子のカンマ区切りリスト。識別子については、脆弱性チェックを参照してください。 |
DAST_CHECKS_TO_RUN | 文字列のリスト | 16.1,16.2,16.3 | スキャンに使用するチェック識別子のカンマ区切りリスト。識別子については、脆弱性チェックを参照してください。 |
DAST_CRAWL_GRAPH | ブール値 | true | スキャンのクロールフェーズ中に訪問したナビゲーションパスのSVGグラフを生成するには、trueに設定します。生成されたグラフにアクセスするには、gl-dast-crawl-graph.svgをCIジョブアーティファクトとして定義する必要もあります。falseがデフォルトです。 |
DAST_FULL_SCAN | ブール値 | true | パッシブチェックとアクティブチェックの両方を実行するには、trueに設定します。デフォルトはfalseです。 |
DAST_LOG_BROWSER_OUTPUT | ブール値 | true | ChromiumのSTDOUTおよびSTDERRをログ出力するには、trueに設定します。 |
DAST_LOG_CONFIG | 文字列のリスト | brows:debug,auth:debug | (非推奨)コンソールログで使用するモジュールとその意図されたログレベルのリスト。 |
DAST_LOG_DEVTOOLS_CONFIG | 文字列 | Default:messageAndBody,truncate:2000 | DASTとChromiumブラウザ間のプロトコルメッセージをログ出力するように設定します。 |
DAST_LOG_FILE_CONFIG | 文字列のリスト | brows:debug,auth:debug | ファイルログで使用するモジュールとその意図されたログレベルのリスト。 |
DAST_LOG_FILE_PATH | 文字列 | /output/browserker.log | ファイルログのパスを設定します。デフォルトはgl-dast-scan.logです。 |
SECURE_ANALYZERS_PREFIX | URL | registry.organization.com | アナライザーをダウンロードするDockerレジストリのベースアドレスを設定します。 |
SECURE_LOG_LEVEL | 文字列 | debug | ファイルログのデフォルトレベルを設定します。SECURE_LOG_LEVELを参照してください。 |
要素、アクション、およびタイムアウト
これらの変数は、スキャナーが特定の要素をどこで探し、どのアクションを実行し、操作が完了するまでどのくらいの時間待機するかを指示します。
| CI/CD変数 | 種類 | 例 | 説明 |
|---|---|---|---|
DAST_ACTIVE_SCAN_TIMEOUT | Duration string | 3h | スキャンのアクティブスキャンフェーズが完了するまでの最大待機時間。デフォルトは3時間です。 |
DAST_ACTIVE_SCAN_WORKER_COUNT | 数値 | 3 | 並行して実行するアクティブチェックの数。デフォルトは3です。 |
DAST_CRAWL_MAX_ACTIONS | 数値 | 10000 | クローラーが実行するアクションの最大数。アクションの例として、リンクの選択やフォームの入力などがあります。10000がデフォルトです。 |
DAST_CRAWL_MAX_DEPTH | 数値 | 10 | クローラーが実行する連鎖アクションの最大数。例えば、Click, Form Fill, Clickは深度3です。10がデフォルトです。 |
DAST_CRAWL_TIMEOUT | Duration string | 5m | スキャンのクロールフェーズが完了するまでの最大待機時間。24hがデフォルトです。 |
DAST_CRAWL_WORKER_COUNT | 数値 | 3 | 使用する同時ブラウザインスタンスの最大数。GitLab.com上のインスタンスRunnerの場合、最大3つを推奨します。より多くのリソースを持つプライベートRunnerは、より多くの数でメリットを得られる可能性がありますが、5〜7インスタンスを超えるとほとんど効果が期待できません。デフォルト値は動的で、使用可能な論理CPUの数に等しいです。 |
DAST_PAGE_DOM_READY_TIMEOUT | Duration string | 7s | ナビゲーションが完了した後、ページの読み込みが完了し、解析の準備ができたとブラウザが見なすまで待機する最大時間。6sがデフォルトです。 |
DAST_PAGE_DOM_STABLE_WAIT | Duration string | 200ms | ページが安定しているかどうかをチェックする前に、DOMへの更新を待機する時間を定義します。500msがデフォルトです。 |
DAST_PAGE_ELEMENT_READY_TIMEOUT | Duration string | 600ms | 要素が分析の準備ができたと判断されるまでに待機する最大時間。300msがデフォルトです。 |
DAST_PAGE_IS_LOADING_ELEMENT | selector | css:#page-is-loading | ページ上で表示されなくなったときに、アナライザーにページの読み込みが完了し、スキャンを続行できることを示すセレクター。DAST_PAGE_IS_READY_ELEMENTとは併用できません。 |
DAST_PAGE_IS_READY_ELEMENT | selector | css:#page-is-ready | ページ上で表示されたときに、アナライザーにページの読み込みが完了し、スキャンを続行できることを示すセレクター。DAST_PAGE_IS_LOADING_ELEMENTとは併用できません。 |
DAST_PAGE_MAX_RESPONSE_SIZE_MB | 数値 | 15 | HTTPレスポンスボディの最大サイズ。これより大きいボディを持つレスポンスは、ブラウザによってブロックされます。デフォルトは10 MBです。 |
DAST_PAGE_READY_AFTER_ACTION_TIMEOUT | Duration string | 7s | ページの読み込みが完了し、解析の準備ができたとブラウザが見なすまで待機する最大時間。7sがデフォルトです。 |
DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT | Duration string | 15s | ブラウザが別のページにナビゲートするまで待機する最大時間。15sがデフォルトです。 |
DAST_PASSIVE_SCAN_WORKER_COUNT | int | 5 | 並行してパッシブスキャンを実行するワーカーの数。デフォルトは利用可能なCPUの数です。 |
DAST_PKCS12_CERTIFICATE_BASE64 | 文字列 | ZGZkZ2p5NGd... | 相互TLSを必要とするサイトに使用されるPKCS12証明書。base64テキストとしてエンコードする必要があります。 |
DAST_PKCS12_PASSWORD | 文字列 | password | DAST_PKCS12_CERTIFICATE_BASE64で使用される証明書のパスワード。GitLabのUIを使用して、機密性の高いカスタムCI/CD変数を作成します。 |
DAST_REQUEST_ADVERTISE_SCAN | ブール値 | true | 送信されたすべてのリクエストにVia: GitLab DAST <version>ヘッダーを追加し、そのリクエストがGitLab DASTスキャンの一部として送信されたことを通知するには、trueに設定します。デフォルトはfalseです。 |
DAST_REQUEST_COOKIES | 辞書 | abtesting_group:3,region:locked | すべてのリクエストに追加するクッキー名と値。 |
DAST_REQUEST_HEADERS | 文字列 | Cache-control:no-cache | リクエストヘッダーの名前と値のカンマ区切りリストに設定します。以下のヘッダーはサポートされていません: content-length, cookie2, keep-alive, hosts, trailer, transfer-encoding, およびproxy-プレフィックスを持つすべてのヘッダー。 |
DAST_REQUEST_USER_AGENT | 文字列 | ブラウザから送信されるユーザーエージェント文字列を変更するように設定します。デフォルトのユーザーエージェントはLinux上のGoogle Chromeです。 | |
DAST_SCOPE_ALLOW_HOSTS | 文字列のリスト | site.com,another.com | この変数に含まれるホスト名は、クロール時にスコープ内と見なされます。デフォルトでは、DAST_TARGET_URLホスト名が許可されたホストリストに含まれます。DAST_REQUEST_HEADERSを使用して設定されたヘッダーは、これらのホスト名に対して行われるすべてのリクエストに追加されます。 |
DAST_SCOPE_EXCLUDE_ELEMENTS | selector | a[href='2.html'],css:.no-follow | スキャン時に無視されるセレクターのカンマ区切りリスト。 |
DAST_SCOPE_EXCLUDE_HOSTS | 文字列のリスト | site.com,another.com | この変数に含まれるホスト名は除外され、接続は強制的に切断されます。 |
DAST_SCOPE_IGNORE_HOSTS | 文字列のリスト | site.com,another.com | この変数に含まれるホスト名にはアクセスされますが、攻撃はされず、報告もされません。 |
DAST_TARGET_CHECK_SKIP | ブール値 | true | スキャンする前に、DASTがターゲットが利用可能であることをチェックしないようにするには、trueに設定します。デフォルトはfalseです。 |
DAST_TARGET_CHECK_TIMEOUT | 数値 | 60 | ターゲットが利用可能になるまでの待機タイムアウト(秒単位)。デフォルトは60sです。 |
DAST_TARGET_PATHS_FILE | 文字列 | /builds/project/urls.txt | サイト全体をクロールする代わりに、これらのパスのみをスキャンします。DAST_TARGET_URLに対するURLパスのリストを含むファイルパスに設定します。ファイルは、1行に1つのパスを含むプレーンテキストである必要があります。これを設定すると、DAST_CRAWL_MAX_DEPTHはデフォルトで1になります。これを防ぐには、DAST_OVERRIDE_MAX_DEPTH: falseを設定します。 |
DAST_TARGET_PATHS | 文字列 | /page1.html,/category1/page3.html | サイト全体をクロールする代わりに、これらのパスのみをスキャンします。DAST_TARGET_URLに対するURLパスのカンマ区切りリストに設定します。これを設定すると、DAST_CRAWL_MAX_DEPTHはデフォルトで1になります。これを防ぐには、DAST_OVERRIDE_MAX_DEPTH: falseを設定します。 |
DAST_TARGET_URL | URL | https://site.com | スキャンするWebサイトのURL。 |
DAST_USE_CACHE | ブール値 | true | キャッシュを無効にするには、falseに設定します。デフォルトはtrueです。注: キャッシュを無効にすると、OOMイベントまたはDASTジョブのタイムアウトが発生する可能性があります。 |
DAST_CRAWL_GROUPED_URLS | 文字列 | https://example.com/hello/*,https://example.com/world/*/details | (実験的)少なくとも1つの*を含むワイルドカードURLパターンをカンマ区切りリストで設定します。スキャン時間を短縮するために、スキャナーはパターンごとに1つの一致したURLのみをグループ化して分析します。 |
認証
これらの変数は、スキャナーがアプリケーションでどのように認証するかを指示します。
| CI/CD変数 | 種類 | 例 | 説明 |
|---|---|---|---|
DAST_AUTH_AFTER_LOGIN_ACTIONS | 文字列 | select(option=id:accept-yes),click(on=css:.continue) | ログイン後、ログイン検証の前に実行するアクションのカンマ区切りリスト。clickとselectアクションをサポートします。ログインフォーム送信後の追加アクションを参照してください。 |
DAST_AUTH_BEFORE_LOGIN_ACTIONS | selector | css:.user,id:show-login-form | DAST_AUTH_USERNAMEおよびDAST_AUTH_PASSWORDをログインフォームに入力する前にクリックする要素を表すセレクターのカンマ区切りリスト。 |
DAST_AUTH_CLEAR_INPUT_FIELDS | ブール値 | true | 手動ログインを試みる前に、ユーザー名とパスワードのフィールドをクリアするのを無効にします。デフォルトではfalseに設定されています。 |
DAST_AUTH_COOKIE_NAMES | 文字列 | sessionID,groupName | 認証に使用するクッキーを指定するために、クッキー名のカンマ区切りリストに設定します。 |
DAST_AUTH_FIRST_SUBMIT_FIELD | selector | css:input[type=submit] | 複数ページのログインプロセスで、ユーザー名フォームを送信するためにクリックされる要素を記述するセレクター。 |
DAST_AUTH_NEGOTIATE_DELEGATION | 文字列 | *.example.com,example.com,*.EXAMPLE.COM,EXAMPLE.COM | 統合認証と委任に許可されるべきサーバー。このプロパティは2つのChromiumポリシーを設定します: AuthServerAllowlistおよびAuthNegotiateDelegateAllowlist。GitLab 17.6で導入されました。 |
DAST_AUTH_OTP_FIELD | selector | name:otp | ログインフォームでワンタイムパスワードを入力するために使用される要素を記述するセレクター。 |
DAST_AUTH_OTP_KEY | 文字列 | I5UXITDBMIQEIQKTKQFA==== | ウェブサイトに認証するためのワンタイムパスワードを生成する際に使用するBase32エンコードされたシークレットキー。 |
DAST_AUTH_OTP_SUBMIT_FIELD | selector | css:input[type=submit] | ユーザー名とは別のOTPフォームを送信するためにクリックされる要素を記述するセレクター。 |
DAST_AUTH_PASSWORD | 文字列 | P@55w0rd! | ウェブサイトで認証するためのパスワード。 |
DAST_AUTH_PASSWORD_FIELD | selector | name:password | ログインフォームでパスワードを入力するために使用される要素を記述するセレクター。 |
DAST_AUTH_SUBMIT_FIELD | selector | css:input[type=submit] | シングルページログインフォームのログインフォーム、または複数ページログインフォームのパスワードフォームを送信するためにクリックされる要素を記述するセレクター。 |
DAST_AUTH_SUCCESS_IF_AT_URL | URL | https://www.site.com/welcome* | ログインフォームが送信された後、認証が成功したかどうかを判断するために、ブラウザのURLと比較されるURL。ワイルドカード*は、動的なURLに一致させるために使用できます。 |
DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND | selector | css:.user-avatar | ログインフォームが送信された後、認証が成功したかどうかを判断するために、その存在が使用される要素を記述するセレクター。 |
DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM | ブール値 | true | ログインフォームが送信された後、ログインフォームが存在しないことを確認することによって、成功した認証を検証します。この成功チェックはデフォルトで有効になっています。 |
DAST_AUTH_TYPE | 文字列 | basic-digest | 使用する認証タイプ。 |
DAST_AUTH_URL | URL | https://www.site.com/login | ターゲットウェブサイト上のログインフォームを含むページのURL。DAST_AUTH_USERNAMEとDAST_AUTH_PASSWORDは、認証済みスキャンを作成するためにログインフォームとともに送信されます。 |
DAST_AUTH_USERNAME | 文字列 | user@email.com | ウェブサイトで認証するためのユーザー名。 |
DAST_AUTH_USERNAME_FIELD | selector | name:username | ログインフォームでユーザー名を入力するために使用される要素を記述するセレクター。 |
DAST_SCOPE_EXCLUDE_URLS | URL | https://site.com/.*/sign-out | 認証済みスキャン中にスキップするURL。カンマ区切り。複数のURLに一致させるには、正規表現構文を使用できます。例えば、.*は任意の文字シーケンスに一致します。 |
DAST_AUTH_REPORT | ブール値 | true | 認証プロセス中に実行された手順を詳述するレポートを生成するには、trueに設定します。生成されたレポートにアクセスするには、gl-dast-debug-auth-report.htmlをCIジョブアーティファクトとして定義する必要もあります。このレポートの内容は、認証の失敗をデバッグする際に役立ちます。falseがデフォルトです。 |