Aller au contenu

Guide d'intégration Harness

Intégrez facilement les scans de sécurité automatisés d'Ostorlab pour les applications mobiles Android dans votre pipeline CI Harness.


Générer une clé API Ostorlab

  1. Accédez au menu des clés API
  2. Cliquez sur le bouton New pour générer une nouvelle clé
  3. Copiez la clé API (Vous pouvez ajouter un nom et une date d'expiration à votre clé)
  4. Cliquez sur le bouton Save pour enregistrer votre clé

Création de clé API


Ajouter la clé API comme Secret

  1. Accédez aux Projects settings
  2. Allez dans Secrets
  3. Ajoutez et enregistrez la clé API Ostorlab en tant que secret

Ajouter un secret


Ajouter une étape d'exécution dans votre pipeline CI Harness

  1. Accédez à votre pipeline
  2. Ajoutez une étape build si vous n'en avez pas déjà une
  3. Ajoutez une nouvelle étape d'exécution et insérez le script dans la section de commande
python3 -m venv $HARNESS_WORKSPACE/venv

$HARNESS_WORKSPACE/venv/bin/pip install ostorlab

$HARNESS_WORKSPACE/venv/bin/ostorlab \
  --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
  ci-scan run \
  --title="SCAN_TITLE" \
  --scan-profile="$SCAN_PROFILE" \
  android-apk $HARNESS_WORKSPACE/$APP_PATH

Ajouter une étape d'exécution


Dans les Optional Configurations des paramètres de votre étape d'exécution, vous pouvez ajouter des variables d'environnement pour configurer le scan.

Ajouter des variables d'environnement

Ajouter l'étape en yaml

Au lieu d'ajouter manuellement l'étape dans l'interface utilisateur de Harness, vous pouvez également l'ajouter en yaml comme suit :

- step:
    type: Run
    name: ostorlab scan
    identifier: Run_1
    spec:
      shell: Bash
      command: |-
        python3 -m venv $HARNESS_WORKSPACE/venv
        $HARNESS_WORKSPACE/venv/bin/pip install ostorlab
        $HARNESS_WORKSPACE/venv/bin/ostorlab \
          --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
          ci-scan run \
          --title="$SCAN_TITLE" \
          --scan-profile="$SCAN_PROFILE" \
          android-apk $HARNESS_WORKSPACE/$APP_PATH
      envVariables:
        SCAN_TITLE: from harness ci
        SCAN_PROFILE: fast_scan
        APP_PATH: app.apk

Options supplémentaires

Voici la liste complète des options pour la commande `ostorlab ci-scan run` :

    ostorlab --api-key ci-scan run --option <asset-type> <target>
  • --api-key : Clé API générée par Ostorlab.

  • --title : Titre du scan.

  • --scan-profile : Type de scan. Les options possibles sont :

    1. `fast` : Exécute uniquement l'analyse statique ;
    2. `full` : Exécute les analyses statique, dynamique et backend.
  • Identifiants de test : Authentification automatique dans le scan complet d'analyse dynamique :

    • --test-credentials-login : Nom d'utilisateur à utiliser dans les champs de connexion ;
    • --test-credentials-password : Mot de passe à utiliser dans les champs de mot de passe ;
    • --test-credentials-role : Champ de rôle optionnel ;
    • Identifiants de test personnalisés/génériques :
      • --test-credentials-name : Nom personnalisé du champ ;
      • --test-credentials-value : Valeur personnalisée du champ.
  • Identifiants 2FA :

  • --sbom : Chemin vers le fichier sbom. Le fichier sbom doit également être monté comme spécifié à l'étape 3.

  • --ui-prompt-name : Nom de l'invite UI à passer au CLI Ostorlab.

  • --ui-prompt-action : Action de l'invite UI à passer au CLI Ostorlab. Les invites UI sont une fonctionnalité puissante qui vous permet d'utiliser le langage naturel pour indiquer au scanner comment naviguer dans l'application. Vous pouvez ajouter plusieurs invites en ajoutant les arguments plusieurs fois, par exemple :

        --ui-prompt-name accept-terms --ui-prompt-action "Scroll down and tap the 'Accept Terms' checkbox."
        --ui-prompt-name submit --ui-prompt-action "Tap the 'Submit' button to complete the login process."
    
  • --ui-prompt-id : Liste des ID d'invite UI existants à passer au CLI Ostorlab. Cela vous permet de réutiliser des flux d'invites UI précédemment définis grâce à leurs ID. Vous pouvez ajouter plusieurs ID d'invite en ajoutant l'argument plusieurs fois, par exemple :

        --ui-prompt-id 123 --ui-prompt-id 456
    
  • asset-type : Type de l'actif à scanner. Valeurs possibles :

    • `android-aab` : Scanner un fichier de package Android `.AAB` ;
    • `android-apk` : Scanner un fichier de package Android `.APK` ;
    • `ios-ipa` : Scanner un fichier de package iOS `.IPA`.
  • target : Chemin vers l'application cible. L'application doit être montée comme spécifié à l'étape 3.