
Gostaríamos de solicitar que todos os contribuidores clonem uma *cópia nova* deste repositório desde a manutenção de 21 de setembro.
Salus (Automação de Segurança como um Scanner Universal Leve), nomeado em homenagem à deusa romana da proteção, é uma ferramenta para coordenar a execução de scanners de segurança. Você pode executar o Salus em um repositório através do daemon Docker e ele determinará quais scanners são relevantes, executá-los e fornecer a saída. A maioria dos scanners são outros projetos maduros de código aberto que incluímos diretamente no contêiner.
O Salus é particularmente útil para pipelines de CI/CD porque se torna um local centralizado para coordenar a varredura 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 em toda a organização em como os scanners são executados, cada repositório deve ser atualizado. Em vez disso, você pode atualizar o Salus e todas as builds herdarão instantaneamente a mudança.
O Salus suporta uma configuração poderosa que permite padrões globais 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 um acompanhamento de segurança escalável.
# Navegue até o diretório raiz do projeto que deseja executar o Salus
cd /path/to/repo
# Execute a linha a seguir enquanto estiver no diretório raiz (Nenhuma edição necessária)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0, que procura por padrões semânticos e sintáticos no código no nível da AST.npm audit 6.14.8 que procura por CVEs em dependências de módulos node.yarn audit 1.22.0 que procura por CVEs em dependências de módulos node.sift 0.9.0, procura por certas strings em um projeto que podem ser perigosas ou podem exigir que certas strings estejam presentes.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.
As linguagens atualmente suportadas 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 interpolação de variáveis de ambiente e configurações em cascata, e pode ler configurações e postar relatórios via HTTP.
Às vezes é necessário ignorar certos CVEs, regras, testes, grupos, diretórios, ou de outra forma modificar a configuração padrão para um scanner. O diretório docs/scanners explica como fazer isso para cada scanner que o Salus suporta.
Se você deseja construir scanners personalizados ou suportar mais linguagens que não são atualmente suportadas, você pode usar este método de construção de imagens Salus personalizadas.
O Salus pode ser integrado com CircleCI usando uma Orb pública. 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 de config.yml do CircleCI:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
O Salus também pode ser usado com Github Actions.
Exemplo de .github/workflows/main.yml:
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Exemplo de Varredura de Segurança Salus
steps:
- uses: actions/checkout@v1
- name: Varredura Salus
id: salus_scan
uses: federacy/[email protected]
Para seu CI específico, atualize o arquivo de configuração para executar o salus. No circle, ficará assim:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus baixa a imagem docker
A contribuição para este projeto é extremamente bem-vinda e é nossa sincera esperança que o trabalho que fizemos até este ponto sirva 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 do Salus.
Você também pode encontrar passos para adicionar um novo scanner ao Salus
Este projeto está disponível como código aberto sob os termos da Licença Apache 2.0.
TruffleHog 3.19.0, procura por credenciais vazadas.