Saltar a contenido

Acción de Github de Ostorlab

1. Generar una nueva clave API

Para usar la Acción de Github de Ostorlab, 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 Acción de Github de Ostorlab a su flujo de trabajo

Una vez que haya generado su API, añádala a los Secretos de GitHub. Asegúrese de que el nombre coincida con secrets. en el archivo YAML. Puede seguir los pasos en la documentación de Github en el siguiente enlace para obtener instrucciones más detalladas.

Secretos de GitHub

El siguiente paso es actualizar su flujo de trabajo para añadir un paso de Ostorlab para activar el escaneo. A continuación, se muestra un ejemplo que realiza un escaneo rápido en un APK de Android y falla el pipeline en caso de vulnerabilidades con gravedad HIGH.

on: [push]
jobs:
  ostorlab_test:
    runs-on: ubuntu-latest
    name: Test ostorlab ci actions.
    steps:
      - uses: actions/checkout@v2
      - name: build ostorlab.apk
        run: mv InsecureBankv2.apk ostorlab.apk
      - name: Launch Ostorlab scan
        id: start_scan
        uses: Ostorlab/ostorlab_actions@v2.1.0
        with:
          scan_profile: fast_scan # Especifique qué perfil de escaneo utilizar para el escaneo (consulte la sección de escaneo).
          asset_type: android-apk # tipo de activo a escanear.
          target: ostorlab.apk # ruta del objetivo a escanear.
          scan_title: title_scan_ci # escriba un título para su escaneo.
          ostorlab_api_key: ${{ secrets.ostorlab_api_key }} # su clave api secreta.
          break_on_risk_rating: HIGH # Esperar los resultados del escaneo y forzar el fallo de la acción si el riesgo del escaneo es mayor
          max_wait_minutes: 30
      - name: Get scan id
        run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"

3. Escaneo de Aplicaciones Web

Además de las aplicaciones móviles, Ostorlab también admite el escaneo de aplicaciones web a través de flujos de trabajo de GitHub. Para escanear aplicaciones web, configure su flujo de trabajo como se muestra en el siguiente ejemplo:

on: [push]
jobs:
  ostorlab_web_scan:
    runs-on: ubuntu-latest
    name: Test ostorlab web scan.
    steps:
      - uses: actions/checkout@v2
      - name: Launch Ostorlab web scan
        id: start_scan
        uses: Ostorlab/ostorlab_actions@v2.1.0
        with:
          scan_profile: full_web_scan
          asset_type: link --url
          target: https://target1.ostorlab.co --url https://target2.ostorlab.co --url https://target3.ostorlab.co
          scan_title: web_scan_ci
          ostorlab_api_key: ${{ secrets.ostorlab_api_key }}
          break_on_risk_rating: HIGH
          max_wait_minutes: 60
      - name: Get scan id
        run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"

Para el escaneo de aplicaciones web: - Utilice scan_profile: full_web_scan - Establezca asset_type: link --url - Enumere sus URL de destino con el indicador --url para cada URL adicional

Las acciones de Github de Ostorlab toman las siguientes entradas:

scan_profile, que es una opción obligatoria que especifica el perfil de escaneo, puede ser fast scan solo para análisis estático rápido, full_scan para cobertura completa estática, dinámica y de backend, o full_web_scan para escaneo de aplicaciones web.

Perfil de escaneo

asset_type, una opción obligatoria que especifica el tipo de activo de destino, por ejemplo, APK de Android, IPA de iOS o enlace para aplicaciones web.

Tipo de activo

target, una opción obligatoria. Es un archivo de destino a escanear o una URL para aplicaciones web.

Archivo de destino

scan_title, una opción opcional. Es un título para identificar su escaneo.

Título del escaneo

ostorlab_api_key, una opción obligatoria. Puede obtenerla del panel de Ostorlab, en Integrations/API luego en API Keys.

Clave API de Ostorlab

