Tutoriales

Coordinador de escáner de seguridad !!! Tutoriales de Kali Linux

Salus (Security Automation as a Lightweight Universal Scanner), que lleva el nombre de la diosa patrona romana, es una herramienta para coordinar la ejecución de los escáneres de seguridad. Puede ejecutar Salus en un repositorio a través del demonio Docker, que determina qué analizadores son relevantes, los ejecuta y entrega el resultado. La mayoría de los escáneres son otros proyectos maduros de código abierto que colocamos directamente en el contenedor.

Salus es particularmente útil para las canalizaciones de CI / CD, ya que se convierte en un lugar central para coordinar el escaneo en una gran flota de repositorios. Normalmente, los escáneres se configuran a nivel de repositorio para cada proyecto. Esto significa que cada repositorio debe actualizarse cada vez que se realizan cambios en la forma en que los escáneres se ejecutan en toda la empresa. En su lugar, puede actualizar Salus y todas las compilaciones aplicarán el cambio de inmediato.

Salus admite una configuración potente que permite configuraciones estándar globales y optimizaciones locales. Finalmente, Salus puede informar métricas a cada repositorio, p. Ej. B. qué paquetes están incluidos o qué preocupaciones hay. Estos informes se pueden evaluar de forma centralizada en su infraestructura para permitir un seguimiento de seguridad escalable.

Uso de Salus

#Navegue hasta el directorio raíz del proyecto en el que desea ejecutar Salus
cd / ruta / a / repositorio
# Ejecute la siguiente línea mientras está en el directorio raíz (no se necesitan cambios)
docker run –rm -t -v $ (pwd): / home / repo coinbase / salus

Escáneres compatibles

  • Bandit: ejecutando Bandit 1.6.2, busca problemas de seguridad comunes en el código Python.
  • Brakeman – Ejecutando Brakeman 4.10.0, buscando código vulnerable en proyectos Rails.
  • semgrep – ejecución de semgrep 0.36.0, que busca patrones semánticos y sintácticos en el código a nivel AST.
  • BundleAudit: ejecute Bundle Audit 0.8.0, buscando CVE en las dependencias de Ruby-Gem.
  • Gosec: ejecutando gosec 2.7.0, buscando problemas de seguridad en el código Go.
  • auditoría npm – implementación de npm audit 6.14.8 que busca CVE en dependencias de módulo de nodo.
  • Garnaudit – implementación de yarn audit 1.22.0 buscando CVE en dependencias de módulo de nodo.
  • PatternSearch – en ejecución sift 0.9.0, busca ciertas cadenas en un proyecto que podrían ser peligrosas o requerir la presencia de ciertas cadenas.
  • Cargo Audit: ejecución de Cargo Audit 0.14.0 Audit Cargo.lock archivos para cajas con vulnerabilidades de seguridad informadas a la base de datos de asesoramiento RustSec

Seguimiento de dependencias

Salus también analiza los archivos de dependencia e informa qué bibliotecas y versiones se están utilizando. Esto puede ser útil para rastrear dependencias en su flota.

Los idiomas admitidos actualmente son:

construcción

Salus es altamente configurable, por lo que puede funcionar en muchos entornos diferentes y con muchos escáneres diferentes. Admite la interpolación de variables de entorno y configuraciones en cascada y puede leer configuraciones y enviar informes a través de HTTP.

A veces es necesario ignorar ciertos CVE, reglas, pruebas, grupos, directorios o cambiar la configuración estándar de un escáner. El directorio docs / scanners explica el procedimiento para cada escáner compatible con Salus.

Si desea crear escáneres personalizados o desea admitir idiomas adicionales que no son compatibles actualmente, puede usar este método para crear imágenes personalizadas de Salus.

Integración CircleCI

Salus se puede integrar con CircleCI usando un orbe público. Todas las opciones de configuración de Salus son compatibles y la configuración predeterminada es la misma que la de Salus.

Ejemplo CircleCI config.yml:

Versión: 2.1
Pelotas:
salus: federation/salus@3.0.0
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escanear

Documentación de orbe

Bola CircleCI para Salus

parámetro

