
Salus (автоматизация безопасности как легкий универсальный сканер), названный в честь римской богини защиты, является инструментом для координации выполнения сканеров безопасности. Вы можете запустить Salus в репозитории через Docker Daemon, и он определит, какие сканеры имеют отношение к ним, запустите их и обеспечивают выход. Большинство сканеров представляют собой другие зрелые проекты с открытым исходным кодом, которые мы включаем непосредственно в контейнер.
Салус особенно полезен для трубопроводов CI/CD, потому что он становится централизованным местом для координации сканирования на большом парке репозитории. Как правило, сканеры настроены на уровне хранилища для каждого проекта. Это означает, что при внесении широких изменений орг изменяется в том, как запускаются сканеры, каждый репозиторий должен быть обновлен. Вместо этого вы можете обновить Salus, и все сборки мгновенно наследуют изменение.
Salus поддерживает мощную конфигурацию, которая допускает глобальные значения по умолчанию и локальные настройки. Наконец, Salus может сообщать о метрик на каждом хранилище, например, какие пакеты включены или какие проблемы существуют. Эти отчеты могут быть оцениваются в вашей инфраструктуре, чтобы обеспечить масштабируемое отслеживание безопасности.
# 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, который ищет семантические и синтаксические шаблоны в коде на уровне AST.npm audit 6.14.8, который ищет CVE в зависимости модуля узла.yarn audit 1.22.0, которая ищет CVE в зависимости модуля узла.sift 0.9.0, ищет определенные строки в проекте, который может быть опасным или может потребовать, чтобы определенные строки присутствовали.TruffleHog 3.19.0, ищет просочившиеся учетные данные.Salus также анализирует файлы зависимости и отчеты, какие библиотеки и версии используются. Это может быть полезно для отслеживания зависимостей в вашем флоте.
В настоящее время поддерживаемые языки:
Salus предназначен для того, чтобы быть высоко настраиваемым, чтобы он мог работать во многих различных типах среды и со многими различными сканерами. Он поддерживает интерполяцию и каскадные конфигурации переменной среды и может считывать конфигурацию и публиковать отчеты по HTTP.
Иногда необходимо игнорировать определенные CVE, правила, тесты, группы, каталоги или иным образом изменять конфигурацию по умолчанию для сканера. Справочник документов/сканеров объясняет, как это сделать для каждого сканера, который поддерживает Салус.
Если вы хотите создать пользовательские сканеры или поддерживать больше языков, которые в настоящее время не поддерживаются, вы можете использовать этот метод создания пользовательских изображений Salus.
Salus может быть интегрирован с Circleci с помощью публичного шар. Все варианты конфигурации Salus поддерживаются, а по умолчанию такие же, как и для самого Salus.
Пример circleci config.yml :
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Документация по сферу
Салус также можно использовать с действиями GitHub.
Пример .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]
Документация по действию GitHub
Для вашего данного CI обновите файл конфигурации для запуска Salus. По кругу это будет выглядеть так:
docker run --rm -t -v $( pwd ) :/home/repo coinbase/salusCoinbase/Salus тянет изображение Docker
Вклад в этот проект чрезвычайно приветствуется, и наша искренняя надежда на то, что работа, которую мы проделали до этого момента, служит только основой для разрешения сообществам безопасности/развития в целом собираться вместе для повышения безопасности инфраструктуры каждого .
Вы можете прочитать больше о создании вашей среды разработки или архитектуре Salus.
Вы также можете найти шаги, чтобы добавить новый сканер в Salus
Этот проект доступен с открытым исходным кодом в условиях лицензии Apache 2.0.