
Nos gustaría solicitar a todos los contribuyentes que clonen una *copia nueva* de este repositorio desde el mantenimiento del 21 de septiembre.
Salus (Security Automation as a Lightweight Universal Scanner), nombrado así en honor a la diosa romana de la protección, es una herramienta para coordinar la ejecución de escáneres de seguridad. Puedes ejecutar Salus en un repositorio a través del demonio Docker y él determinará qué escáneres son relevantes, los ejecutará y proporcionará la salida. La mayoría de los escáneres son otros proyectos maduros de código abierto que incluimos directamente en el contenedor.
Salus es particularmente útil para pipelines CI/CD porque se convierte en un lugar centralizado 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 al hacer cambios a nivel organizacional en cómo se ejecutan los escáneres, cada repositorio debe actualizarse. En su lugar, puedes actualizar Salus y todas las compilaciones heredarán el cambio instantáneamente.
Salus admite una potente configuración que permite valores predeterminados globales y ajustes locales. Finalmente, Salus puede reportar métricas sobre cada repositorio, como qué paquetes están incluidos o qué preocupaciones existen. Estos informes pueden evaluarse de forma centralizada en tu infraestructura para permitir un seguimiento de seguridad escalable.
# Navega al directorio raíz del proyecto donde quieras ejecutar Salus
cd /path/to/repo
# Ejecuta la siguiente línea mientras estás en el directorio raíz (No se necesitan ediciones)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0, busca patrones semánticos y sintácticos en el código a nivel de AST.npm audit 6.14.8 que busca CVEs en dependencias de módulos Node.yarn audit 1.22.0 que busca CVEs en dependencias de módulos Node.sift 0.9.0, busca ciertas cadenas en un proyecto que podrían ser peligrosas o que podrían requerir que ciertas cadenas estén presentes.TruffleHog 3.19.0, busca credenciales filtradas.Salus también analiza archivos de dependencias e informa qué bibliotecas y versiones se están utilizando. Esto puede ser útil para rastrear dependencias en toda tu flota.
Actualmente, los lenguajes 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 interpolación de variables de entorno y configuraciones en cascada, y puede leer configuraciones y publicar informes a través de HTTP.
A veces es necesario ignorar ciertos CVEs, reglas, pruebas, grupos, directorios, o modificar de otro modo la configuración predeterminada para un escáner. El directorio docs/scanners explica cómo hacerlo para cada escáner que Salus soporta.
Si deseas construir escáneres personalizados o soportar más lenguajes que no están actualmente compatibles, puedes usar este método de construcción de imágenes Salus personalizadas.
Salus puede integrarse con CircleCI usando un Orb público. Todas las opciones de configuración de Salus son compatibles y los valores predeterminados son los mismos que los de Salus mismo.
Ejemplo de config.yml de CircleCI:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus también se puede usar con Github Actions.
Ejemplo de .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]
Para tu CI determinado, actualiza el archivo de configuración para ejecutar salus. En CircleCI, se verá así:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus obtiene la imagen de Docker
Las contribuciones a este proyecto son extremadamente bienvenidas y es nuestra sincera esperanza que el trabajo que hemos hecho hasta ahora solo sirva como base para permitir que las comunidades de seguridad/desarrollo en su conjunto se unan para mejorar la seguridad de la infraestructura de todos.
Puedes leer más sobre cómo configurar tu entorno de desarrollo, o la arquitectura de Salus.
También puedes encontrar pasos para agregar un nuevo escáner a Salus
Este proyecto está disponible como código abierto bajo los términos de la Licencia Apache 2.0.