GitLab CI/CD およびコンテナーを使用したスキャン自動化の構成
HCL Harbor および HCL® AppScan® Source から入手できる、My HCL ソフトウェア・ポータル コマンド行インターフェース (CLI) コンテナーを使用すると、AppScan® Source のフル・インスタンスをインストールしなくても、GitLab による静的分析スキャンを自動化できます。
- アプリケーションを準備します。
- My HCL ソフトウェア・ポータル のコンテナー・イメージを使用して、GitLab CI/CD を準備します。
- GitLab CI/CD ランナーを使用してスキャンを開始します。
前提条件
- GitLab CI/CD 環境: Podman がインストールされた 1 つ以上の Linux RHEL 7.9 ベースの GitLab CI/CD ランナー。
これが、CLI コンテナー を使用して静的分析スキャンを実行する対象となるシステムです。
-
AppScan® Source for Automation の有効なライセンスと関連するライセンス・サーバー情報。
-
AppScan® Source CLI コンテナー・イメージ
HCL Harbor または AppScan® Source から My HCL ソフトウェア・ポータル CLI コンテナー・イメージをダウンロードします。有効なライセンスがあれば、HCL ID を使用して、これらの場所にアクセスできます。
-
AppScan® Source CLI スクリプト
GitLab CI/CD を使用してコンテナーでスキャンするには、スクリプトが必要です。
- AppScan® Source プロジェクト (
.ppf) およびアプリケーション (.paf) ファイル: AppScan® Source for Analysis を使用して構成ファイルを生成します (スキャン・ターゲットにアクセスできる Linux システムに AppScan® Source がインストールされている必要があります)。 - コンテナーから GitLab CI/CD ランナーのコンテンツへのアクセス:
- スキャン対象のアプリケーションが GitLab に存在し、スキャンを実行する GitLab CI/CD ランナーからアクセスできる必要があります。
.paf/.ppfファイル
注: ボリューム・マッピング (コンテナー・ホスト上のパスからコンテナー内のパスへのマッピング) が、この目的でスキャンのインスタンス化中に使用されます。
スキャン対象のアプリケーションの準備
paf/ppfファイル- フォルダー・スキャン
paf/ppf ファイルを使用したスキャン対象のアプリケーションの準備- HCL® AppScan® Source for Analysis がインストールされた Linux システム上の AppScan® Source クライアントを使用して、
paf/ppfファイルを生成します。pafおよびppfファイルがスキャン対象のアプリケーションのルートにあることを確認します。 - アプリケーション・ファイルと
paf/ppfファイルが、GitLab CI/CD ランナーからアクセス可能であることを確認します。例えば、アプリケーションが GitLab CI/CD ランナーのルート・パス、
/usr/user1/SampleAppでアクセス可能な場合、paf/ppfファイルは/usr/user1/SampleApp/SampleApp.pafおよび/usr/user1/SampleApp/SampleApp.ppfにあります。 - コンテナーから見えるボリュームの名前を特定します。例えば、ホスト上の
/usr/user1をコンテナー内のcvolにマッピングします。注: ボリューム・マッピングは、コンテナーで CLI を実行するときに指定されます。 - CLI スクリプトを作成します。例えば、/
usr/user1/SampleAppのSampleApp.scriptです。この例のスクリプトは、cvolパスを使用して、アプリケーション・コンテンツにアクセスするようにコンテナーに伝えます。リストされているコマンドは、AppScan® Source CLI (手動介入なしのスキャン) で使用されるコマンドです。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
- アプリケーション・ファイルは GitLab CI/CD ランナーからアクセス可能であることを確認します。
例えば、アプリケーションは、GitLab CI/CD ランナー上のパス /
usr/user1/SampleAppでアクセスできます。 - コンテナーから見えるボリュームの名前を特定します。例えば、ホスト上の
/usr/user1をコンテナー内のcvolにマッピングします。注: ボリューム・マッピングは、コンテナーで CLI を実行するときに指定されます。 - CLI スクリプトを作成します。例えば、
/usr/user1/SampleAppのSampleApp.scriptです。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
GitLab CI/CD ランナーでのランタイム環境の準備
- AppScan® Source から GitLab ホストに My HCL ソフトウェア・ポータル CLI コンテナーをダウンロードするか、HCL Harbor から直接アクセスします。
My HCL ソフトウェア・ポータル からダウンロードした場合は、
podman loadコマンドを使用して CLI コンテナー・イメージをロードします。 - HCL Harbor から AppScan® Source CLI コンテナーを使用して、静的分析スキャンを実行するための
yamlスクリプト・ファイルを作成します。例:# This is a basic workflow to help you get started with GitLab CI/CD variables: GIT_STRATEGY: clone build-job: stage: build script: - echo "Hello, $GITLAB_USER_LOGIN!" - chmod -R 777 $CI_PROJECT_DIR - podman run --rm --env-file $CI_PROJECT_DIR/env.list -v $CI_PROJECT_DIR/:/wa hclcr.io/appscan/appscan-src-cli:10.3.0 script /wa/CLI_jspWIKI.script - echo "Success, Scan complete" - rm -vrf $CI_PROJECT_DIR - echo "Clean up done"
GitLab CI/CD ランナーを使用した静的分析スキャンの開始
- GitLab CI/CD ランナーがオンラインであることを確認します。GitLab で、を選択し、ステータスを確認します。
- を選択すると、ブランチ内に存在する
.yamlスクリプトを使用して、静的分析スキャンが開始します。