Aller au contenu

Action Github Ostorlab

1. Générer une nouvelle clé API

Pour utiliser l'Action Github Ostorlab, la première étape consiste à générer une clé API. Pour ce faire, suivez simplement les étapes suivantes :

Accédez à report.ostorlab.co

Cliquez sur le bouton Menu

Bouton Menu

Cliquez sur Integrations/API pour développer

Integrations/API Développé

Cliquez sur API Keys

Clés API

Cliquez sur New pour générer une nouvelle clé API

Nouvelle Clé API

Copiez la clé API. Vous pouvez également ajouter un nom et une date d'expiration à votre clé.

Copier la clé API

N'oubliez pas de cliquer sur le bouton enregistrer pour sauvegarder votre clé.

Enregistrer la clé API

2. Ajouter l'Action Github Ostorlab à votre workflow

Une fois que vous avez généré votre clé API, ajoutez-la aux GitHub Secrets. Assurez-vous que le nom correspond à secrets. dans le fichier YAML. Vous pouvez suivre les étapes dans la documentation Github au lien suivant pour des instructions plus détaillées.

GitHub Secrets

L'étape suivante consiste à mettre à jour votre workflow pour ajouter une étape Ostorlab afin de déclencher le scan. Voici un exemple effectuant un scan rapide sur un APK Android et faisant échouer le pipeline en cas de vulnérabilités avec une sévérité HIGH.

on: [push]
jobs:
  ostorlab_test:
    runs-on: ubuntu-latest
    name: Test ostorlab ci actions.
    steps:
      - uses: actions/checkout@v2
      - name: build ostorlab.apk
        run: mv InsecureBankv2.apk ostorlab.apk
      - name: Launch Ostorlab scan
        id: start_scan
        uses: Ostorlab/ostorlab_actions@v2.1.0
        with:
          scan_profile: fast_scan # Précisez quel profil de scan utiliser pour le scan (vérifier la section scan).
          asset_type: android-apk # type d'actif à scanner.
          target: ostorlab.apk # chemin de la cible à scanner.
          scan_title: title_scan_ci # tapez un titre pour votre scan.
          ostorlab_api_key: ${{ secrets.ostorlab_api_key }} # votre clé api secrète.
          break_on_risk_rating: HIGH # Attendre les résultats du scan et forcer l'échec de l'action si le risque du scan est supérieur
          max_wait_minutes: 30
      - name: Get scan id
        run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"

3. Scanner les Applications Web

En plus des applications mobiles, Ostorlab prend également en charge le scan des applications web via les workflows GitHub. Pour scanner des applications web, configurez votre workflow comme indiqué dans l'exemple ci-dessous :

on: [push]
jobs:
  ostorlab_web_scan:
    runs-on: ubuntu-latest
    name: Test ostorlab web scan.
    steps:
      - uses: actions/checkout@v2
      - name: Launch Ostorlab web scan
        id: start_scan
        uses: Ostorlab/ostorlab_actions@v2.1.0
        with:
          scan_profile: full_web_scan
          asset_type: link --url
          target: https://target1.ostorlab.co --url https://target2.ostorlab.co --url https://target3.ostorlab.co
          scan_title: web_scan_ci
          ostorlab_api_key: ${{ secrets.ostorlab_api_key }}
          break_on_risk_rating: HIGH
          max_wait_minutes: 60
      - name: Get scan id
        run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"

Pour le scan des applications web : - Utilisez scan_profile: full_web_scan - Définissez asset_type: link --url - Listez vos URL cibles avec l'indicateur --url pour chaque URL supplémentaire

Les actions Github d'Ostorlab prennent les entrées suivantes :

scan_profile, qui est une option obligatoire précisant le profil de scan, qui peut être fast scan pour une analyse statique rapide uniquement, full_scan pour une couverture complète statique, dynamique et backend, ou full_web_scan pour le scan d'applications web.

Profil de scan

asset_type, une option obligatoire qui précise le type d'actif cible, par exemple, Android APK, iOS IPA, ou lien pour les applications web.

Type d'actif

target, une option obligatoire. C'est le fichier cible à scanner ou l'URL pour les applications web.

Fichier cible

