Skip to content
これは pieceofcake2/security-dast のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

設定 ​

それぞれの設定は、コマンドのオプション、環境変数、設定ファイルのキーで指定します。オプションが環境変数より、環境変数が 設定ファイルより優先されます。

オプション ​

何をスキャンするか ​

オプション環境変数デフォルト
--project=DIRカレントディレクトリアプリケーションのディレクトリ
--url=URLSECURITY_DAST_URL組み込みウェブサーバーの代わりにスキャンする、起動済みのアプリケーションの URL
--webroot=DIRSECURITY_DAST_WEBROOTアプリケーションの WWW_ROOT組み込みウェブサーバーのドキュメントルート。プロジェクトからの相対パス
--app-env=ENVSECURITY_DAST_APP_ENVtest組み込みウェブサーバー (と End-to-End テスト) の APP_ENV
--exclude=LISTSECURITY_DAST_EXCLUDE.*logout.*除く URL の正規表現 (Java のもの)。カンマ区切り

どうスキャンするか ​

オプション環境変数デフォルト
--scan=SCANSECURITY_DAST_SCANbaselinebaseline、またはページも攻撃する full (スキャンの種類)
--scan-minutes=NSECURITY_DAST_SCAN_MINUTES10フルスキャンの攻撃の最大の分数
--minutes=NSECURITY_DAST_MINUTES1サイトをクロールする分数
--ajax-spider=1SECURITY_DAST_AJAX_SPIDERJavaScript が作るリンクのために、ブラウザでもクロールします
--end-to-end=COMMANDSECURITY_DAST_END_TO_ENDクロールの代わりにスキャンする End-to-End テストのコマンド (End-to-End テスト)
--login-url=PATHSECURITY_DAST_LOGIN_URLユーザーとしてスキャンするときのログインページ。パスか URL (ログイン)
--username=NAMESECURITY_DAST_USERNAMEログインするユーザー
--password=PASSWORDSECURITY_DAST_PASSWORDそのパスワード。環境変数で渡してください

結果 ​

オプション環境変数デフォルト
--pdf=PATHSECURITY_DAST_PDFtmp/security-dast.pdfPDF の報告書
--fail-on=RISKSECURITY_DAST_FAIL_ONhigh不合格にする最も低いリスク。high、medium、low、info、none
--ignore=LISTSECURITY_DAST_IGNORE報告書から除くアラート ID。カンマ区切り (アラートを除外する)
--language=LANGSECURITY_REPORT_LANGUAGEenen か ja、または --locale-dir の言語
--locale-dir=DIRSECURITY_REPORT_LOCALE_DIRメッセージを足したり置き換えたりする <言語>.json のディレクトリ
--title=TITLESECURITY_DAST_TITLE言語のタイトル報告書のタイトル
--project-name=NAMESECURITY_REPORT_PROJECTcomposer.json の名前タイトルの下のプロジェクト名
--note=TEXTSECURITY_DAST_NOTE表紙の注記

ZAP と Docker ​

オプション環境変数デフォルト
--image=IMAGESECURITY_DAST_IMAGEghcr.io/zaproxy/zaproxy:stableZAP の Docker イメージ。バージョンを固定するときは ghcr.io/zaproxy/zaproxy:2.17.0 など
--docker=COMMANDSECURITY_DAST_DOCKERdockerDocker のコマンド。podman など
--zap-options=OPTIONSSECURITY_DAST_ZAP_OPTIONSZAP のほかのオプション。空白区切り。-config spider.maxDepth=5 など
--settings=FILESECURITY_SETTINGSconfig/security.php か app/Config/security.php設定ファイル

PDF を印刷する Chrome は、pieceofcake2/report の REPORT_CHROME_BINARY と REPORT_NO_SANDBOX で指定します。

設定ファイル ​

pieceofcake2 のセキュリティ診断の設定は、プロジェクトの config/security.php (従来の構成では app/Config/security.php) にまとめられます。診断ごとのセクション sca、sast、dast と、共通の report セクションを持つ配列を返します。

php
<?php
// config/security.php
return [
    'report' => [
        'language' => 'ja',
        'dir' => 'tmp/security',
        'project' => 'Acme',
    ],
    'dast' => [
        'scan' => 'full',
        'scanMinutes' => 20,
        'failOn' => 'medium',
        'endToEnd' => 'vendor/bin/phpunit --testsuite EndToEnd',
        'loginUrl' => '/users/login',
        'username' => 'test@example.com',
        'password' => getenv('SECURITY_DAST_PASSWORD') ?: null,
        'exclude' => ['.*/users/logout.*', '.*/users/delete.*'],
        'ignore' => ['10049'],
    ],
];
  • dast セクションのキーは、オプションをキャメルケースにしたものです (--fail-on は failOn、--end-to-end は endToEnd)。リストは配列で書きます。知らないキーはエラーになります。
  • report セクションには language、localeDir、project (プロジェクト名)、note と、報告書のディレクトリ dir が あります。この例では tmp/security/security-dast.pdf に書き出します。
  • ファイルは PHP です。秘密は環境変数から読み、ファイルはコミットしてください。

ファイルの設定は、オプションや環境変数を指定しなければ使われます。たとえば、毎晩のフルスキャンの設定のまま、push の たびにはベースラインスキャンをします。

bash
SECURITY_DAST_SCAN=baseline vendor/bin/security-dast

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。