Tindakan GitHub ini memungkinkan Anda menggunakan pemindai kode terkemuka industri (pemindaian kontras) untuk menemukan kerentanan dalam kode Anda. Tindakan ini membandingkan analisis pemindaian kode PR dengan analisis pemindaian kode terakhir dari cabang tujuan. GitHub gagal cek jika kerentanan baru telah diperkenalkan.
Jika Anda tidak terbiasa dengan tindakan GitHub, baca dokumentasi tindakan GitHub untuk mempelajari tindakan github apa itu dan bagaimana mengaturnya. Setelah itu, selesaikan langkah -langkah berikut:
Konfigurasikan rahasia github berikut kontras_api_key, kontras_organization_id, kontras_auth_header dan kontras_api_url

Codesec B atas kontras pengguna keamanan: Ambil detail otentikasi untuk rahasia menggunakan CLI.
Instalasi Instalasi Di Sini: https://www.contrastsecurity.com/developer/codesec
Jika Anda adalah pengguna baru, buat akun dengan perintah 'kontras auth'
Jalankan perintah 'kontras konfigurasi' di CLI untuk mengumpulkan kredensial yang diperlukan

Pengguna Keamanan Kontras Berlisensi: Dapatkan detail otentikasi Anda untuk rahasia dari menu 'Pengaturan Pengguna' di Antarmuka Web Kontras: Anda akan memerlukan yang berikut ini

Salin alur kerja sampel di bawah ini dan buat cabang kode Anda untuk menambahkan pemindaian keamanan kontras. Cabang ini biasanya terletak di .github/workflows/build.yml
Perbarui file alur kerja untuk menentukan kapan tindakan harus dijalankan (misalnya pada pull_request, pada push)
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]Perbarui FilePath dalam file alur kerja untuk menentukan lokasi artefak atau file yang dibangun untuk memindai
with :
artifact : mypath/target/myartifact.jar Gagal berdasarkan tingkat keparahan kerentanan yang ditemukan seterpul tingkat keparahan (kritis/tinggi/sedang atau rendah) dan gagal menjadi benar
severity : high
fail : true Agar GitHub dapat mencantumkan kerentanan di tab Keamanan Repo, tindakan kontras harus disertai dengan tindakan GitHub ini
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Nilai sarif_file harus results.sarif .
Setelah berkomitmen, buat permintaan tarik (PR) untuk menggabungkan pembaruan kembali ke cabang utama Anda. Membuat PR memicu pemindaian untuk dijalankan. Pemeriksaan "pemindaian kode" tambahan muncul di PR
Karena kemungkinan akan ada temuan baru ketika Anda menambahkan pemindaian kontras, kami tidak ingin gagal dan memblokir penggabungan PR yang menambahkan pemindaian kontras, memaksa pemilik PR untuk sekarang memperbaiki semua kerentanan yang baru diekspos yang sudah ada di basis kode.
Setelah pemindaian kontras berjalan di cabang utama, semua PR baru yang Anda buat di mana pemindaian kontras dijalankan gagal pemeriksaan pemindaian kode jika mereka memperkenalkan kerentanan baru di luar garis dasar yang baru saja Anda buat.
Semua rahasia akun terkait kontras harus dikonfigurasi sebagai rahasia github dan akan diteruskan ke pemindai melalui variabel lingkungan di Github Runner. Alur kerja sederhana untuk melanjutkan adalah:
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 Tindakan GitHub ini dan plugin Maven kontras ini mencapai hal yang sama. Anda tidak dapat menggunakan keduanya secara bersamaan. Misalnya, jika Anda menggunakan Maven untuk membangun kode Anda dan Anda menjalankan org.contrastsecurity.maven: Pindai selama build, jangan gunakan aksi GitHub pemindaian kontras.