Как защитить свой сайт от взлома

19 ноября 2015, Вадим Кухаренко

Атаки на сайты бывают направленными — когда злоумышленнику интересен конкретный сайт, и массовыми — когда атака на сайты идет через уязвимость в CMS (системе управления содержимым сайта). В этой статье мы расскажем о причинах таких уязвимостей и о том, как защитить свой сайт от взлома.

infonic

Зачем взламывают сайты

Чаще всего сайты взламывают те, кто хочет заработать деньги нечестным путем. Злоумышленник может взломать ваш сайт:

  • для рассылки спама;
  • для участия в бот-нете (DDoS-атаки);
  • для перенаправления трафика;
  • на «заказ» (например, взломать сайт конкурентов).

Самые распространенные способы взлома — через уязвимости CMS, подбор паролей и через рассылку троянских программ.  

Откуда берутся уязвимости в CMS

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

Шеллы (англ. shell) — это программное обеспечение, которое дает доступ к файлам сайта без дополнительной авторизации или с авторизацией, при которой пароль к шеллу знает только злоумышленник. Шеллы очень часто маскируют под системные файлы CMS.

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

Часто взлом происходит через формы обратной связи. При создании такой формы используйте безопасную проверку данных, например, запретите использование html-кодов, кодов языков программирования. Также можно использовать преобразование в безопасный текст. Иначе злоумышленник сможет загрузить любой файл на хостинг и выполнить его на сервере хостинга.

В старых версиях TynyMCE editor есть форма для загрузки файла. Через неё взломщик также может загрузить любой файл на сервер, в том числе шелл, для дальнейшего взлома сервера.

Самое главное для взломщика — получить доступ к файлам. Потом он с ними сможет сделать все, что захочет.

Как обезопасить себя от взлома и как найти уязвимости

Полностью себя обезопасить от взлома тяжело, но можно снизить его вероятность. Для этого:

  1. Используйте последние версии CMS и их компонентов.
  2. CMS и её компоненты загружайте и устанавливайте только с официальных сайтов разработчиков.
  3. Установите специальные плагины для CMS, которые защищают от взлома и ищут зараженные файлы.
  4. Измените штатные ссылки в панели администрирования CMS. Так вы обезопасите себя от взлома по подбору паролей и лишней нагрузки на сервер хостинга.
  5. Закройте комментарии на сайте или, если вы их используете, установите защиту от ботов.
  6. Используйте безопасные пароли — не менее 8 символов, состоящие из букв в нижнем и верхнем регистре, цифр и дополнительных символов.

Что делать, если ваш сайт взломали

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

Лучшее решение — удалить всё на хостинге, предварительно сохранив файлы сайта, и переустановить CMS «с нуля». Для этого:

  1. Загрузите CMS с официального сайта разработчика или установите её через Installatron в меню «Программное обеспечение» панели управления cPanel.
  2. Установите из официальных источников нужные компоненты для вашего сайта и плагины для защиты от взлома.
  3. Проверьте, не внедрён ли в файлы вашего сайта сторонний код (уточните у разработчика вашего сайта).
  4. Загрузите файлы сайта на хостинг.

Как выглядят шеллы

Напоследок, покажем вам примеры шеллов.

Так выглядит шелл в веб-браузере

plasmaco

Исходный код разных шеллов

Снимок экрана от 2015-11-13 11_33_58

Снимок экрана от 2015-11-13 11_34_17

Снимок экрана от 2015-11-13 11_34_43

Скрипт, интегрированный в сайт для рассылки спама без ведома владельца сайта

image04

 

Вы можете перейти в конец и оставить комментарий. Уведомления сейчас отключены.

  • Юлія Бєлая

    Отличная статья!

  • Aleksey Naumenko

    Еще шеллы могут подгружаться с удаленного источника если код сайта имеет уязвимости в выполнении файлов. К примеру когда, в случае PHP, идет include какого-то модуля, а сам модуль задается из адреса сайта. Тогда шелл будет отсутствовать на сайте и будет казаться что все ок. Но это пример ужасного программирования.
    Многие форумные движки (к примеру vBulletin) имеют возможность задавать выполнение кода как часть конфигурируемого шаблона внешнего вида, туда также можно вписать вызов шелла из другого места по наличию в адресной строке идентификатора, известного только злоумышленнику.

  • Vyacheslav B

    А еще могут подгружаться из EXIF-данных JPEG-изображений функцией exif_read_data().

  • Анна

    Очень интересно, спасибо за дополнение 🙂

  • Aleksey Naumenko

    Аж юность вспомнилась и ломаные сайты онлайн-браузерок 🙂

Подпишитесь на новости: