Как бесплатно просканировать ваш проект на ruby или JS на предмет улучшения безопасности.

Как бесплатно просканировать ваш проект на ruby или JS на предмет улучшения безопасности.

Содержание
  1. Вот почему это очень круто:
  2. Установка Bearer
  3. Запустите первое сканирование
  4. Проверьте

Инструменты безопасности пугают. Они созданы для команд безопасности, которые уже знают жаргон и такие детали, как идентификаторы CWE. Но как быть с разработчиками? У нас есть инструменты для проверки уязвимых зависимостей и инструменты для проверки утечки секретов, но нам не хватает простых в применении советов по повышению безопасности нашего кода.

Хорошие новости! Существует бесплатный инструмент с открытым исходным кодом, который может просканировать ваш код, проверить его на наличие известных рисков и выдать вам список того, что нужно исправить. Все они отсортированы по степени опасности кода, исходя из того, насколько чувствительны данные и насколько опасной может быть утечка или взлом. Она называется Bearer.

Вот почему это очень круто:

Быстрое сканирование: большинство проектов занимает меньше минуты, а такие крупные проекты, как forem, gitlab и т. д., - от 3 до 10 минут. Ваши данные никогда не покидают ваш компьютер. Сканер с открытым исходным кодом считывает ваш код, но не отправляет его или метаданные на какие-либо серверы. Практический совет: Каждое срабатывающее правило показывает, где в вашем коде проблема, и дает ссылку на документацию о том, как ее улучшить.

TLDR: В итоге рабочий процесс выглядит следующим образом:

bearer scan /your-project.

Вы можете запустить это локально или в рамках CI/CD, и каждый раз вы будете получать обобщенный отчет. Давайте приступим.

Установка Bearer

В документации есть полный список способов установки Bearer, но самые распространенные - это использование Brew или curl.

Homebrew:

brew install Bearer/tap/bearer.

Curl:

curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh.

Запустите первое сканирование

Теперь перейдите к проекту, который вы хотите просканировать, и выполните команду scan.

bearer scan .

Приложение просканирует ваш проект в несколько этапов. Сначала оно обнаруживает и классифицирует конфиденциальные типы данных, а затем отправляет их в тот тип отчета, который вы используете. По умолчанию используется отчет ”Безопасность”, который показывает все риски безопасности, найденные в вашей кодовой базе, путем проверки на соответствие набору “Правил”.

Вы получаете сводку, которая выглядит примерно так:

107 проверок, 12 неудач, 6 предупреждений CRITICAL: 0 HIGH: 1 (CWE-798) MEDIUM: 11 (CWE-201, CWE-209, CWE-313, CWE-315, CWE-319, CWE-326, CWE-331, CWE-532, CWE-539) НИЗКИЙ: 0 ПРЕДУПРЕЖДЕНИЕ: 6 (CWE-312)

Кроме того, каждый сбой и предупреждение показывают, где он произошел, и содержат ссылку на документацию о том, как устранить проблему.

MEDIUM: Sensitive data in a JWT detected. [CWE-315] https://docs.bearer.com/reference/rules/ruby_lang_jwt Чтобы пропустить это правило, используйте флаг --skip-rule=ruby_lang_jwt Файл: lib/jwt.rb:6 3 JWT.encode( 4 { 5 id: user.id, 6 email: user.email, 7 class: user.class, 8 }, 9 nil, ... 11 )

Эти правила взяты из топ-10 OWASP, популярных CWE и некоторых общих лучших практик сообщества appsec. Это быстрый способ получить вторую пару глаз на ваш код - особенно если вы не являетесь экспертом по безопасности.

Проверьте

Это большая просьба - включить что-то в ваш конвейер или поток тестирования, но мне очень нравится использовать это в качестве разового сканирования, когда я создаю что-то новое. Что-то вроде линтинга, но для безопасности. Сейчас основная проверка безопасности поддерживает кодовые базы ruby и JS/TS. Попробуйте - если хотите, можете использовать наше тестовое репо. Дайте нам знать, что вы думаете, и если есть что-то, что вы хотели бы видеть добавленным, откройте вопрос на GitHub.

Источник