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/[email protected]
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escanear

Documentación de orbe

Bola CircleCI para Salus

parámetro

atributo descripción defecto Opciones
salus_executor Ejecutor de CircleCI que se utilizará, que especifica el entorno de Salus coinbase/salus:latest Ver referencia de ejecutor
active_scanner Escáner para ejecutar todas Brakeman, PatternSearch, BundleAudit, NPMAaudit
Escáner_forzado Escáneres que bloquean compilaciones todas Brakeman, PatternSearch, BundleAudit, NPMAaudit
report_uri Dónde deben enviarse los informes de Salus archivo: //../salus-report.json Cualquier URI
Formato de informe Qué formato usar para el informe json json, yaml, txt
report_verbosity Si se debe activar un informe detallado cierto verdadero Falso
Archivo de configuración Ubicació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.

clave Variable CircleCI descripción
sha1 CIRCLE_SHA1 Hash de la última confirmación en la compilación
ci_project_username CIRCLE_PROJECT_USERNAME Nombre de usuario SCM del proyecto
renombrar CIRCLE_PROJECT_REPONAME Nombre del repositorio
Rama CIRCLE_BRANCH Nombre de la rama de Git que se creará
etiqueta CIRCLE_TAG Nombre del dia
Repository_URL CIRCLE_REPOSITORY_URL URL del repositorio de Github o Bitbucket
compare_url CIRCLE_COMPARE_URL URL para comparar confirmaciones en la compilación
build_url CIRCLE_BUILD_URL URL de la compilación
external_build_id CIRCLE_BUILD_NUM CircleCI u otro identificador de compilación
pull_requests CIRCLE_PULL_REQUESTS Lista de solicitudes de extracción separadas por comas
ci_username CIRCLE_USERNAME Nombre de usuario de SCM del usuario que inició la compilación
pr_username CIRCLE_PR_USERNAME Nombre de usuario de SCM del usuario que creó la solicitud de extracción / fusión
pr_reponame CIRCLE_PR_REPONAME Nombre del repositorio en el que se creó la solicitud de extracción / fusión
pr_number CIRCLE_PR_NUMBER Nú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/[email protected]
Procesos de trabajo:
Principal:
Lugares de trabajo:
– Salus / Escanear

escaneo sin bloqueos con todos los escáneres

Versión: 2.1
Pelotas:
salus: federation/[email protected]
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/[email protected]
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/[email protected]
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/[email protected]

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

Apellido idioma
Auditoría de paquetes rubí
Guardafrenos rubí
auditoría sobre el nivel del mar JavaScript
Auditoría de hilo JavaScript
ganso Caminar
bandido pitón
Auditoría de fletes oxido
semgrep Lotes
Búsqueda de patrones n / 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/[email protected]

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/[email protected]
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/[email protected]
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/[email protected]
Alrededores:
SALUS_CONFIGURATION: «archivo: //../salus-configuration.yaml archivo: //config/pattern_search.yaml»

Entradas

atributo descripción defecto Opciones
active_scanner Escáner para ejecutar todas Brakeman, PatternSearch, BundleAudit, NPMAaudit, GoSec
Escáner_forzado Escáneres que bloquean compilaciones todas Brakeman, PatternSearch, BundleAudit, NPMAaudit, GoSec
report_uri Dónde deben enviarse los informes de Salus archivo: //../salus-report.json Cualquier URI
Formato de informe Qué formato usar para el informe json json, yaml, txt
report_verbosity Si se debe activar un informe detallado cierto verdadero Falso
salus_configuration ¿Dónde puedo encontrar la configuración de Salus? Archivo: //../salus-configuration.yaml Cualquier 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.

clave Variable de Github descripción
sha1 GITHUB_SHA Hash de la última confirmación en la compilación
renombrar GITHUB_REPOSITORY Nombre del repositorio
árbitro GITHUB_REF Hacer referencia a este flujo desencadenado (rama o etiqueta)
ci_username GITHUB_ACTOR Nombre de usuario de Github del usuario que inició la compilación
github_action GITHUB_ACTION Nombre de la acción
github_workflow GITHUB_WORKFLOW Nombre del flujo de trabajo
github_event_name GITHUB_EVENT_NAME Nombre del evento que desencadenó el flujo de trabajo
github_event_path GITHUB_EVENT_PATH Ruta de carga útil del evento
github_workspace GITHUB_WORKSPACE Ruta del directorio del espacio de trabajo
github_head_ref GITHUB_HEAD_REF Ref del repositorio principal, si está bifurcado
github_base_ref GITHUB_BASE_REF Ref del repositorio base si está bifurcado
github_home EN CASA Ruta 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