
RIPS — статический анализатор исходного кода для поиска уязвимостей в PHP-скриптах
Статический анализатор исходного кода для поиска уязвимостей в PHP-скриптах
Следуйте инструкциям на главной странице.
Смотрите оригинальную HTML-форму сканирования php-rips (index.php) для получения дополнительных опций.
php index.php [option=value]
| Опции | Значение |
|---|---|
| loc | целевой файл/папка для сканирования |
| subdir | рекурсивно обходить подкаталоги [0|1] |
| ignore_warning | [0|1] |
| vector | векторы сканирования [all|...] |
| verbosity | подробность журнала [0-9] |
| treestyle | стиль HTML-вывода [0|1] |
| stylesheet | таблица стилей HTML-вывода [ayti|...] |
Пример: рекурсивно сканировать ./code на все классы уязвимостей
php index.php loc=./code subdirs=1 vector=all verbosity=2
Примечание: в режиме CLI argv будет разобран в $_POST, что позволяет задавать любые POST-переменные.
установите плагин html publisher
настройте (несколько) SCM для клонирования этого репозитория и исходного кода, который вы хотите сканировать, в отдельные папки
добавьте шаг сборки: выполнить shell
# config - remove this if you configure it via jenkins parameterized builds
PATH_RIPS=rips-scanner
PATH_REPORT=report
FILE_REPORT=report.html
PATH_TARGET=code
RIPS_RECURSE_SUBDIR=1
RIPS_VECTOR=all
RIPS_VERBOSITY=2
# copy dependencies
mkdir -p report
cp -r rips-scanner/css report
cp -r rips-scanner/js report
# run analysis
echo "========================================================="
echo "[**] running scan ... $PATH_TARGET"
echo "========================================================="
php $PATH_RIPS/index.php ignore_warning=1 loc=$PATH_TARGET subdirs=$RIPS_RECURSE_SUBDIR vector=$RIPS_VECTOR verbosity=$RIPS_VERBOSITY treestyle=1 stylesheet=ayti > $PATH_REPORT/$FILE_REPORT
echo "========================================================="
echo "[**] scan done ... check out $PATH_REPORT/$FILE_REPORT"
echo "========================================================="
добавьте шаг сборки: выполнить python
import os, sys
import rips_stats as rips
if __name__=="__main__":
report = os.path.join(os.environ.get("PATH_REPORT","report"),os.environ.get("FILE_REPORT","report.html"))
sys.exit(rips.main([report]))
добавьте пост-шаг сборки: опубликовать HTML, выберите папку 'report', имя 'vulnerability-report'. Появится новая кликабельная иконка действия 'vulnerability-report', указывающая на архивированный результат сканирования.
Ветка community в RIPS ответвлена от версии 0.55 и официально не поддерживается RIPS Technologies.
Полностью переработанное решение доступно от RIPS Technologies, которое преодолевает фундаментальные ограничения версии с открытым исходным кодом и выполняет современный анализ безопасности.
| Сравниваемая функция | RIPS 0.5 | Следующее поколение |
|---|---|---|
| Поддерживаемый язык PHP | PHP 3-4, без ООП | все, PHP 3-7 |
| Статический анализ кода | Только на основе токенов | Полный |
| Точность анализа | Низкая | Очень высокая |
| Анализ с учётом версии PHP | Нет | Да |
| Масштабируется на большие объёмы кода | Нет | Да |
| Поддержка API / CLI | Нет | Да |
| Непрерывная интеграция | Нет | Да |
| Соответствие / Стандарты | Нет | Да |
| Хранение результатов анализа | Нет | Да |
| Экспорт результатов анализа | Нет | Да |
| Система рецензирования проблем | Нет | Да |
| Результаты в реальном времени | Нет | Да |
| Тренды уязвимостей | Нет | Да |
| Обнаруживает новейшие риски | Нет | Да |
| Обнаруживает сложные уязвимости | Ограниченно | Да |
| Поддерживаемые типы проблем | 15 | >140 |
| Скорость | Быстрая | Быстрая |
Узнайте больше о следующем поколении RIPS на https://www.ripstech.com/product/datasheets/.