Pull to refresh

Взлом сайта: простые советы по безопасности

Reading time5 min
Views91K
Активность хакеров никогда не сходит на нет. Например, только по данным одного хакерского сайта zone-h.org (см. раздел Onhold), взламываются ежедневно сотни сайтов. Вашего сайта там точно нет?

Для взлома не надо быть профессиональным хакером, речь в статье о так называемых «кулхацкерах», использующих плоды чужих «трудов» и самых простых случаях взлома. Статья ни в коей мере не howto, как взломать сайт. Цель — показать, насколько просто осуществляется взлом и рекомендовать меры по защите сайта и действия, в случае взлома «косовскими албанцами».
Приведён пример успешного розыска хакера российскими правоохранительными органами.

Как осуществляется взлом сайта?



Наиболее распространённые пути проникновения на сайт:
  • перебор простых паролей доступа к админке/ftp («имя домена», 12345, admin, test и т.п.) — большое число взломов, как ни странно, происходит именно так;
  • использование уязвимостей скриптов (CMS и модулей).

Поясню на примере Joomla + CKForms. Чтобы не вводить в искушение, не публикую ссылку на описание, слишком уж просто им воспользоваться, но и найти несложно. Уязвимости в модуле CKForms позволяют выполнить SQL-инъекцию или PHP-инклюдинг, и, путём несложных манипуляций, получить доступ к админке. Использование уязвимости осуществляется через простой запрос в адресной строке браузера.

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

Я принимал меры, но как взломали сайт?


Как же на виртуальном хостинге хакер может получить доступ к другим сайтам, если все известные меры владельцем сайта предприняты? Ведь почти повсеместно доступ к площадкам сайтов разграничивается по логинам пользователей и, казалось бы, это должно обезопасить сайт от соседей.
telnet
Ограничимся одним случаем. Серьёзную опасность представляет запуск скриптов под модулем Apache, например mod_perl. Запуск скрипта в этом случае осуществляется под пользователем Apache, который имеет доступ к данным пользователей сайтов.
Хакер, как описано выше, получает доступ к площадке одного сайта. Затем осуществляется размещение консольного скрипта, например cgi-telnet. И если права на конфигурационные файлы сайтов других пользователей выставлены в 644 (или тем более 777!), из консоли несложно прочитать содержимое файлов с паролями. Но! Только если запуск perl-скрипта осуществляется под пользователем Apache, т.е. под mod_perl (аналогичная ситуация с mod_php). При работе, например, под FastCGI — такой способ не даст доступа к файлам. Защититься от этого можно, устанавливая на критически важные файлы права 600 и используя FastCGI.

Как можно получить доступ к управлению самим сервером?


Приведу один распространённый пример для Linux-систем. Аналогично, сначала необходим доступ на площадку одного сайта.
Есть несколько уязвимостей в ядре через нулевой указатель, которым подвержены десятки Linux-систем, например: Linux Kernel 'sock_sendpage()' NULL Pointer Dereference Vulnerability. Там же описаны и эксплоиты (осторожнее, это работает!).
Несмотря на то, что данная проблема известна давно, есть множество непропатченных серверов, в том числе и в России. Самый простой способ защиты описан, например, здесь.
Это не гарантирует 100% защиту, т.к. например при установке wine параметр mmap_min_addr может быть сброшен обратно в 0. Настоятельно рекомендуется использовать патчи, которые можно взять на странице, указанной выше, или в официальных источниках.
Обсуждение по этому вопросу велось и на хабре.
Ответственность за защиту от данных эксплоитов лежит на администраторе сервера.

Последовательность действий по устранению последствий


«Лечения» восстановлением из бекапа недостаточно, один раз взломав сайт, к Вам ещё вернутся. Что же делать владельцу сайта?
  • Постарайтесь сразу определить, какие именно файлы были заменены, это может быть как index.php, так и файлы шаблонов, изображений и т.п.;
  • Сделайте скриншоты последствий;
  • Обязательно оповестите хостинг-провайдера и согласуйте свои дальнейшие действия;
  • Сохраните в отдельный каталог файлы сайта, время модификации файлов в дальнейшем поможет Вам определить злоумышленика;
  • Восстановите из резервной копии сайт или обратитесь для этого к хостеру;
  • Скачайте логи ошибок и доступа к сайту или попросите хостера их предоставить, лучше скопировать их в отдельный каталог, чтобы не удалились при ротации логов;
  • Анализ времени изменения файлов и сопоставления с записями в логах позволяют определить характер используемой уязвимости и IP-адрес злоумышленника;
  • Обновите скрипты или (если это невозможно) откажитесь от использования уязвимых модулей;
  • Обязательно смените все пароли доступа.


Преступление и наказание


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

Отделом К города N возбуждено уголовное дело по ст.272 УК РФ «Неправомерный доступ к охраняемой законом компьютерной информации...» в отношении гражданина РФ по заявлению юридического лица (владельца сайта). В феврале 2010-го года был выполнен взлом сайта производства одной из российских дизайн-студий («самописный» скрипт), через найденную злоумышленником уязвимость в коде сайта. Целью взлома являлось размещение рекламных баннеров. Злоумышленник принёс свои письменные извинения владельцу сайта с просьбой досудебного урегулирования — кроме уголовной статьи ему грозит и отчисление из ВУЗа. Так сказать — в интересах следствия подробности не разглашаются.

Если ущерб значительный, а IP-адрес «местный» (даже динамический и принадлежит Интернет-провайдеру), а не «китайского прокси» — можно с заявлением и имеющимися материалами обратиться по месту жительства в правоохранительные органы, а конкретно в отдел К. Следователи сами запросят у хостинг-провайдера официальное письмо с журналами и пояснениями ситуации, у Интернет-провайдера — кому был выделен IP-адрес. Компании обязаны предоставить эти сведения по запросу правоохранительных органов.
Взломщику общение с правоохранительными органами доставит много неприятных часов, особенно если на компьютере остались следы противоправной деятельности, не говоря уже о возможном судебном преследовании.

Краткие выводы


Безопасность Вашего сайта — задача не только разработчика и хостера, который обязан обеспечить максимальную защищённость серверов, но и администратора сайта.
Тривиальные советы владельцу сайта:
  • нигде не хранить учётные данные доступа;
  • использовать длинные комплексные пароли и нестандартные логины, периодически выполнять их смену;
  • своевременно обновлять скрипты с выходом обновлений;
  • при выборе компонента проверять на наличие незакрытых уязвимостей;
  • следить за правами на файлы скриптов и особенно критические файлы конфигурации;
  • средствами веб-сервера (например, .htaccess и .ftpaccess) разрешить доступ только с Вашего IP;
  • да, сохранять копирайты авторов скриптов надо, но по ним, а так же фрагментам адресной строки модулей, злоумышленники и ищут уязвимые сайты — смените хотя бы стандартные адреса обращения к скриптам;
  • периодически, в том числе внешними сервисами, проверять доступность конкретных разделов сайта;
  • иметь локальные бекапы сайтов.

Оценив шансы по розыску злоумышленника — можно и нужно обратиться в правоохранительные органы.

PS: статья не претендует на абсолютную полноту изложения и ориентирована не на IT-гуру, разумеется, при целенаправленном взломе конкретного сервера или сайта могут применяться другие средства. Рад буду дополнить по комментариям хабрасообщества, в том числе и другими примерами.
И вкратце о действиях при взломе сайта.
Tags:
Hubs:
+3
Comments15

Articles

Change theme settings