atributodescripcióndefectoOpciones
salus_executorEjecutor de CircleCI que se utilizará, que especifica el entorno de Saluscoinbase/salus:latestVer referencia de ejecutor
active_scannerEscáner para ejecutartodasBrakeman, PatternSearch, BundleAudit, NPMAaudit
Escáner_forzadoEscáneres que bloquean compilacionestodasBrakeman, PatternSearch, BundleAudit, NPMAaudit
report_uriDónde deben enviarse los informes de Salusarchivo: //../salus-report.jsonCualquier URI
Formato de informeQué formato usar para el informejsonjson, yaml, txt
report_verbositySi se debe activar un informe detalladociertoverdadero Falso
Archivo de configuraciónUbicación de almacenamiento del archivo de configuración en el repositorio (sobrescribe todos los demás parámetros excepto salus_executor)«»Cualquier nombre de archivo

Nota: active_scanners y force_scanners deben tener el formato yaml para el archivo de configuración de Salus.

Variables de entorno CircleCI

Guardado en custom_info un escaneo de Salus.

claveVariable CircleCIdescripción
sha1CIRCLE_SHA1Hash de la última confirmación en la compilación
ci_project_usernameCIRCLE_PROJECT_USERNAMENombre de usuario SCM del proyecto
renombrarCIRCLE_PROJECT_REPONAMENombre del repositorio
RamaCIRCLE_BRANCHNombre de la rama de Git que se creará
etiquetaCIRCLE_TAGNombre del dia
Repository_URLCIRCLE_REPOSITORY_URLURL del repositorio de Github o Bitbucket
compare_urlCIRCLE_COMPARE_URLURL para comparar confirmaciones en la compilación
build_urlCIRCLE_BUILD_URLURL de la compilación
external_build_idCIRCLE_BUILD_NUMCircleCI u otro identificador de compilación
pull_requestsCIRCLE_PULL_REQUESTSLista de solicitudes de extracción separadas por comas
ci_usernameCIRCLE_USERNAMENombre de usuario de SCM del usuario que inició la compilación
pr_usernameCIRCLE_PR_USERNAMENombre de usuario de SCM del usuario que creó la solicitud de extracción / fusión
pr_reponameCIRCLE_PR_REPONAMENombre del repositorio en el que se creó la solicitud de extracción / fusión
pr_numberCIRCLE_PR_NUMBERNúmero de la solicitud de extracción / fusión

Ejemplos de

.circleci / config.yml

Bloquear el escaneo con todos los escáneres

Versión: 2.1
Pelotas:
salus: federation/salus@3.0.0
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escanear

escaneo sin bloqueos con todos los escáneres

Versión: 2.1
Pelotas:
salus: federation/salus@3.0.0
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escaneo:
Forced_Scanner: «ninguno»

Bloqueo de escaneo solo con frenos

Versión: 2.1
Pelotas:
salus: federation/salus@3.0.0
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escaneo:
active_scanners: » n – Brakeman»
escáneres_forzados: » n – frenos»

escanear con un ejecutor Salus personalizado

Versión: 2.1
Pelotas:
salus: federation/salus@3.0.0
Artistas intérpretes o ejecutantes:
salus_2_4_2:
Estibador:
– Imagen: Coinbase / Salus: 2.4.2
Procesos de trabajo:
salus_scan:
Lugares de trabajo:
– Salus / Escaneo:
salus_executor:
Nombre: salus_2_4_2

Variables de entorno CircleCI no utilizadas

CI, CI_PULL_REQUEST, CI_PULL_REQUESTS, CIRCLE_INTERNAL_TASK_DATA, CIRCLE_JOB, CIRCLE_NODE_INDEX, CIRCLE_NODE_TOTAL, CIRCLE_PREVIOUS_BUILD_NUM, CIRCLE_PULLC.

Integración de acciones de Github

Salus también se puede usar con Github Actions.

ejemplo .github/workflows/main.yml:

en: [push]
Lugares de trabajo:
salus_scan_job:
se ejecuta en: ubuntu-latest
Nombre: ejemplo de un análisis de seguridad de Salus
Pasos:
– utilizado: Acciones / Pago @ v1
– Nombre: Salus Scan
ID: salus_scan
utilizado: federacy/scan-action@0.1.1

Documentación de acciones de Github

Acción de escaneo de seguridad de Salus

Esta acción utiliza Salus de Coinbase para ejecutar SAST y análisis de dependencia.

Los informes Bundle Audit, Brakeman, NPM Audit y Yarn Audit pueden enviarse opcionalmente a Secure Development by Federacy para su análisis.

Escáneres compatibles

