このGitHubアクションにより、Contrast Securityの業界をリードするコードスキャナー(コントラストスキャン)を使用して、コードの脆弱性を見つけます。アクションは、PRのコードスキャン分析を、宛先ブランチの最後のコードスキャン分析と比較します。 GitHubは、新しい脆弱性が導入されている場合、チェックに失敗します。
GitHubアクションに慣れていない場合は、GitHubアクションのドキュメントをお読みください。Githubアクションは何であるか、どのようにセットアップするかを学びます。その後、次の手順を完了します。
次のgithub secrets contrast_api_key、contrast_organization_id、contrast_auth_header、およびoftrast_api_urlを構成する

Contrast SecurityユーザーによるCodesec: CLIを使用した秘密の認証詳細を取得します。
インストールの手順ここのインストール:https://www.contrastsecurity.com/developer/codesec
あなたが新しいユーザーである場合、「コントラスト認証」コマンドでアカウントを作成します
CLIで「コントラスト構成」コマンドを実行して、必要な資格情報を収集する

ライセンスされたコントラストセキュリティユーザー:コントラストWebインターフェイスの「ユーザー設定」メニューから秘密の認証の詳細を取得します:次のことが必要になります

以下にサンプルワークフローをコピーし、コードのブランチを作成して、コントラストセキュリティスキャンを追加します。このブランチは通常.github/workflows/build.ymlにあります
ワークフローファイルを更新して、アクションがいつ実行されるかを指定します(たとえば、Pull_Request、プッシュ時)
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]ワークフローファイルのFilepathを更新して、構築されたアーティファクトまたはファイルの場所をスキャンするためのファイルの場所を仕様にします
with :
artifact : mypath/target/myartifact.jar 脆弱性の重症度に基づいて失敗するために、セットの重症度(クリティカル/ハイ/ミディアムまたはロー)が見つかり、真実に失敗します
severity : high
fail : true Githubがリポジトリのセキュリティタブに脆弱性をリストするためには、コントラストアクションにこのGitHubアクションを伴う必要があります
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif sarif_fileの値はresults.sarifでなければなりません。これはコントラストスキャンアクションがSARIFを書き込みます。
コミットした後、プルリクエスト(PR)を作成して、更新をメインブランチにマージします。 PRを作成すると、スキャンが実行されます。追加の「コードスキャン」チェックがPRに表示されます
コントラストスキャンを追加すると新しい調査結果が発生する可能性が高いため、コントラストスキャンを追加するPRを失敗させてブロックしたくありません。PRの所有者に、コードベースに既に存在していた新たに暴露されたすべての脆弱性をすべて修正するように強制します。
メインブランチでコントラストスキャンが実行された後、コントラストスキャンが実行される場所で作成するすべての新しいPRSが失敗します。
すべてのコントラスト関連のアカウントの秘密は、GitHubの秘密として構成され、GitHubランナーの環境変数を介してスキャナーに渡されます。進むための簡単なワークフローは次のとおりです。
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif このgithubアクションとコントラストマベンプラグインは同じことを達成します。両方を同時に使用することはできません。たとえば、Mavenを使用してコードを作成し、org.contrastsecurity.maven:ビルド中にスキャンを実行している場合、コントラストスキャンGithubアクションを使用しないでください。