
Мы хотели бы попросить всех участников клонировать *свежую копию* этого репозитория после обслуживания 21 сентября.
Salus (Security Automation as a Lightweight Universal Scanner), названный в честь римской богини защиты, это инструмент для координации выполнения сканеров безопасности. Вы можете запустить Salus на репозитории через Docker-демон, и он определит, какие сканеры актуальны, запустит их и предоставит результат. Большинство сканеров — это другие зрелые проекты с открытым исходным кодом, которые мы включаем непосредственно в контейнер.
Salus особенно полезен для CI/CD-пайплайнов, так как становится централизованным местом для координации сканирования в масштабах большого количества репозиториев. Обычно сканеры настраиваются на уровне репозитория для каждого проекта. Это означает, что при внесении общеорганизационных изменений в способ запуска сканеров каждый репозиторий должен быть обновлён. Вместо этого вы можете обновить Salus, и все сборки мгновенно унаследуют изменения.
Salus поддерживает мощную конфигурацию, позволяющую задавать глобальные значения по умолчанию и локальные настройки. Наконец, Salus может сообщать метрики по каждому репозиторию, такие как какие пакеты включены или какие существуют проблемы. Эти отчёты могут централизованно оцениваться в вашей инфраструктуре, обеспечивая масштабируемое отслеживание безопасности.
# Перейдите в корневую директорию проекта, который хотите просканировать Salus
cd /path/to/repo
# Запустите следующую строку, находясь в корневой директории (правки не требуются)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0, ищет семантические и синтаксические шаблоны в коде на уровне AST.npm audit 6.14.8, ищет CVE в зависимостях модулей Node.js.yarn audit 1.22.0, ищет CVE в зависимостях модулей Node.js.sift 0.9.0, ищет определённые строки в проекте, которые могут быть опасными или требовать присутствия определённых строк.Salus также анализирует файлы зависимостей и сообщает, какие библиотеки и версии используются. Это может быть полезно для отслеживания зависимостей в вашем парке.
Поддерживаемые языки в настоящее время:
Salus спроектирован как высококонфигурируемый инструмент, чтобы работать в различных типах сред и с разными сканерами. Он поддерживает интерполяцию переменных окружения и каскадные конфигурации, а также может читать конфигурацию и отправлять отчёты через HTTP.
Иногда необходимо игнорировать определённые CVE, правила, тесты, группы, директории или иным образом изменить конфигурацию по умолчанию для сканера. В документации по сканерам объясняется, как это сделать для каждого поддерживаемого Salus сканера.
Если вы хотите создать собственные сканеры или поддержать больше языков, которые в настоящее время не поддерживаются, вы можете использовать этот метод создания пользовательских образов Salus.
Salus может быть интегрирован с CircleCI с помощью публичного Orb. Поддерживаются все опции конфигурации Salus, значения по умолчанию такие же, как и для самого Salus.
Пример конфигурационного файла CircleCI config.yml:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus также можно использовать с Github Actions.
Пример .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]
Для вашей CI обновите конфигурационный файл для запуска Salus. В CircleCI это будет выглядеть так:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus — это образ docker, который мы поддерживаем.
Вклад в этот проект чрезвычайно приветствуется, и мы искренне надеемся, что проделанная нами работа послужит только основой для того, чтобы сообщества разработчиков и безопасности могли объединиться для улучшения безопасности всей инфраструктуры.
Вы можете прочитать больше о настройке вашего окружения для разработки и об архитектуре Salus.
Вы также можете найти инструкцию по добавлению нового сканера в Salus.
Этот проект распространяется с открытым исходным кодом на условиях лицензии Apache 2.0.
TruffleHog 3.19.0, ищет утекшие учётные данные.