Saltar a contenido

Integración de Ostorlab con Jenkins

1. Generar una nueva clave API

El primer paso es generar una clave API. Para hacerlo, simplemente siga los siguientes pasos:

Vaya a report.ostorlab.co

Haga clic en el botón Menu

Botón de Menú

Haga clic en Integrations/API para expandir

Integraciones/API Expandido

Haga clic en API Keys

Claves API

Haga clic en New para generar una nueva clave API

Nueva clave API

Copie la clave API. También puede agregar un nombre y una fecha de caducidad a su clave.

Copiar clave API

No olvide hacer clic en el botón guardar para guardar su clave.

Guardar clave API

2. Añadir la clave API de Ostorlab a las credenciales de Jenkins

Desde el panel de control principal de Jenkins, haga clic en el botón Add Credentials.

Botón Add Credentials

En la lista desplegable Kind, seleccione Secret text.

Seleccionar Secret Text

Introduzca apiKey en el campo ID.

Introducir el ID de la clave API

Introduzca su clave API en el campo Secret.

Introducir el secreto de la clave API

Introduzca una descripción para identificar la clave

Introducir descripción

Haga clic en create para guardar las credenciales.

Crear credenciales

Proyecto Freestyle

Para definir un trabajo de Jenkins en su proyecto freestyle, siga los siguientes pasos:

En su Build Environment, añada un enlace de Secret text a la configuración de su proyecto de Jenkins e introduzca la siguiente información:

Añadir enlace de Secret text

Añada un paso de construcción "Run Ostorlab Security Scanner" a la configuración de su proyecto de Jenkins.

Añadir paso del Security Scanner

E introduzca la siguiente información:

el file_path a la aplicación móvil que desea escanear.

Introducir la ruta del archivo

Haga clic en Advanced settings para configurar su ejecución:

Configuración avanzada

Introduzca el scan_title.

Introducir el título del escaneo

Seleccione si la platform es Android o iOS.

Seleccionar plataforma

Seleccione el scan_profile a utilizar para el escaneo. Puede elegir entre Fast Scan para un análisis estático rápido o Full Scan para un análisis estático, dinámico y de backend completo.

Seleccionar perfil de escaneo

wait_for_results que suspende el trabajo hasta que el análisis de seguridad se complete o se agote el tiempo de espera.

Esperar los resultados

max_wait_minutes que es la duración de la espera antes de que el trabajo se agote el tiempo de espera.

Minutos máximos de espera

break_build_on_higher_security_risk_threshold, si se selecciona, el trabajo de Jenkins fallará si el riesgo de los hallazgos es igual o superior a los umbrales especificados.

Interrumpir construcción por el umbral de riesgo

security_risk_threshold, umbral de riesgo mínimo que provocará que una construcción falle.

Umbral de riesgo de seguridad

credentials, que se utilizarán durante las pruebas dinámicas.

El nombre se corresponde con el ID o la etiqueta del campo en la vista (Por ejemplo username o password).

El valor se corresponde con la entrada a escribir en el campo.

Credenciales

Inicie sus construcciones móviles y verá el riesgo del escaneo en la carpeta de artefactos (artifacts).

Riesgo del escaneo en los artefactos

Pipeline de Jenkins

Además, también puede realizar la integración en el caso de un Pipeline de Jenkins.

Aquí un paso de muestra para ejecutar el escaneo:

Paso del 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 lista de parámetros admitidos:

  • filePath: (Obligatorio) Introduzca la ruta de la aplicación móvil.
  • apiKey: (Obligatorio) Introduzca la clave API para autenticar las solicitudes API.
  • scanProfile: Seleccione el perfil de escaneo a ejecutar. Puede elegir entre Fast Scan para un análisis estático rápido o Full Scan para un análisis estático, dinámico y de backend completo.
  • platform: Establezca el tipo de plataforma [android, iOS].
  • waitForResults: (Opcional) Suspenda el trabajo hasta que el análisis de seguridad se complete o se agote el tiempo de espera.
  • waitMinutes: (Opcional) Duración de la espera antes de que el trabajo se agote el tiempo de espera.
  • breakBuildOnScore: (Opcional) Si se establece en verdadero, el paso fallará si el riesgo de los hallazgos es igual o superior a los umbrales.
  • riskThreshold: (Opcional) Umbral de riesgo mínimo que provocará que una construcción falle.
  • JsonCredentials: (Opcional) Credenciales a utilizar para las pruebas dinámicas. Debe ser una cadena como un JSON válido: [{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]
  • title: (Opcional) Introduzca el título del escaneo.