Action GitHub CodeSweep

L'action CodeSweep pour GitHub de HCL AppScan vous permet de vérifier votre code à chaque demande d'extraction. Après chaque mise à jour, l'action identifie les vulnérabilités présentes dans le code modifié. Mais au-delà de l'identification des problèmes, l'extension CodeSweep pour GitHub de HCL AppScan vous aide à atténuer les problèmes avant qu'ils n'atteignent la branche principale.

Tutoriel

S'enregistrer

Inscrivez-vous sur HCL AppScan on Cloud (ASOC) pour générer votre clé/secret d'API.

Configuration

  1. Après vous être connecté à ASoC, accédez à la page API pour générer votre paire clé/secret d'API. Ceux-ci doivent être utilisés dans les paramètres asoc_key et asoc_secret de l'action. Stockez ces paramètres en tant que secrets dans votre référentiel.
  2. Assurez-vous que l'option Droits relatifs aux flux de travaux de votre référentiel est définie sur Droits d'accès en lecture et en écriture. Cela permet à CodeSweep d'examiner vos fichiers et de créer des checkruns et des annotations pour les problèmes qu'il détecte. Pour accéder à ces paramètres, sélectionnez Paramètres > Actions > Général.
  3. Pour examiner les modifications apportées au code lorsqu'une demande d'extraction est ouverte, ajoutez le fichier suivant à votre référentiel sous .github/workflows/codesweep.yml ou mettez à jour un fichier de flux de travaux existant :
    name: "HCL AppScan CodeSweep"
    on:
      pull_request:
        types: [opened,synchronize]
    jobs:
      scan:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v1
          - name: Run AppScan CodeSweep
            uses: HCL-TECH-SOFTWARE/appscan-codesweep-action@v2
            with:
              asoc_key: ${{secrets.ASOC_KEY}}
              asoc_secret: ${{secrets.ASOC_SECRET}}
        env: 
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
    Remarque : Si vous utilisez checkout@v2 ou version ultérieure, vous devez définir fetch-depth sur 0. Exemple :
    uses: actions/checkout@v2
    with:
      fetch-depth: 0
  4. Pour publier des problèmes de sécurité dans ASoC lorsqu'une demande d'extraction est fusionnée, ajoutez le fichier suivant à votre référentiel sous .github/workflows/codesweep_publish.yml ou mettez à jour un fichier de flux de travaux existant :
    name: "HCL AppScan CodeSweep"
    on:
      pull_request:
        types: [closed]
    jobs:
      publish:
        runs-on: ubuntu-latest
        steps:
          - name: Publish issues to ASoC
            uses: HCL-TECH-SOFTWARE/appscan-codesweep-action@v2
            with:
              asoc_key: ${{secrets.ASOC_KEY}}
              asoc_secret: ${{secrets.ASOC_SECRET}}
              publish_on_merge: true
              application_id: <your ASoC application ID>
        env: 
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

Paramètres facultatifs pour l'examen

Paramètre Description Valeurs Valeur par défaut
status Statut des vérifications si des problèmes de sécurité sont détectés.
  • action_required
  • failure
  • neutral
neutral
Exemple :
with:
  status: failure

Paramètre facultatif pour la publication des problèmes dans AppScan on Cloud

Paramètre Description Valeurs Valeur par défaut
issue_status Statut des problèmes publiés dans ASoC.
  • open
  • inprogress
  • noise
  • fixed
  • passed
open
scan_base_name ASoC Un horodatage est ajouté au nom de base donné. GitHub_CodeSweep
personal_scan ASoC
  • true
  • false
true
with:
  publish_on_merge: true
  application_id: 6c058381-17ca-e711-8de5-002590ac753d
  issue_status: "inprogress"
  scan_base_name: "CodeSweep"
  personal_scan: true

Exemple

Des annotations sont ajoutées à la vue diff, pour signaler toutes les lignes de code vulnérables, et un checkrun est ajouté pour fournir des détails supplémentaires, notamment des exemples de code correct et incorrect et des informations d'atténuation.

Langues prises en charge

L'action CodeSweep de HCL AppScan prend en charge l'examen des langages/dialectes suivants :
Langues
Android-Java Groovy NodeJS Ruby
Angular IaC (Docker, K8s, Terraform) Objective-C/Objective-C++ Scala
Sommet Ionic PHP Swift
C/C++ Java PL/SQL T-SQL
Cobol JavaScript Perl TypeScript
ColdFusion JQuery Python VueJS
Dart Kotlin React .Net (C#, VB.NET, ASP.Net)
GoLang Mootools React Native Xamarin

Résolution des incidents

Problème : L'examen de sécurité s'exécute, mais aucun checkrun ou annotation n'est créé pour les problèmes de sécurité détectés. Le journal du flux de travaux contient l'erreur :

Error: Failed creating checkrun: HttpError: Resource not accessible by integration

Résolution : Cette erreur indique que le flux de travaux ne dispose pas des droits d'accès en écriture au référentiel. CodeSweep ne peut donc pas créer les checkruns et les annotations. Pour remédier à ce problème, accédez à Paramètres > Actions > Général et définissez Droits relatifs aux flux de travaux sur Droits d'accès en lecture et en écriture.

Rejoindre la communauté

Utilisez le canal Slack CodeSweep pour nous faire part de vos commentaires ou poser des questions générales sur l'action CodeSweep de HCL AppScan.