
Salus (Automatización de seguridad como un escáner universal ligero), llamado así por la diosa romana de la protección, es una herramienta para coordinar la ejecución de los escáneres de seguridad. Puede ejecutar Salus en un repositorio a través del Docker Daemon y determinará qué escáneres son relevantes, ejecutarlos y proporcionar la salida. La mayoría de los escáneres son otros proyectos de código abierto maduros que incluimos directamente en el contenedor.
Salus es particularmente útil para las tuberías de CI/CD porque se convierte en un lugar centralizado para coordinar el escaneo a través de una gran flota de repositorios. Por lo general, los escáneres se configuran a nivel de repositorio para cada proyecto. Esto significa que al hacer una organización amplia de cambios en cómo se ejecutan los escáneres, cada repositorio debe actualizarse. En cambio, puede actualizar Salus y todas las compilaciones heredarán instantáneamente el cambio.
Salus admite una configuración potente que permite valores predeterminados globales y ajustes locales. Finalmente, Salus puede informar métricas en cada repositorio, como qué paquetes están incluidos o qué preocupaciones existen. Estos informes pueden evaluarse centralmente en su infraestructura para permitir el seguimiento de seguridad escalable.
# Navigate to the root directory of the project you want to run Salus on
cd /path/to/repo
# Run the following line while in the root directory (No edits necessary)
docker run --rm -t -v $( pwd ) :/home/repo coinbase/salussemgrep 1.0.0, que busca patrones semánticos y sintácticos en código a nivel AST.npm audit 6.14.8 que busca CVE en dependencias del módulo de nodo.yarn audit 1.22.0 que busca CVE en dependencias del módulo de nodo.sift 0.9.0, busca ciertas cadenas en un proyecto que pueda ser peligroso o que pueda requerir que ciertas cadenas estén presentes.TruffleHog 3.19.0, busca credenciales filtradas.Salus también analiza los archivos de dependencia e informes que se están utilizando bibliotecas y versiones. Esto puede ser útil para rastrear las dependencias en su flota.
Los idiomas actualmente compatibles son:
Salus está diseñado para ser altamente configurable para que pueda funcionar en muchos tipos diferentes de entornos y con muchos escáneres diferentes. Admite configuraciones de interpolación variable de entorno y en cascada, y puede leer la configuración y publicar informes a través de HTTP.
A veces es necesario ignorar ciertas CVE, reglas, pruebas, grupos, directorios o modificar la configuración predeterminada para un escáner. El directorio DOCS/Scanners explica cómo hacerlo para cada escáner que SALUS admite.
Si desea crear escáneres personalizados o admitir más idiomas que no sean compatibles actualmente, puede usar este método para construir imágenes de Salus personalizadas.
Salus se puede integrar con Circleci mediante el uso de un orbe público. Todas las opciones de configuración de Salus son compatibles, y los valores predeterminados son las mismas que para Salus en sí.
Ejemplo Circleci config.yml :
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Documentación de ORB
Salus también se puede usar con acciones de GitHub.
Ejemplo .github/workflows/main.yml :
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Salus Security Scan Example
steps:
- uses: actions/checkout@v1
- name: Salus Scan
id: salus_scan
uses: federacy/[email protected]
Documentación de acción de Github
Para su CI dado, actualice el archivo de configuración para ejecutar Salus. En el círculo, se verá así:
docker run --rm -t -v $( pwd ) :/home/repo coinbase/salusCoinbase/Salus extrae la imagen de Docker
La contribución a este proyecto es extremadamente bienvenida y es nuestra sincera esperanza que el trabajo que hemos hecho hasta este punto solo sirve como base para permitir que las comunidades de seguridad/desarrollo en su conjunto se reúnan para mejorar la seguridad de la infraestructura de todos .
Puede leer más sobre cómo configurar su entorno de desarrollo o la arquitectura de Salus.
También puede encontrar pasos para agregar un nuevo escáner a Salus
Este proyecto está disponible de código abierto bajo los términos de la licencia Apache 2.0.