Не секрет, что идеальных сканнеров уязвимостей не существует, особенно если такой сканнер стремится быть универсальным. Как правило, чем выше поле действия сканнера, тем ниже скорость работы, а также процент его эффективности. Эту идею подтверждает проект OWASP Joomla Vulnerability Scanner, который нацелен на самую популярную CMS. Испытав сканнер, я остался очень доволен результатами и решил написать нечто подобное для другого не менее известного продукта – CMS Drupal.
Drupal заслуженно является одной из самых безопасных CMS. Поддержка безопасности CMS в отличие от, к примеру, WordPress находится на более высоком уровне благодаря активному тестированию CMS специальной группой Drupal Security Team и своевременному выпуску патчей и апдейтов, что подтверждается доверием пользователей. Тем не менее, как и у любого популярного веб-приложения, у Drupal есть свои уязвимости, что и послужило основнанием для создания простого сканнера.
Сравнивая с тем же WordPress’ом, Drupal не выдает свою версию прямо в исходном коде главной страницы, поэтому для определения версии наиболее эффективным является метод сравнения “отпечатков” (fingerprinting). В своем сканнере я постарался максимально точно получить версию, однако этот процесс осложняется тем фактом, что изменения в Drupal от версии к версии обычно не затрагивают общедоступные css-стили и js-скрипты, которые как раз и подвергаются проверке.
Фактически определяется лишь версия, но это позволяет получить более-менее четкое представление по возможным уязвимостях в CMS. Выводятся идентификатор уязвимости, ссылка на официальное подтверждение разработчиками, тип (ядро или модуль, модули пока в списке todo), описание и затронутые версии.
Сканнер написан на PHP, фронтенд создан с помощью ExtJS 3.0. Демо здесь: http://raz0r.name/drupalscan/, исходники забираем отсюда. Жду предложения и критику.
Leave a Reply