break_on_risk_rating, una opción opcional. Es una calificación de riesgo para interrumpir el pipeline si el resultado del escaneo es igual o superior al valor proporcionado.

Interrumpir por calificación de riesgo

max_wait_minutes, una opción opcional. es el tiempo máximo de espera en minutos, el pipeline no fallará si el escaneo se agota. si desea ejecutar el escaneo sin esperar, elimine esta opción.

Minutos máximos de espera

extra, una opción opcional. es un argumento adicional para pasar a la CLI de Ostorlab. Un caso de uso común es pasar las credenciales de prueba del escaneo.

Argumento extra

Puede proporcionar sus archivos SBOM o Lock para mejorar el análisis del escaneo, para hacerlo utilice la entrada extra para pasar el SBOM, por ejemplo para agregar un archivo package lock dot json utilice el siguiente ejemplo:

Ejemplo de SBOM

Aquí puede ver la lista de los archivos admitidos:

Archivos admitidos

Ostorlab admite realizar pruebas autenticadas con contraseña de inicio de sesión simple o entradas personalizadas identificadas con nombre o etiqueta y pasando el valor. Para pasar las credenciales de prueba, dado que la Acción YAML de Github no admite pasar objetos complejos, puede utilizar la entrada extra para pasar las credenciales de prueba. Por ejemplo, para añadir inicio de sesión y contraseña y credenciales personalizadas con nombres y valores personalizados, añada la siguiente entrada:

Credenciales de prueba

En cuanto a la salida de la acción, es posible acceder al scan_id utilizando la siguiente sintaxis ${{ steps.STEP_ID.outputs.scan_id }}.

3. Use la Aplicación de GitHub Ostorlab Security Scanner para proporcionar información procesable directamente en su PR

La Aplicación de GitHub Ostorlab Security Scanner debe utilizarse en conjunto con un flujo de trabajo de Acciones de GitHub de Ostorlab como se explica en los pasos 1 y 2.

La Aplicación de GitHub Ostorlab Security Scanner está diseñada para ayudar a los desarrolladores a mejorar la seguridad de su código al proporcionar información procesable directamente en los Pull Requests. Integra la seguridad en el flujo de trabajo de desarrollo con el objetivo principal de identificar exactamente qué fragmento de código introdujo la vulnerabilidad, proporcionar información procesable y sugerencias de código que puede confirmar automáticamente. Este documento proporciona instrucciones sobre cómo configurar y utilizar la Aplicación.

  1. Añadir la Aplicación de GitHub:
  2. Vaya a la Aplicación Ostorlab Security Scanner.
    Aplicación Ostorlab Security Scanner
  3. Haga clic en Add.
    Añadir Aplicación
  4. Elija la cuenta donde desea instalar la aplicación.
    Elegir cuenta
  5. Haga clic en Install for free.
    Instalar gratis
  6. Proporcione los permisos necesarios:
    • Acceso de Read & Write a pull requests.
    • Acceso de Metadata para el repositorio.
      Permisos
  7. Haga clic en Install para finalizar la configuración.
    Finalizar configuración

  8. Cómo utilizar:

  9. El siguiente paso es actualizar su flujo de trabajo para añadir un paso de Ostorlab para activar el escaneo como se describe en los pasos 1 y 2. Actualizar flujo de trabajo
  10. Cree un pull request que incorpore el flujo de trabajo actualizado con Ostorlab. Crear Pull Request Después de que se complete el escaneo, Ostorlab Security Scanner comentará automáticamente en su pull request, identificando exactamente dónde se introdujo la vulnerabilidad y proporcionando fragmentos de código de la solución. Revisión de PR Resultados del escaneo

Esta guía describió los pasos necesarios para utilizar con éxito la Acción de GitHub de Ostorlab y la Aplicación Ostorlab Security Scanner, incluida la generación de una nueva clave API, la exploración de varias entradas de acción, la instalación de la aplicación y la visualización de los resultados.