Cette action GitHub vous permet d'utiliser le scanner de code principal de l'industrie de la sécurité du contraste (scan de contraste) pour trouver des vulnérabilités dans votre code. L'action compare l'analyse de balayage de code du PR à la dernière analyse de balayage de code de la branche de destination. GitHub échoue à la vérification si de nouvelles vulnérabilités ont été introduites.
Si vous n'êtes pas familier avec les actions GitHub, lisez la documentation des actions GitHub pour savoir ce que sont les actions GitHub et comment les configurer. Après quoi, effectuez les étapes suivantes:
Configurez les secrets GitHub suivants Contrast_API_KEY, CONTAST_organisation_id, contraste_auth_header et contraste_api_url

CodeC par contraste Utilisateurs de sécurité: récupérer les détails de l'authentification pour les secrets à l'aide de la CLI.
Instructions d'installation ici: https://www.contrastsecurity.com/developer/codesec
Si vous êtes un nouvel utilisateur, créez un compte avec la commande «Auth à contraste»
Exécutez la commande 'Contrast Config' dans la CLI pour collecter les informations d'identification requises

Utilisateurs de sécurité de contraste sous licence: obtenez vos détails d'authentification pour les secrets du menu «Paramètres utilisateur» dans l'interface Web de contraste: vous aurez besoin de ce qui suit

Copiez un exemple de flux de travail ci-dessous et créez une branche de votre code pour ajouter une analyse de sécurité de contraste. Cette branche est généralement située sur .github/workflows/build.yml
Mettez à jour le fichier de workflow pour spécifier quand l'action doit s'exécuter (par exemple sur pull_request, sur 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]Mettez à jour le fichier FilePath dans le fichier de workflow pour spécifier l'emplacement de l'artefact ou du fichier construit pour scanner
with :
artifact : mypath/target/myartifact.jar Pour échouer en fonction de la gravité de la vulnérabilité, il a trouvé la gravité de la définition (critique / élevée / moyen ou faible) et échoué à vrai
severity : high
fail : true Pour que GitHub répertorie les vulnérabilités dans l'onglet de sécurité du dépôt, l'action de contraste doit être accompagnée de cette action GitHub
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif La valeur de sarif_file doit être results.sarif .
Après avoir engagé, créez une demande de traction (PR) pour fusionner la mise à jour vers votre branche principale. La création du PR déclenche le scan à exécuter. Le chèque supplémentaire de "numérisation de code" apparaît dans le PR
Comme il est probable qu'il y aura de nouvelles résultats lorsque vous ajouterai un scan de contraste, nous ne voulons pas échouer et bloquer la fusion du RP qui ajoute un scan de contraste, forçant le propriétaire du PR à réparer maintenant toutes les vulnérabilités nouvellement exposées qui existaient déjà dans la base de code.
Après que la numérisation de contraste s'exécute sur la branche principale, tous les nouveaux PR que vous créez où la numérisation de contraste est exécutée échoue, le code de numérisation de code vérifie s'ils introduisent de nouvelles vulnérabilités au-delà de la ligne de base que vous venez d'établir.
Tous les secrets de compte liés au contraste doivent être configurés sous forme de secrets GitHub et seront transmis au scanner via des variables d'environnement dans le coureur GitHub. Un workflow simple à démarrer est:
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 Cette action GitHub et le plugin Maven de contraste accomplissent la même chose. Vous ne pouvez pas utiliser les deux en même temps. Par exemple, si vous utilisez Maven pour créer votre code et que vous exécutez org.contrastsecurity.maven: scan pendant la construction, n'utilisez pas l'action GitHub de numérisation de contraste.