Сканнер уязвимостей 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 comments:

  1. demimurych, 22. August 2009, 14:48

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

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

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

     
  2. cer, 22. August 2009, 16:41

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

     
  3. bet, 26. August 2009, 23:24

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

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

     
  4. Raz0r, 27. August 2009, 16:41

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

     
  5. Spider Agent, 29. August 2009, 2:56

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

     
  6. Alek, 28. September 2009, 18:41

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

     
  7. SergiuC, 6. May 2010, 16:27

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

     
  8. Alex, 13. May 2010, 9:25

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

     
  9. _AXE_, 21. May 2010, 15:15

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

     
  10. Terrano, 29. December 2010, 19:10

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

     
  11. pol_uha, 26. September 2011, 11:12

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

     
  12. Raz0r, 26. September 2011, 12:21

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

     
  13. Rostov114, 26. October 2011, 15:07

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

     
  14. Raz0r, 26. October 2011, 16:26

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

     
  15. honita, 28. December 2011, 20:24

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

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

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

     

Write a comment: