Сканнер уязвимостей CMS Drupal

drupalscan

Не секрет, что идеальных сканнеров уязвимостей не существует, особенно если такой сканнер стремится быть универсальным. Как правило, чем выше поле действия сканнера, тем ниже скорость работы, а также процент его эффективности. Эту идею подтверждает проект 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/, исходники забираем отсюда. Жду предложения и критику.


15 комментариев

  1. demimurych, 22. августа 2009, 14:48

    Непонятна цель такого сканера.

    Если это средство облегчающее жизнь взломщику — то оно ничего не стоит. Поскольку алгоритм определения версий мягко говоря оставляет желать лучшего.
    Даже не предпринимая никаких специальных действий программа уже выдавала неверные результаты, только потому что валялся старый ченжлог

    Если это средство для разработчика, то грош цена такому разработчику который САМ не следит за тем что происходит с кодом его ЦМС.

     
  2. cer, 22. августа 2009, 16:41

    тоже непонял какой толк от этого сканера.

     
  3. bet, 26. августа 2009, 23:24

    Если это средство для разработчика, то грош цена такому разработчику который САМ не следит за тем что происходит с кодом его ЦМС.

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

     
  4. Raz0r, 27. августа 2009, 16:41

    @demimurych
    спасибо за комментарий, действительно не учел очобенности с changelog. Доработал алгоритм, теперь приоритет отдается фингерпринту, затем по changelog, если таковой присутствует, сравнивается версия: если она подтверждается, то берется точная версия из changelog, если данные расходятся, то вызывается исключение. Также добавил ветку 4.7.* (это 20 версий). Итого теперь распознается 54 версии друпала. Обновленная версия по прежней ссылке.

     
  5. Spider Agent, 29. августа 2009, 2:56

    однозначно, софтина полезная. Raz0r, +1 тебе

     
  6. Alek, 28. сентября 2009, 18:41

    Мне тоже понравилась, спасибо

     
  7. SergiuC, 6. мая 2010, 16:27

    и как понять/прочесть результаты сканирования??

     
  8. Alex, 13. мая 2010, 9:25

    Согласен, что Друпал одна из самых безопасных. Давно ей пользуюсь. Этот модуль — косвенное тому подтверждение.

     
  9. _AXE_, 21. мая 2010, 15:15

    Не впечатлил сканер. Я честно вообще не переношу Друпал, мне по душе Битрикс.

     
  10. Terrano, 29. декабря 2010, 19:10

    А уж как много людей твой тормознутый битрикс не переносят, козачек.

     
  11. pol_uha, 26. сентября 2011, 11:12

    Странно, пытался просканить сайт с Drupal6, а мне выдало:
    Not a Drupal 5/6 backend

     
  12. Raz0r, 26. сентября 2011, 12:21

    сканер давно не обновлялся, как будет время обновлю фингерпринты для новых версий

     
  13. Rostov114, 26. октября 2011, 15:07

    Посмотрел код, стало интересно, как проверит CHANGELOG на версию если при не удачной проверке по фингерпринтам, он выходит из проверок…

     
  14. Raz0r, 26. октября 2011, 16:26

    Соответственно не проверит, так как будет думать, что сайт не на друпале.
    Кстати недавно нашел BlindElephant (blindelephant.sourceforge.net) — универсальный фингерпринтер для большинства популярных CMS, включая Drupal. Очень любопытный инструмент.

     
  15. honita, 28. декабря 2011, 20:24

    pol_uha, 26. Сентябрь 2011, 11:12

    Странно, пытался просканить сайт с Drupal6, а мне выдало:
    Not a Drupal 5/6 backend

    тоже самое вывелось

     

Write a comment: