Aller au contenu

Intégration d'Ostorlab avec Jenkins

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

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 la clé API d'Ostorlab aux identifiants Jenkins

Depuis le tableau de bord principal de Jenkins, cliquez sur le bouton Add Credentials.

Bouton Add Credentials

Dans la liste déroulante Kind, sélectionnez Secret text.

Sélectionner Secret Text

Entrez apiKey dans le champ ID.

Entrer l'ID de la clé API

Entrez votre clé API dans le champ Secret.

Entrer le secret de la clé API

Entrez une description pour identifier la clé

Entrer la description

Cliquez sur create pour enregistrer les identifiants.

Créer les identifiants

Projet Freestyle

Pour définir un job Jenkins dans votre projet freestyle, suivez les étapes suivantes :

Dans votre Build Environment, ajoutez une liaison Secret text à la configuration de votre projet Jenkins et entrez les informations suivantes :

Ajouter une liaison Secret text

Ajoutez une étape de build "Run Ostorlab Security Scanner" à la configuration de votre projet Jenkins.

Ajouter l'étape Security Scanner

Et entrez les informations suivantes :

le file_path vers le fichier de l'application mobile que vous souhaitez scanner.

Entrer le chemin du fichier

Cliquez sur Advanced settings pour configurer votre exécution :

Paramètres avancés

Entrez le scan_title.

Entrer le titre du scan

Sélectionnez si la platform est Android ou iOS.

Sélectionner la plateforme

Sélectionnez le scan_profile à utiliser pour le scan. Vous pouvez choisir entre Fast Scan pour une analyse statique rapide ou Full Scan pour une analyse complète statique, dynamique et backend.

Sélectionner le profil de scan

wait_for_results qui suspend le job jusqu'à ce que l'analyse de sécurité soit terminée ou expire.

Attendre les résultats

max_wait_minutes qui est la durée d'attente avant que le job n'expire.

Minutes d'attente maximum

break_build_on_higher_security_risk_threshold, si sélectionné, le job Jenkins échouera si le risque des vulnérabilités découvertes est égal ou supérieur aux seuils spécifiés.

Interrompre le build sur le seuil de risque

security_risk_threshold, le seuil de risque minimum qui entraînera l'échec d'un build.

Seuil de risque de sécurité

credentials, à utiliser pendant les tests dynamiques.

Le nom correspond à l'ID ou à l'étiquette du champ dans la vue (Par exemple username ou password).

La valeur correspond à l'entrée à taper dans le champ.

Identifiants

Lancez vos builds mobiles et vous verrez le risque du scan dans le dossier artifacts.

Risque du scan dans les artifacts

Pipeline Jenkins

De plus, vous pouvez également effectuer l'intégration dans le cas d'un Jenkins Pipeline.

Voici un exemple d'étape pour exécuter le scan :

Étape de pipeline

pipeline {
    agent any
    environment {
        apiKey = credentials('apiKey')
        jsonCredentials = "${params.Credentials}"
    }
    parameters { string(name: 'Credentials', defaultValue: '[{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]', description: '') }
    stages {
        stage('security-test') {
            steps {
                step([$class: 'OPlugin', apiKey:env.apiKey, Jsoncredentials:env.jsonCredentials, filePath: '/home/asasas/IdeaProjects/ostorlab-plugin/work/workspace/as/InsecureBankv2.apk', 
                scanProfile: 'Fast Scan', platform: 'android'])
            }
        }
    }
}

La liste des paramètres pris en charge :

  • filePath : (Obligatoire) Entrez le chemin de l'application mobile.
  • apiKey : (Obligatoire) Entrez la clé API pour authentifier les requêtes API.
  • scanProfile : Sélectionnez le profil de scan à exécuter. Vous pouvez choisir entre Fast Scan pour une analyse statique rapide ou Full Scan pour une analyse complète statique, dynamique et backend.
  • platform : Définissez le type de plateforme [android, iOS].
  • waitForResults : (Optionnel) Suspend le job jusqu'à ce que l'analyse de sécurité soit terminée ou expire.
  • waitMinutes : (Optionnel) Durée d'attente avant que le job n'expire.
  • breakBuildOnScore : (Optionnel) S'il est défini sur vrai, l'étape échouera si le risque des vulnérabilités découvertes est égal ou supérieur aux seuils.
  • riskThreshold : (Optionnel) Le seuil de risque minimum qui entraînera l'échec d'un build.
  • JsonCredentials : (Optionnel) Identifiants à utiliser pour les tests dynamiques. Cela doit être une chaîne au format JSON valide : [{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]
  • title : (Optionnel) Entrez le titre du scan.