
Salus (Automação de segurança como um scanner universal leve), nomeado após a deusa romana da proteção, é uma ferramenta para coordenar a execução de scanners de segurança. Você pode executar salus em um repositório através do daemon do Docker e ele determinará quais scanners são relevantes, executam -os e fornecerão a saída. A maioria dos scanners são outros projetos de código aberto maduro que incluímos diretamente no contêiner.
O Salus é particularmente útil para pipelines de IC/CD, porque se torna um local centralizado para coordenar a digitalização em uma grande frota de repositórios. Normalmente, os scanners são configurados no nível do repositório para cada projeto. Isso significa que, ao fazer alterações amplas na organização na maneira como os scanners são executados, cada repositório deve ser atualizado. Em vez disso, você pode atualizar o Salus e todas as compilações herdarão instantaneamente a mudança.
O Salus suporta uma configuração poderosa que permite inadimplência global e ajustes locais. Finalmente, o Salus pode relatar métricas em cada repositório, como quais pacotes estão incluídos ou quais preocupações existem. Esses relatórios podem ser avaliados centralmente em sua infraestrutura para permitir o rastreamento de segurança escalável.
# 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 procura padrões semânticos e sintáticos no código no nível AST.npm audit 6.14.8, que procura CVEs nas dependências do módulo do nó.yarn audit 1.22.0, que procura CVEs nas dependências do módulo do nó.sift 0.9.0, procura certas strings em um projeto que possa ser perigoso ou exigir que certas seqüências estejam presentes.TruffleHog 3.19.0, procura credenciais vazadas.O Salus também analisa arquivos de dependência e relata quais bibliotecas e versões estão sendo usadas. Isso pode ser útil para rastrear dependências em toda a sua frota.
Os idiomas atualmente suportados são:
O Salus foi projetado para ser altamente configurável, para que possa funcionar em muitos tipos diferentes de ambientes e com muitos scanners diferentes. Ele suporta configurações de interpolação e cascata de variáveis de ambiente e pode ler a configuração e postar relatórios sobre o HTTP.
Às vezes, é necessário ignorar certos CVEs, regras, testes, grupos, diretórios ou modificar a configuração padrão para um scanner. O diretório Docs/Scanners explica como fazê -lo para cada scanner que o Salus suporta.
Se você deseja criar scanners personalizados ou suportar mais idiomas que não são suportados no momento, você pode usar esse método de criação de imagens Salus personalizadas.
O Salus pode ser integrado ao Circleci usando um Orb público. Todas as opções de configuração do Salus são suportadas e os padrões são os mesmos do próprio Salus.
Exemplo CircLeci config.yml :
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Documentação do ORB
Salus também pode ser usado com ações do GitHub.
Exemplo .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]
Documentação de ação do GitHub
Para o seu IC, atualize o arquivo de configuração para executar Salus. Em círculo, será assim:
docker run --rm -t -v $( pwd ) :/home/repo coinbase/salusCoinbase/Salus puxa a imagem do Docker
A contribuição para este projeto é extremamente bem -vinda e é nossa sincera esperança que o trabalho que fizemos até este ponto serve apenas como base para permitir que as comunidades de segurança/desenvolvimento como um todo se unam para melhorar a segurança da infraestrutura de todos .
Você pode ler mais sobre como configurar seu ambiente de desenvolvimento ou a arquitetura de Salus.
Você também pode encontrar etapas para adicionar um novo scanner ao Salus
Este projeto está disponível de código aberto nos termos da licença Apache 2.0.