Apellidoidioma
Auditoría de paquetesrubí
Guardafrenosrubí
auditoría sobre el nivel del marJavaScript
Auditoría de hiloJavaScript
gansoCaminar
bandidopitón
Auditoría de fletesoxido
semgrepLotes
Búsqueda de patronesn / a (usa bolígrafo)

Ejemplo de aplicacion

configuración por defecto

en: [push]
Lugares de trabajo:
salus_scan_job:
se ejecuta en: ubuntu-latest
Nombre: ejemplo de un análisis de seguridad de Salus
Pasos:
– utilizado: Acciones / Pago @ v1
– Nombre: Salus Scan
ID: salus_scan
utilizado: federacy/scan-action@0.1.1

Escáner único

en: [push]
Lugares de trabajo:
salus_scan_job:
se ejecuta en: ubuntu-latest
Nombre: ejemplo de un análisis de seguridad de Salus
Pasos:
– utilizado: Acciones / Pago @ v1
– Nombre: Salus Scan
ID: salus_scan
utilizado: federacy/scan-action@0.1.1
Con:
active_scanners: » n – Brakeman»
escáneres_forzados: » n – frenos»

Sin escáneres forzados

en: [push]
Lugares de trabajo:
salus_scan_job:
se ejecuta en: ubuntu-latest
Nombre: ejemplo de un análisis de seguridad de Salus
Pasos:
– utilizado: Acciones / Pago @ v1
– Nombre: Salus Scan
ID: salus_scan
utilizado: federacy/scan-action@0.1.1
Con:
Forced_Scanner: «ninguno»

Configuracion personalizada

en: [push]
Lugares de trabajo:
salus_scan_job:
se ejecuta en: ubuntu-latest
Nombre: ejemplo de un análisis de seguridad de Salus
Pasos:
– utilizado: Acciones / Pago @ v1
– Nombre: Salus Scan
ID: salus_scan
utilizado: federacy/scan-action@0.1.1
Alrededores:
SALUS_CONFIGURATION: «archivo: //../salus-configuration.yaml archivo: //config/pattern_search.yaml»

Entradas

atributodescripcióndefectoOpciones
active_scannerEscáner para ejecutartodasBrakeman, PatternSearch, BundleAudit, NPMAaudit, GoSec
Escáner_forzadoEscáneres que bloquean compilacionestodasBrakeman, PatternSearch, BundleAudit, NPMAaudit, GoSec
report_uriDónde deben enviarse los informes de Salusarchivo: //../salus-report.jsonCualquier URI
Formato de informeQué formato usar para el informejsonjson, yaml, txt
report_verbositySi se debe activar un informe detalladociertoverdadero Falso
salus_configuration¿Dónde puedo encontrar la configuración de Salus?Archivo: //../salus-configuration.yamlCualquier URI

Nota: active_scanners y force_scanners deben tener el formato yaml para el archivo de configuración de Salus.

Salidas

Ninguno.

Variables de entorno de Github

Guardado en custom_info de un escaneo de Salus.

claveVariable de Githubdescripción
sha1GITHUB_SHAHash de la última confirmación en la compilación
renombrarGITHUB_REPOSITORYNombre del repositorio
árbitroGITHUB_REFHacer referencia a este flujo desencadenado (rama o etiqueta)
ci_usernameGITHUB_ACTORNombre de usuario de Github del usuario que inició la compilación
github_actionGITHUB_ACTIONNombre de la acción
github_workflowGITHUB_WORKFLOWNombre del flujo de trabajo
github_event_nameGITHUB_EVENT_NAMENombre del evento que desencadenó el flujo de trabajo
github_event_pathGITHUB_EVENT_PATHRuta de carga útil del evento
github_workspaceGITHUB_WORKSPACERuta del directorio del espacio de trabajo
github_head_refGITHUB_HEAD_REFRef del repositorio principal, si está bifurcado
github_base_refGITHUB_BASE_REFRef del repositorio base si está bifurcado
github_homeEN CASARuta al directorio de inicio utilizado por Github

Envío de informes al panel de control

Pasos:

  • Cree una cuenta gratuita con Secure Development by Federacy
  • Haga clic en Aplicaciones en la barra de navegación.
  • Haga clic en «Crear aplicación».
  • Copie el trabajo de muestra en su flujo de trabajo en .github/workflows

Usa Salus en tu repositorio

Actualice el archivo de configuración para su CI especificado para ejecutar Salus. En el círculo se ve así:

docker run –rm -t -v $ (pwd): / home / repo coinbase / salus

Coinbase / Salus extrae la imagen de Docker

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba