このセクションの内容:

はじめに

OWASP dependency-check は、Java および .NET プロジェクトをスキャンし、既知の脆弱なコンポーネントの使用を特定するオープンソースのツールです。Parasoft OWASP Dependency Check Pack は、OWASP dependency-check ツールの結果を読み取り、標準化されたフォーマットで Parasoft DTP に脆弱性をレポートします。これにより、DTPはウィジェットにデータを表示し、脆弱性に対処するための修復パスを提供できます。 

脆弱性は、DTP で OWASP Top 10 2021 A6: Vulnerable and Outdated Components ガイドラインの違反としてレポートされます。OWASP Dependency Check Pack のデータを Parasoft Jtest または dotTEST のコード解析結果とマージして、OWASP セキュリティ コンプライアンス イニシアチブを完全に実装します。

  


要件

  • Java Runtime 11
  • X-Server へのアクセス (Linux のみ)。DISPLAY 変数を設定し、xhost コマンド (xtest + の実行) のアクセス制御を無効にする必要があります。この設定は、HTML レポートの概要の画像を正しく表示するために必要です。
  • XML 形式の OWASP dependency-check の結果。詳細については OWASP dependency-check のドキュメントを参照してください。
  • OWASP dependency check 6.4.1 の解析がサポートされています。

デプロイメント

OWASP Dependency Check Pack は Parasoft Security Bundle に同梱されています。

  1. security-bundle-<version>.zip ファイルの内容を展開します。この zip ファイルには、dependency-check-<version>.zip および security-compliance-pack-<version>.zip が含まれています。  
  2. 目的の場所に dependency-check-pack-<version>.zip ファイルの内容を展開します。Windows のデフォルトの解凍機能など、一部のファイル解凍ツールは、OWASP Dependency Check Pack を展開するためのディレクトリを作成します。ファイル解凍ツールがディレクトリを自動的に作成しない場合、インストール ホーム ディレクトリを作成することを推奨します。 
  3. DTP 環境に Security Compliance Pack をインストールする操作指示に従います。この手順は、OWASP Dependency Check Pack を実行するために必須ではありませんが、DTP で結果を表示するために必要です。

OWASP dependency-check のルール ドキュメント

DTP で OWASP dependency-check のルール ドキュメントを表示するには、OWASP Dependency Check Pack に同梱されているルールを DTP のルール ディレクトリにコピーする必要があります。 

<DEPENDENCY_CHECK_INSTALL>/rulesdoc/dependencycheck/ ディレクトリの内容を <DTP_INSTALL>/tomcat/webapps/grs/rulesdoc/ ディレクトリにコピーします。

ルールをコピーした後、OWASP dependency-check の違反に関連するドキュメントが 違反エクスプローラー の [ドキュメント] タブなどの DTP インターフェイスで利用できるようになります。 

DTP への接続

OWASP Dependency Check Pack は個別のツールであり、ライセンスを取得して結果を DTP プロジェクトに送るために DTP に接続する必要があります。インストール ディレクトリにある settings.properties ファイルで以下の設定を指定します。

dtp.server

DTP サーバーのホスト名を指定します。

dtp.port

DTP のポート番号を指定します。デフォルトは 8443 です。

dtp.user

DTP 認証用のユーザー名を指定します。

dtp.password

DTP 認証用のパスワードを指定します。-encodepass パラメーターを付けて dependency.sh または dependency.bat を実行することで、DTP パスワードを暗号化できます。例:

./dependencycheck.sh -encodepass=<mypassword>

dtp.project

結果をリンクする 既存の DTP プロジェクト名を指定します。 

build.id

データを関連付けるビルドを指定します。正確な結果を得るために、ビルド ID は静的解析ツールで設定されているビルド ID と一致している必要があります。 

使用方法

まだ行っていない場合は、OWASP dependency-check を実行します。結果は XML ファイルに出力する必要があります。OWASP Dependency Check Pack を使用してこれらの結果を Parasoft DTP に送信するには:

  1. コマンド プロンプトを開き、OWASP Dependency Check Pack のインストール ディレクトリに移動します。
  2. -results.file パラメーターを使って OWASP dependency-check の結果を指定して、.BAT または .SH スクリプトを実行します。例:

    ./dependencycheck.sh -results.file="/Users/admin/Desktop/dependency_check.xml"

    -results.file が唯一の必須パラメーターですが、次の任意のパラメーターを渡すことができます。

    -parasoft.local.storage.dir

    この設定は、生成されたログ ファイルの場所を指定します。推奨する場所は ${project.base.dir}/.dependencycheck です。

    例:

    -parasoft.local.storage.dir=.dependencycheck

    -settings

    デフォルトでは、OWASP Dependency Check Pack はインストール ディレクトリ内の settings.properties ファイルを参照しますが、この設定を使用して別の構成ファイルを指定することもできます。例:

    -settings=C:\my-team-configs\my-settings.properties

結果の表示

OWASP Dependency Check Pack を実行した後、結果は 2 種類の方法で出力されます。

  • ローカルの Parasoft HTML レポートとして。ローカルの HTML レポート (およびレポートに渡される XML データ) は、実行後に <INSTALL>/reports ディレクトリに保存されます。
  • DTP に送信され、ウィジェット、レポート、およびその他のビジュアルな UI に表示されます。脆弱性は、DTP で OWASP Top 10 2021 A6: Vulnerable and Outdated Components ガイドラインの違反としてレポートされます。DTP で違反を確認する方法については「OWASP Compliance」を参照してください。

OWASP Top 10 2017 として DTP に結果を送信する

上記の「結果の表示」で説明したように、OWASP Dependency Check Pack の実行後、結果は OWASP Top 10 2021 A6: Vulnerable and Outdated Components ガイドラインの違反として DTP に送信されますが、これを OWASP Top 10 2017 A9: Using Components with Known Vulnerabilities ガイドラインの違反として送信するように変更することが可能です。そのためには、<dependency check pack install folder>\etc\dependencycheck-settings.properties ファイルを以下の手順で編集します。

次の行のコメントを解除します。

rules.provider_dependencycheck.data=${env_var:ANALYZER_HOME}/rules/builtin/dependencycheck-owasp-2017-A9-rulesmap.xml

次の行をコメントアウトします。

rules.provider_dependencycheck.data=${env_var:ANALYZER_HOME}/rules/builtin/dependencycheck-owasp-2021-A6-rulesmap.xml
  • No labels