scan_title, une option facultative. C'est un titre pour identifier votre scan.

Titre du scan

ostorlab_api_key, une option obligatoire. Vous pouvez l'obtenir depuis le tableau de bord Ostorlab, dans Integrations/API puis API Keys.

Clé API Ostorlab

break_on_risk_rating, une option facultative. C'est un niveau de risque pour interrompre le pipeline si le résultat du scan est égal ou supérieur à la valeur fournie.

Interrompre sur le niveau de risque

max_wait_minutes, une option facultative. c'est un temps d'attente maximum en minutes, le pipeline n'échouera pas si le scan expire. si vous voulez exécuter le scan sans attendre, supprimez cette option.

Minutes d'attente maximum

extra, une option facultative. c'est un argument supplémentaire à passer au CLI Ostorlab. Un cas d'utilisation courant est le passage des identifiants de test de scan.

Argument supplémentaire

Vous pouvez fournir vos fichiers SBOM ou Lock pour améliorer l'analyse du scan. Pour ce faire, utilisez l'entrée extra pour passer le SBOM, par exemple pour ajouter un fichier package lock dot json, utilisez l'exemple suivant :

Exemple SBOM

Ici vous pouvez voir la liste des fichiers supportés :

Fichiers supportés

Ostorlab permet de réaliser des tests authentifiés avec un simple mot de passe de connexion ou des entrées personnalisées identifiées par un nom ou une étiquette et en passant la valeur. Pour passer les identifiants de test, puisque l'Action YAML de Github ne supporte pas le passage d'objets complexes, vous pouvez utiliser l'entrée extra pour passer les identifiants de test. Par exemple, pour ajouter un login & un mot de passe et des identifiants personnalisés avec des noms et des valeurs personnalisés, ajoutez l'entrée suivante :

Identifiants de test

En ce qui concerne la sortie de l'action, il est possible d'accéder au scan_id en utilisant la syntaxe suivante ${{ steps.STEP_ID.outputs.scan_id }}.

3. Utilisez l'application GitHub Ostorlab Security Scanner pour fournir des informations exploitables directement dans votre PR

L'application GitHub Ostorlab Security Scanner doit être utilisée conjointement avec un workflow GitHub Actions Ostorlab tel qu'expliqué aux étapes 1 et 2.

L'application GitHub Ostorlab Security Scanner est conçue pour aider les développeurs à améliorer la sécurité de leur code en fournissant des informations exploitables directement dans les Pull Requests. Elle intègre la sécurité dans le flux de travail de développement avec pour objectif principal d'identifier avec précision quel élément de code a introduit la vulnérabilité, fournir des informations exploitables et des suggestions de code que vous pouvez valider automatiquement. Ce document fournit des instructions sur la façon de configurer et d'utiliser l'application.

  1. Ajouter l'application GitHub :
  2. Accédez à l'Application Ostorlab Security Scanner.
    Application Ostorlab Security Scanner
  3. Cliquez sur Add.
    Ajouter l'application
  4. Choisissez le compte où vous souhaitez installer l'application.
    Choisir le compte
  5. Cliquez sur Install for free.
    Installer gratuitement
  6. Fournissez les permissions nécessaires :
    • Accès Read & Write aux pull requests.
    • Accès Metadata pour le dépôt.
      Permissions
  7. Cliquez sur Install pour finaliser la configuration.
    Finaliser la configuration

  8. Comment utiliser :

  9. L'étape suivante consiste à mettre à jour votre workflow pour ajouter une étape Ostorlab afin de déclencher le scan tel que décrit aux étapes 1 et 2. Mettre à jour le workflow
  10. Créez une pull request intégrant le workflow mis à jour avec Ostorlab. Créer une Pull Request Une fois le scan terminé, Ostorlab Security Scanner commentera automatiquement votre pull request, en indiquant précisément où la vulnérabilité a été introduite et en fournissant des extraits de code pour la correction. Revue de la PR Résultats du scan

Ce guide a décrit les étapes nécessaires pour utiliser avec succès l'Action GitHub Ostorlab et l'Application Ostorlab Security Scanner, y compris la génération d'une nouvelle clé API, l'exploration de diverses entrées d'action, l'installation de l'application et la consultation des résultats.