
Веб-сканер уязвимостей исходного кода

Raptor — это веб-ориентированный (веб-сервис + интерфейс) сканер уязвимостей исходных кодов, работающий с GitHub. Он сканирует репозиторий по его URL-адресу на GitHub. Вы можете настроить вебхуки, чтобы автоматические сканирования выполнялись при каждом коммите или слиянии pull request. Сканирование выполняется асинхронно, а результаты доступны только пользователю, запустившему его.
Некоторые возможности Raptor:
Этот инструмент создан, чтобы помочь сообществу и стартапам уделять больше внимания безопасному кодированию. Он может не соответствовать функциям/качеству коммерческих аналогов, никаких гарантий не даётся, и вы предупреждены. Инструмент предназначен для использования специалистами по аудиту безопасности и/или разработчиками с опытом безопасного кодирования для поиска точек входа уязвимостей во время аудита или рецензирования кода. НЕ доверяйте выводу инструмента слепо. Лучше всего использовать Raptor, подключив его к вашему конвейеру CI/CD.
0.1 бета
Интегрированные плагины:
Примечание: Большинство следующих инструментов/модулей/библиотек были значительно изменены для лучшей интеграции в фреймворк.
Доступные наборы правил:
Видео установки: YouTube Install
$ wget https://github.com/dpnishant/raptor/archive/master.zip -O raptor.zip
$ unzip raptor.zip
$ cd raptor-master
$ sudo sh install.sh
Видео использования: YouTube Usage
cd raptor-master
sudo sh start.sh #запускает серверный веб-сервис
Теперь откройте браузер и перейдите на Raptor Home (http://localhost/raptor/)
Войдите, используя имя пользователя, зарегистрированное на соответствующем сервере GitHub, к которому вы подключены, и любой пароль (но запомните имя пользователя для просмотра истории сканирования).
Например:
Если вы зарегистрированы как foobar на https://github.com, используйте то же имя пользователя при сканировании репозиториев на https://github.com. Однако, если вы зарегистрированы как foobar_corp на вашем личном/корпоративном GitHub (например, https://github.corp.company.com), используйте то же имя пользователя, если вы собираетесь сканировать репозитории на https://github.corp.company.com.
На данный момент пароль может быть любым, так как в версии для разработки НЕ реализована база данных.
Вы можете использовать встроенный лёгкий редактор правил на стороне клиента для добавления любых новых/пользовательских правил под ваши конкретные требования — или любой другой текстовый редактор, так как файлы наборов правил представляют собой простые JSON-структуры. Откройте в браузере правила, расположенные в backend/rules. Когда закончите, сохраните новый или изменённый файл правил в той же директории, т.е. backend/rules. Теперь нужно сделать небольшую правку вот здесь: Init Script. Добавьте имя вашего нового набора правил в этот массив без расширения .rulepack и перезапустите серверный сервис. Всё готово! 👍
Перейти к редактору: Rules Editor (http://localhost/raptor/editrules.php)
Добавьте шаблон имени файла или директории, которые следует исключить из сканирования. Это полезно для игнорирования известных файлов, например jquery.min.js, или целой директории /test/. В образце ниже jquery означает jquery (регистрозависимо, будьте внимательны). В секции plugins поле name плагина — это имя файла набора правил без расширения .rulepack, как указано в директории rules/. Поле issue — это идентификатор проблемы, указанный в каждом правиле файла набора правил: Пример #1, Пример #2. Значение поля match_type может быть regex, start или end. Поле value — это точная строка для сопоставления, если match_type — start или end. Если match_type — regex, value должно содержать исходный шаблон RegEx, который нужно закодировать в Base64, чтобы избежать проблем с экранированием в JSON. regex — это сопоставление по регулярному выражению, start сопоставляет начало фрагмента, а end — конец фрагмента.
Работает так: после завершения сканирования уязвимостей сканер проходит по всем найденным проблемам и удаляет те, которые соответствуют шаблонам (в зависимости от типа сопоставления) каждого плагина, указанного в файле ignore_list.rulepack.