Aller au contenu

TeamCity

Intégrez facilement l'analyse de sécurité automatisée d'Ostorlab pour les applications mobiles Android et iOS dans votre processus de build avec TeamCity.

Utilisation :

Générer une clé API Ostorlab

  1. Accédez au menu API keys
  2. Cliquez sur New API Key, donnez un nom à la clé et choisissez son rôle, puis cliquez sur Create Key. Vous pouvez aussi définir une date d'expiration.
  3. Copiez la clé depuis la bannière avec Copy Key : elle n'est affichée qu'une seule fois.

Bannière de clé API avec le bouton Copy Key

Ajouter Ostorlab comme étape de ligne de commande (Command Line Step) sur TeamCity

  1. Rendez-vous dans les paramètres de votre projet TeamCity et ajoutez une nouvelle étape de build (build step).

    Add a new build step

  2. Choisissez le Runner Command Line. Command line step

  3. Remplissez la configuration de l'étape

    • Nom de l'étape (Step name) : Choisissez un nom pour distinguer l'étape de build des autres étapes ;
    • Choisissez Custom script comme type d'exécution (Run type) ;
    • Ajoutez la commande suivante en tant que Custom script ;
      ostorlab --api-key=%env.OSTORLAB_API_KEY% ci-scan run --title=%Scan_Title% --scan-profile=%env.SCAN_PROFILE% android-apk /tmp/OstorlabInsecureApp.apk
      
      Consultez Options supplémentaires ci-dessous pour la liste complète des options.
    • L'étape doit s'exécuter à l'intérieur du conteneur ostorlab :
      • Ajoutez ostorlab/oxo:latest dans le champ Run step within container ;
      • Choisissez Linux comme plateforme d'image (Image platform) ;
      • Cliquez sur Edit arguments dans l'étape Additional run arguments ;
      • Montez l'application dans le conteneur ostorlab, -v source_path:destination_path
        -v /opt/buildagent/work/OstorlabInsecureApp.apk:/tmp/OstorlabInsecureApp.apk
        
        Assurez-vous que destination_path est identique à celui défini précédemment dans la commande ostorlab ci-scan run.

    Step configuration

  4. Ajoutez les paramètres de l'étape : Par exemple : la commande précédente utilise le paramètre : --title=%Scan_Title%, que vous pouvez définir en :

    • Cliquant sur Parameters ;
    • Cliquant sur Add new parameter ;
    • Remplissant le Name, le Kind (en tant que Configuration parameter), la valeur et son type ;
    • Cliquant sur Save.

    Add parameters

  5. Ajoutez des variables d'environnement Vous pouvez également ajouter des variables d'environnement à utiliser par la commande ostorlab, en suivant la même procédure qu'à l'étape 4, mais en choisissant Environment variable (env.) pour le Kind.

    Add env variables

Tous les paramètres : All Parameters

Options supplémentaires

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

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

  • --title : Titre de l'analyse

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

    1. fast_scan : Exécute uniquement l'analyse statique ;
    2. full_scan : Exécute les analyses statiques, dynamiques et backend.
  • Identifiants de test (Test credentials) : Authentification automatique lors de l'analyse dynamique complète :

    • --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 d'accès au fichier sbom. Le fichier sbom doit également être monté comme spécifié à l'étape 3.

  • Invites d'interface utilisateur (UI Prompts) (Optionnel) : Ostorlab prend en charge les invites d'interface utilisateur pour guider le scanner à travers l'interface utilisateur de votre application. Vous pouvez utiliser :

    • --ui-prompt-name et --ui-prompt-action : Définissez une étape d'interface utilisateur en spécifiant le nom et l'action. Vous pouvez ajouter plusieurs paires pour une séquence d'étapes. 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 : Référencez des flux d'invites d'interface utilisateur existants par leur ID. Vous pouvez ajouter plusieurs ID. Par exemple :
      --ui-prompt-id 123 --ui-prompt-id 456
      
  • asset-type : Type d'actif à analyser. Valeurs possibles :

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