
Dawn — это статический анализатор безопасности для веб-приложений, написанных на Ruby. Он поддерживает фреймворки Sinatra, Padrino и Ruby on Rails.
dawn — это сканер исходного кода, предназначенный для проверки ваших веб-приложений на наличие проблем безопасности.
Инструмент может сканировать веб-приложения, написанные на Ruby, и поддерживает все основные MVC (Model View Controller) фреймворки «из коробки»:
Версия dawn 2.0 содержит более 680 проверок безопасности в своей базе знаний, которая еженедельно обновляется из National Vulnerability Database от NIST.
Когда вы запускаете dawn на вашем коде, он анализирует ваш проект Gemfile.lock, ища используемые гемы, и пытается определить версию интерпретатора ruby, которую вы используете или объявили в вашем любимом инструменте управления версиями ruby (RVM, rbenv, ...).
Затем инструмент пытается определить MVC-фреймворк, который использует ваше веб-приложение, и применяет соответствующую проверку безопасности. Существуют проверки, предназначенные для приложений rails, или проверки, применимые к любому коду ruby.
dawn также может анализировать код в ваших представлениях (views) и отслеживать источники (sinks) для обнаружения межсайтового скриптинга и SQL-инъекций, внесенных вашим собственным кодом (в дорожной карте проекта этот код будет в центре будущих усилий по разработке).
Результат сканирования безопасности dawn — это список уязвимостей с некоторыми действиями по смягчению, которым вы можете следовать, чтобы создать более надёжное веб-приложение.
Вы можете установить последнюю версию dawn, загрузив её с Rubygems, набрав:
$ gem install dawnscanner
После этого вам нужно скачать базу знаний с Github и распаковать архив в каталог $HOME/dawnscanner/kb.
Типичная структура каталога kb выглядит так:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
База знаний структурирована следующим образом:
Начиная с версии 2.0, инструмент использует подкоманды для запуска конкретных задач, каждая из которых имеет свои справочные сообщения.
Подкоманда scan указывает dawn сканировать указанную цель на наличие проблем безопасности.
$ dawn scan target
На данный момент результаты доступны только в текстовом формате и сохраняются в каталоге с именем, соответствующим временной метке сканирования, в $HOME/dawnscanner/results/target, где target — это имя анализируемого приложения.
С помощью подкоманды kb можно выполнять запросы к базе знаний.
dawn kb find # Ищет в базе знаний указанную уязвимость
dawn kb help [COMMAND] # Описывает подкоманды или одну конкретную подкоманду
dawn kb lint # Проверяет корректность содержимого базы знаний
dawn kb list gem_name[gem_version] # Выводит все проблемы безопасности, затрагивающие гем, переданный в качестве аргумента (строка версии необязательна).
dawn kb status # Проверяет статус базы знаний
dawn kb unpack # Распаковывает проверки безопасности в путь библиотеки KB
Twitter профиль: @dawnscanner Репозиторий Github: https://github.com/thesp0nge/dawnscanner
Отзывы — это отлично, и мы очень рады слышать ваше мнение.
Если вы гордый пользователь dawn, если вы находите его полезным, если вы интегрировали его в свой процесс релиза и хотите открыто поддержать проект, вы можете разместить свою ссылку здесь. Просто откройте issue с заявлением о том, как вы относитесь к инструменту, и, если есть, логотипом вашей компании.
Спасибо.
saten: первый сообщённый issue об опечатке в README.
presidentbeef: за его выдающуюся работу, которая вдохновила меня на создание dawn, и за двойную проверку матрицы сравнения. Issue #2 ваш :)
marinerJB: за различные отчёты об ошибках и дальнейшие идеи.
Matteo: за идеи об API и их использовании с хуками github.com.
Copyright (c) 2013-2023 Paolo Perego [email protected]
Лицензия MIT
Настоящим предоставляется бесплатное разрешение любому лицу, получающему копию этого программного обеспечения и связанных с ним файлов документации (далее — «Программное обеспечение»), на использование Программного обеспечения без ограничений, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на предоставление лицам, которым предоставляется это Программное обеспечение, указанных прав при соблюдении следующих условий:
Указанное выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ПРЕТЕНЗИЯМ, УБЫТКАМ ИЛИ ДРУГИМ ОБЯЗАТЕЛЬСТВАМ, КАК В РАМКАХ ДОГОВОРА, ТАК И ВНЕ ЕГО, ВОЗНИКШИМ ИЗ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С НИМ.