Saltar a contenido

Integración de Ostorlab con Bitbucket

Descripción general

En esta guía, exploraremos cómo integrar fácilmente pruebas de seguridad y privacidad en las builds del pipeline de sus aplicaciones móviles usando Bitbucket Pipeline.

Demostración en video

Mire este breve video para ver un recorrido visual del proceso de integración.

Generar una Clave API:

El primer paso es generar una nueva clave API. En el panel de su organización, haga clic en el botón del menú.

Click menu button

A continuación, haga clic en "Integrations/API" para expandir.

Click 'Integrations/API'

Y elija API keys.

Click 'API Keys'

Desde aquí, haga clic en "New" (Nuevo).

Click 'New'

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

Fill 'Github_action_key'

No olvide hacer clic en el botón de guardar (save) para guardar su clave.

Click save button

Agregar la Clave API a las Variables de Bitbucket:

Una vez que haya generado su clave API, agréguela a sus variables de Bitbucket.

Add variable

Actualizar su Pipeline:

Ahora, debe actualizar su pipeline de Bitbucket para incluir un paso de Ostorlab para desencadenar el escaneo de seguridad. Esta es una configuración de muestra que realiza un escaneo rápido (fast scan) en un APK de Android y hace que falle el pipeline para las vulnerabilidades con una calificación de severidad alta (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

Exploremos cada línea en esta configuración:

Primero, necesitaremos instalar el paquete ostorlab y sus componentes de interfaz de línea de comandos usando pip.

Install ostorlab package

A continuación, cree una variable para almacenar la clave API. Asegúrese de que el nombre de la variable coincida con el que se agregó a su repositorio como un secreto o variable de entorno.

Create API key variable

Agregue una variable de título (title) para su escaneo.

Add title variable

Agregue otra variable para el perfil de escaneo (scan profile). Elija entre Fast Scan para un análisis estático rápido o Full Scan para un análisis integral, incluyendo estático, dinámico y backend.

Add scan profile variable

Luego, una variable para definir el tiempo máximo que el build debería esperar (en minutos) para terminar el análisis de seguridad.

Add max wait time variable

Agregue una variable de destino (target) para especificar la ruta a su aplicación.

Add target variable

Defina el tipo de activo (asset type) ya sea Android o iOS. En mi caso, elijo Android ya que tengo la intención de escanear una aplicación de Android.

Define asset type

El parámetro adicional (extra) le permite proporcionar sus archivos Lock para un análisis de escaneo mejorado.

Provide lock files

La siguiente lista describe los archivos SBOM/Lock compatibles:
    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

Además, le permite suministrar credenciales simples o credenciales personalizadas para habilitar pruebas autenticadas.

Para compatibilidad con 2FA, puede agregar las siguientes credenciales: - SMS 2FA: --sms-2fa-sender <sender_name> (Conozca más sobre SMS 2FA) - Email 2FA: --email-2fa-sender-email-address <sender_email> --email-2fa-email-address <email_address> --email-2fa-password <email_password> (Conozca más sobre Email 2FA) - TOTP 2FA: --totp-2fa-seed <seed> (Conozca más sobre TOTP 2FA)

Provide credentials

También puede proporcionar prompts de la interfaz de usuario (UI prompts) para guiar al escáner a través de la UI de su aplicación. Los prompts de UI son una característica poderosa que le permite utilizar el lenguaje natural para indicarle al escáner cómo navegar por la aplicación. Por ejemplo, puede especificar prompts como "haga clic en el botón de inicio de sesión" o "ingrese el nombre de usuario y la contraseña".

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

Puede agregar múltiples banderas --ui-prompt-name y --ui-prompt-action para los diferentes pasos en el flujo de su aplicación.

Adicionalmente, puede usar la bandera --ui-prompt-id para referenciar flujos de prompts de UI existentes por sus IDs. Esto le permite reutilizar flujos de prompts de UI previamente definidos. Puede agregar múltiples banderas --ui-prompt-id según lo necesite. Por ejemplo:

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

Finalmente, ejecute el comando de Ostorlab de la siguiente manera:

Execute Ostorlab command

Después de actualizar el pipeline, verifique el progreso aquí.

Check progress

Revise los registros (logs) del pipeline para obtener detalles, recupere el ID del escaneo y monitoree su escaneo dentro de la cuenta de su organización en Ostorlab.

Monitor scan

Por ejemplo, este es el reporte para el escaneo actual.

Scan report

Conclusión

Esta guía cubre los pasos requeridos para integrar efectiva y fácilmente las pruebas de seguridad autónomas de Ostorlab para aplicaciones móviles Android e iOS en su Bitbucket Pipeline.