Aller au contenu

Intégration d'Ostorlab avec Bitbucket

Aperçu

Dans ce guide, nous allons explorer comment intégrer facilement les tests de sécurité et de confidentialité dans vos builds de pipeline d'applications mobiles à l'aide de Bitbucket Pipeline.

Démonstration vidéo

Regardez cette brève vidéo pour un aperçu visuel du processus d'intégration.

Générer une clé API :

La première étape consiste à générer une nouvelle clé API. Dans le tableau de bord de votre organisation, cliquez sur le bouton du menu.

Click menu button

Ensuite, cliquez sur "Integrations/API" pour développer le menu.

Click 'Integrations/API'

Et choisissez API keys.

Click 'API Keys'

À partir de là, cliquez sur "New" (Nouveau).

Click 'New'

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

Fill 'Github_action_key'

N'oubliez pas de cliquer sur le bouton d'enregistrement (save) pour sauvegarder votre clé.

Click save button

Ajouter la clé API aux variables Bitbucket :

Une fois que vous avez généré votre clé API, ajoutez-la à vos variables Bitbucket.

Add variable

Mettre à jour votre Pipeline :

Maintenant, vous devez mettre à jour votre pipeline Bitbucket pour y inclure une étape Ostorlab destinée à déclencher le scan de sécurité. Voici un exemple de configuration qui effectue un scan rapide (fast scan) sur un APK Android et fait échouer le pipeline en cas de vulnérabilités présentant un niveau de gravité élevé (HIGH).

Add step

- step:
            name: Ostorlab Security Scan
            caches:
              - pip
            script:
              - pip install ostorlab[cli]
              - export OSTORLAB_API_KEY=$SECRET_OSTORLAB_API_KEY
              - export SCAN_TITLE="Test Bitbucket CI workflow"
              - export SCAN_PROFILE='fast_scan'
              - export BREAK_ON_RISK_RATING="HIGH"
              - export MAX_WAIT_MINUTES=15
              - export TARGET="oxo_insecure.apk"
              - export ASSET_TYPE="android-apk"
              - export EXTRA="--test-credentials-login test_login --test-credentials-password test_pass"
              - ostorlab --api-key="$OSTORLAB_API_KEY" ci-scan run  --title="$SCAN_TITLE" --scan-profile="$SCAN_PROFILE"  --break-on-risk-rating="$BREAK_ON_RISK_RATING" --max-wait-minutes="$MAX_WAIT_MINUTES" $EXTRA $ASSET_TYPE

Explorons chaque ligne de cette configuration :

Tout d'abord, nous devrons installer le package ostorlab et ses composants d'interface en ligne de commande à l'aide de pip.

Install ostorlab package

Ensuite, créez une variable pour stocker la clé API. Assurez-vous que le nom de la variable correspond à celui ajouté à votre dépôt en tant que secret ou variable d'environnement.

Create API key variable

Ajoutez une variable de titre (title) pour votre scan.

Add title variable

Ajoutez une autre variable pour le profil de scan (scan profile). Choisissez entre Fast Scan pour une analyse statique rapide ou Full Scan pour une analyse complète, comprenant l'analyse statique, dynamique et backend.

Add scan profile variable

Puis, une variable pour définir le temps maximum que le build doit attendre (en minutes) pour terminer l'analyse de sécurité.

Add max wait time variable

Ajoutez une variable cible (target) pour spécifier le chemin vers votre application.

Add target variable

Définissez le type d'actif (asset type) comme étant Android ou iOS. Dans mon cas, je choisis Android car j'ai l'intention de scanner une application Android.

Define asset type

Le paramètre supplémentaire (extra) vous permet de fournir vos fichiers Lock pour une analyse de scan améliorée.

Provide lock files

La liste suivante décrit les fichiers SBOM/Lock pris en charge :
    SPDX
    CycloneDX
    gradle.lockfile
    pubspec.lock
    buildscript-gradle.lockfile
    pnpm-lock.yaml
    package-lock.json
    packages.lock.json
    pom.xml
    Gemfile.lock
    yarn.lock
    Cargo.lock
    composer.lock
    conan.lock
    mix.lock
    go.mod
    requirements.txt
    Pipfile.lock
    poetry.lock

De plus, il vous permet de fournir des identifiants simples ou des identifiants personnalisés pour activer les tests authentifiés.

Pour la prise en charge du 2FA, vous pouvez ajouter les identifiants suivants : - SMS 2FA : --sms-2fa-sender <sender_name> (En savoir plus sur le 2FA par SMS) - Email 2FA : --email-2fa-sender-email-address <sender_email> --email-2fa-email-address <email_address> --email-2fa-password <email_password> (En savoir plus sur le 2FA par e-mail) - TOTP 2FA : --totp-2fa-seed <seed> (En savoir plus sur le 2FA TOTP)

Provide credentials

Vous pouvez également fournir des invites de l'interface utilisateur (UI prompts) pour guider le scanner à travers l'interface utilisateur de votre application. Les invites de l'interface utilisateur sont une fonctionnalité puissante qui vous permet d'utiliser le langage naturel pour indiquer au scanner comment naviguer dans l'application. Par exemple, vous pouvez spécifier des invites telles que "cliquer sur le bouton de connexion" ou "saisir le nom d'utilisateur et le mot de passe".

--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."

Vous pouvez ajouter plusieurs flags --ui-prompt-name et --ui-prompt-action pour différentes étapes du flux de votre application.

De plus, vous pouvez utiliser le flag --ui-prompt-id pour référencer des flux d'invites de l'interface utilisateur existants par leurs ID. Cela vous permet de réutiliser des flux d'invites de l'interface utilisateur précédemment définis. Vous pouvez ajouter plusieurs flags --ui-prompt-id selon vos besoins. Par exemple :

    --ui-prompt-id 123 --ui-prompt-id 456

Enfin, exécutez la commande Ostorlab comme suit :

Execute Ostorlab command

Après avoir mis à jour le pipeline, vérifiez la progression ici.

Check progress

Vérifiez les journaux (logs) du pipeline pour obtenir des détails, récupérez l'ID du scan, et surveillez votre scan au sein du compte de votre organisation sur Ostorlab.

Monitor scan

Par exemple, voici le rapport du scan actuel.

Scan report

Conclusion

Ce guide couvre les étapes requises pour intégrer facilement et efficacement les tests de sécurité autonomes d'Ostorlab pour les applications mobiles Android et iOS dans votre Pipeline Bitbucket.