Saltar a contenido

Guía de integración de Harness

Integre fácilmente el escaneo de seguridad automatizado de Ostorlab para aplicaciones móviles de Android en su pipeline de CI de Harness.


Generar una clave API de Ostorlab

  1. Vaya al menú de claves API
  2. Haga clic en el botón New para generar una nueva clave
  3. Copie la clave API (puede agregar un nombre y una fecha de caducidad a su clave)
  4. Haga clic en el botón Save para guardar su clave

Creación de clave API


Agregar la clave API como Secreto

  1. Vaya a Projects settings
  2. Vaya a Secrets
  3. Agregue y guarde la clave API de Ostorlab como un secreto

Agregar secreto


Agregar un paso de ejecución en su pipeline de CI de Harness

  1. Vaya a su pipeline
  2. Agregue una etapa de build si aún no tiene una
  3. Agregue un nuevo paso de ejecución e inserte el script en la sección de comandos
python3 -m venv $HARNESS_WORKSPACE/venv

$HARNESS_WORKSPACE/venv/bin/pip install ostorlab

$HARNESS_WORKSPACE/venv/bin/ostorlab \
  --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
  ci-scan run \
  --title="SCAN_TITLE" \
  --scan-profile="$SCAN_PROFILE" \
  android-apk $HARNESS_WORKSPACE/$APP_PATH

Agregar paso de ejecución


En Optional Configurations dentro de la configuración de su paso de ejecución, puede agregar variables de entorno para configurar el escaneo.

Agregar variables de entorno

Agregar el paso en yaml

En lugar de agregar el paso manualmente en la interfaz de usuario de Harness, también puede agregarlo en yaml de la siguiente manera:

- step:
    type: Run
    name: ostorlab scan
    identifier: Run_1
    spec:
      shell: Bash
      command: |-
        python3 -m venv $HARNESS_WORKSPACE/venv
        $HARNESS_WORKSPACE/venv/bin/pip install ostorlab
        $HARNESS_WORKSPACE/venv/bin/ostorlab \
          --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
          ci-scan run \
          --title="$SCAN_TITLE" \
          --scan-profile="$SCAN_PROFILE" \
          android-apk $HARNESS_WORKSPACE/$APP_PATH
      envVariables:
        SCAN_TITLE: from harness ci
        SCAN_PROFILE: fast_scan
        APP_PATH: app.apk

Opciones adicionales

La siguiente es la lista completa de opciones para el comando `ostorlab ci-scan run`:

    ostorlab --api-key ci-scan run --option <asset-type> <target>
  • --api-key: Clave API generada por Ostorlab.

  • --title: Título del escaneo.

  • --scan-profile: Tipo de escaneo. Las opciones posibles son:

    1. `fast`: Ejecuta solo el análisis estático;
    2. `full`: Ejecuta el análisis estático, dinámico y de backend.
  • Credenciales de prueba: Autenticación automática en el escaneo completo de análisis dinámico:

    • --test-credentials-login: Nombre de usuario para utilizar en los campos de inicio de sesión;
    • --test-credentials-password: Contraseña para utilizar en los campos de contraseña;
    • --test-credentials-role: Campo de rol opcional;
    • Credenciales de prueba personalizadas/genéricas:
      • --test-credentials-name: Nombre personalizado del campo;
      • --test-credentials-value: Valor personalizado del campo.
  • Credenciales 2FA:

  • --sbom: Ruta al archivo sbom. El archivo sbom también debe montarse como se especifica en el paso 3.

  • --ui-prompt-name: Nombre del indicador de IU que se pasará a la CLI de Ostorlab.

  • --ui-prompt-action: Acción del indicador de IU que se pasará a la CLI de Ostorlab. Los indicadores de IU son una función potente que le permite usar lenguaje natural para indicarle al escáner cómo navegar por la aplicación. Puede agregar varios indicadores agregando los argumentos varias veces, por ejemplo:

        --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: Lista de ID de indicadores de IU existentes que se pasarán a la CLI de Ostorlab. Esto le permite reutilizar flujos de indicadores de IU definidos previamente mediante sus ID. Puede agregar varios ID de indicadores agregando el argumento varias veces, por ejemplo:

        --ui-prompt-id 123 --ui-prompt-id 456
    
  • asset-type: Tipo de activo a escanear. Valores posibles:

    • `android-aab`: Escanear un archivo de paquete `.AAB` de Android;
    • `android-apk`: Escanear un archivo de paquete `.APK` de Android;
    • `ios-ipa`: Escanear un archivo de paquete `.IPA` de iOS;
  • target: Ruta a la aplicación objetivo. La aplicación debe montarse como se especifica en el paso 3.