Про digital

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

«Кому нужно взламывать наш сайт? Мы же не Пентагон» — думают многие владельцы ресурсов, пренебрегая защитой. И ошибаются. Даже небольшой и не самый популярный ресурс лучше защитить. Слабых мест может быть множество — от вредоносных вирусов, которые проникают через админку, хостинг или CMS до передачи доступа третьим лицам. Разбираемся, как защитить сайт от взлома и с какой целью вообще устраивают атаки сайтов.

Как происходит взлом сайта

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

Взлом сайта не стоит путать с DDOS-атакой. Цель у последней немного другая — «положить» сайт, т. е. сделать временно недоступным. Не так давно мы писали, что для этого недобросовестные конкуренты могут специально создавать избыточную нагрузку на сайт, используя парсинг. В той же статье мы рассказали, как от этого защититься.

Теперь давайте рассмотрим, что позволяет взломать сайт.

  1. Уязвимость CMS, фреймворков или плагинов. Есть даже специальные программы, которые позволяют такие уязвимости находить. Либо хакер может узнать, на чем разработан ваш сайт, и вручную поискать «дыры» в этом движке.
  2. Незакрытый каталог на сайте — это позволяет увидеть листинг служебных файлов и посмотреть их содержимое. Каталоги таких сайтов можно легко посмотреть с помощью специальных программ (источник — revisium.com): Незакрытый каталог на сайте,  опасность взлома сайта, как обезопасить свой сайт, защита сайта
  3. Переход администратора на вредоносные порталы, которые уже заражены вирусами, или по подозрительным ссылкам. После этого запускается скрипт, который позволяет получить доступ к админке сайта. Например, «знакомый» может попросить админа портала проголосовать за него по ссылке.  
  4. Использование ненадежных программ для работы с сайтом. Например программа, через которую происходит подключение к FTP или SSH, будет передавать доступы третьим лицам.
  5. Размещение рекламы на сайте из подозрительных и ненадежных источников. В этом случае вы думаете, что устанавливаете на свой сайт код, принадлежащий, например, баннеру. А скрипт на самом деле получает доступ к данным посетителей вашего ресурса.

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

  • от сотрудника, ушедшего из компании и имевшего доступы к админке сайта — например, если он обижен на руководство или по какой-то причине хочет навредить;
  • хакер отправляет письмо, представившись сотрудником хостинга или сервиса, и просит дать ему доступы, якобы для устранения каких-то неполадок, или так: как обезопасить свой сайт, защита сайта, опасность взлома сайта
  • можно получить доступ к файлу, где админ недальновидно хранит доступы — поэтому для этого лучше использовать специальные защищенные программы.

Полезная статья — «Как сканировать сайт на вирусы».

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

Предостережение о зараженном сайте, защита сайта от хакерских атак, защита от взлома

Если поисковик заметит, что ваш сайт заражен, то предостережет пользователя от перехода на него

Виды взлома

  1. SQL–инъекция. SQL — это язык программирования. А такая инъекция — это вставка SQL-запроса в текст, отправляемый через интерактивные формы. В данные, которые передаются через запросы GET, POST или в значения Cookie, внедряется SQL-код. Он выполняет запросы к базе данных. И там можно, например, удалить всю информацию или извлечь данные из базы.
  2. XSS — межсайтовый скриптинг. Атака происходит за счет внедрения кода на какую-то страницу сайта. Этот код взаимодействует с удаленным сервером хакеров, когда посетитель открывает страницу. Если сравнивать с предыдущим способом, то этот безопасен для сервера. Но несет вред пользователям площадки. Для сайта он тоже может быть опасен, если хакер получит cookie админа ресурса. XSS-атака возможна на сайтах, где есть бреши в защите.
  3. Уязвимости в CMS. Об этом мы уже писали в предыдущем разделе. Зная, какой движок вы используете, хакер может поискать слабые места именно в нем.
  4. Ненадежный пароль. Задумайтесь о надежности пароля, если вы используете один из самых популярных: Самые популярные пароли, защита сайта от хакерских атак, защита от взлома
  5. Web-shell — сценарий для загрузки на сервер и удаленного администрирования сайта хакером. Его можно внедрить на сайт, например, при обновлении ресурса. 
  6. Brute-force — применение программ, которые автоматически перебирают пароли, подбирая нужный.
  7. Фишинг. Обычно рассчитан на похищение данных пользователей — например, платежных. Но фишинг можно применять и для того, чтобы узнать доступы к админпанели сайта или FTP-сервера. 
  8. Взлом через phpMyAdmin. Последний — это приложение с открытым кодом для администрирования MySQL. Если говорить простыми словами, то это визуальный интерфейс для работы с базой данных. Т. к. он обычно устаревший, в нем может быть много багов.
  9. Общий хостинг — т. е. когда провайдер использует всего один сервер и размещает на нем все проекты. Обычно такой вариант размещения выбирают, чтобы сэкономить. Но такая экономия может обойтись довольно дорого, если злоумышленник найдет бреши в защите других сайтов, размещенных на том же сервере. Через них он может получить доступ к вашим правам доступа.
  10. Использование программ, которые имитируют интерфейс сайта. Веб-мастер думает, что вводит доступы в настоящий браузер — а на самом деле передает их злоумышленникам.
  11. Оставление ссылок и файлов хакерами, выдающими себя за пользователей. Это особенно актуально для форумов или площадок, где можно оставлять комментарии и отзывы. Вредоносную ссылку можно закинуть на сайт, даже если на нем есть возможность загрузить аватар.

Какую информацию может получит взломщик сайта

Может показаться: ну какой толк взламывать ваш маленький интернет-магазин или блог начинающего специалиста? На самом деле, хакеры всегда найдут, чем «поживиться» на любом портале. Давайте рассмотрим их цели. 

  1. Превращение сайта во временное хранилище незаконной информации. Злоумышленник загружает в базу данные, хранение и распространение которой карается законодательно. Отвечать за это будет владелец сайта.
  2. Кража базы пользователей. Например, конкурент может заказать хакеру «увести» данные покупателей интернет-магазина и пользователей сервиса.
  3. Воровство платежных данных пользователей. За счет него злоумышленники проводят незаконные финансовые операции, а доверие к компании падает до нуля. Поэтому так важно использовать надежные платежные системы, которые используют специальную защиту. Выбрать такую систему поможет наш обзор платежных систем для сайта.
  4. Запуск спам-рассылки. Тут все просто — данные пользователей воруют, чтобы запустить по ним массовую рассылку.
  5. Показ рекламы, выручка от которого идет злоумышленникам.
  6. Атаки на сайты, расположенные на том же сервере. В этом случае зараженная площадка выступает в роли прокси-сервера.
  7. Размещение спам-ссылок на страницах. Пользователи будут по ошибке переходить на подобные ресурсы, а ваша площадка будет передавать им ссылочный вес. Самое неприятное, что Google может выявить, что вы ссылаетесь на вредоносную площадку и решить, что вы заодно со злоумышленниками. Из-за этого вашей площадке могут грозить санкции. 
  8. Размещение ссылок, ведущих на площадки, где пользователя уже поджидают другие вредоносные скрипты. Таким образом, вредоносная площадка может «размножать» вирусы. А они, в свою очередь, будут красть персональные данные пользователей.
  9. Скрытый майнинг. На сайт внедряется скрипт-майнер. Когда пользователь переходит на такой ресурс, его компьютер становится инструментом для добычи криптовалюты.
  10. Нанесение урона репутации компании. Хакер может разместить на главной странице сайта что угодно. Например что-то подобное — и это еще не самый плохой пример:
Пример главной страницы взломанного сайта, защита сайтов от атак, защита сайтов от вирусов,

Как обеспечить безопасность сайта

Ограничение доступа

Желательно, чтобы пользователи имели доступ только к 80 и 443 портам сервера. Эти порты нужны для просмотра контента посетителями сайта. Остальные должны быть закрыты или доступ к ним должен быть ограничен по IP.

Проверка на вирусы

Администратор должен регулярно проверять свой компьютер на вирусы и использовать на нем антивирус. Сканировать нужно и сам сайт. Для этого существует множество онлайн-сканеров, например:

  • AI-BOLIT;
  • QUTTERA;
  • Kaspersky VirusDesk;
  • VirusTotal;
  • Dr. WEB;
  • ReScan.pro;
  • Avast.
как обезопасить свой сайт, защита от взлома, защита сайтов

Пример результатов проверки Dr. WEB

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

SSL-сертификат

SSL-сертификат — что это, защита сайтов, как защитить сайт от взлома

Благодаря тому, что SSL-сертификат шифрует данные, они не попадут в руки злоумышленников. Его ценность хорошо понимает Google, поэтому еще с 2014 года поднимает в выдаче сайты, которые используют эту технологию. Сейчас примерно 80% топа выдачи занимают именно такие площадки:

SSL-сертификат как фактор попадания в топ, защита своего сайта, защита сайтов от атак

Где взять SSL-сертификат:

  • сделать собственный — например, в сервисе Cpanel, но иногда из-за самописных сертификатов пользователи могут видеть такие уведомления: Чем чреват бесплатный SSL-сертификат, защита сайта, защита сайтов от атак
  • выбрать бесплатный SSL-сертификат — в сети достаточно решений, но они не дают компенсации при хакинге и действует такой сертификат только три месяца;
  • платные сертификаты — обойдутся от 20 до 500$ можете выбрать что-то из этого рейтинга:  

Больше подробностей — в статье «SSL-сертификаты: что это и как работает, особенности и виды». 

Резервное копирование сайта или бэкап

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

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

Резервное копирование можно сделать самостоятельно через инструменты хостинга или FTP-клиент. Также есть компании, которые предоставляют услуги по созданию бэкапов. В этом случае они несут ответственность за сохранность данных. 

Услуга резервного копирования, хостинг с защитой от взломов вирусов отзывы, защита сайта

Пример услуги по резервному копированию от GoDaddy

Также нужно обязательно делать бэкапы базы данных — это делается отдельно от FTP.  И еще желательно проверить, можно ли восстановить сайт из бэкапа. Иногда бывает, что бэкапы делаются, но в них поврежденные данные или вообще ничего нет.

Обновление CMS сайта

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

Пример уведомления про обновление в админке WordPress, защита сайта, защита сайта от хакерских атак

Пример уведомления про обновление в админке WordPress

Плагины и скрипты защиты

Существуют различные «надстройки» для дополнительной защиты ресурса от взлома. Просто введите свою CMS и загуглите, какие решения помогут защитить сайта от хакерских атак и взлома. Вот, например, список самых популярных плагинов для WordPress:

  • Sucuri;
  • Cloudflare;
  • Wordfence Security;
  • All In One WP Security & Firewall.

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

Защитить сайт могут не только плагины, но и специальные скрипты. Единственное, тут нужно быть чуть более технически подкованным. Одни из них следят за любыми изменениями на сайте и уведомляют о них веб-мастера. Другие защищают код сайта от добавления стороннего SQL-кода. Другие реализуют постраничный вывод информации из базы данных. Это не позволит злоумышленником легко получить ее одним махом.

Читайте обзор полезных защитных скриптов для сайта.

Защита сервера

  1. SSH-ключи. Криптографические скрипты позволяют шифровать аутентификацию с использованием открытых и закрытых ключей. Для входа не нужно использовать пароль — ведь его может автоматически подобрать хакер.
  2. Браундмауэр. Может ограничить или заблокировать доступ ко всем портам площадки. Исключения задает сам вебмастер. В идеале, такая программа должна быть установлена на каждом сервере.
  3. Защита паролей. Никогда не передавайте их по почте или в чате, не храните в блокноте, не подбирайте популярные пароли. Установите двухэтапную аутентификацию для входа в админ-панель.
  4. VPN. Сделайте частную сеть, доступ к которой будет только у выбранных серверов. Т. е. компьютеры будут соединяться безопасным каналом связи, по которому можно обмениваться данными. 

На сервере должен быть настроен мониторинг нагрузки. Так вы сможете увидеть аномальную активность и мониторить изменения системных файлов.

Ограничение по входу в панель администрирования

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

Поиск слабых мест сайта

Используйте специальные сервисы, чтобы проверить уязвимости XSS. Например, XSS и SQL Injection Сканер или Acunetix Web Security Scanner. В результате вы получите подробный отчет и увидите слабые места, над которыми стоит работать:

Отчет о слабых местах сайта, защита сайта от хакерских атак

Также можно проверить сайт по Google Hacking Database (GHD). Он находит сайты с похожими характеристиками, которые уязвимы к конкретным атакам. Например, площадки с незакрытым содержимым каталогов.

Как узнать, что на сайт взломан

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

Например:

  • при переходе на сайт отображается предупреждение, что он содержит вредоносный контент — аналогично, если об этом предупреждает Google Ads, хостинг и т. д.;
  • сайт перестал отображаться в выдаче или быстро теряет позиции;
  • ресурс подозрительно долго грузится, слишком активно потребляет ресурсы процессора;
  • пользователи жалуются на спам-рассылку;
  • на сайте обнаружились картинки или ссылки, которые вы не добавляли сами, или любой посторонний контент;
  • появился неизвестный пользователь с правами админа;
  • при переходе на площадку вас перенаправляет на другой ресурс или просит что-то скачать/обновить.

Если что-то из этого имеет место, сделайте следующее, чтобы копнуть глубже:

  • внимательно проанализируйте код сайта на наличие посторонних фрагментов кода, iframe-вставок;
  • посмотрите в Google Analytics, с какого момента трафик начал резко снижаться, на каких страницах внезапно повысился процент отказов и т. д.;
  • проверьте, на какие площадки ссылается ваш сайт — это можно сделать, например, с помощью Netpeak SpiderОтчет Netpeak Spider, защита сайта от хакерских атак, защита сайта
  • проверьте нагрузку на процессор вашего компьютера, чтобы исключить майнинг — для этого нажмите Ctrl + Shift + ESC, если речь о Windows;
  • пробейте ресурс через панель веб-мастера в Google — они покажут, где есть вредоносный код, число страниц в индексе;
  • проверьте серверные access логи на подозрительную активность — например, массовые запросы с одного IP-адреса или с разных адресов но с очень похожими характеристиками;
  • проверьте логи на предмет того, почему резко выросла производительность сайта — с какого момента его что-то начало «грузить». 

Специалисты советуют проводить такую проверку хотя бы раз в неделю, чтобы вовремя заметить взлом.

Инструкция — что делать, если сайт взломали

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

Если хотите восстановить работу сайта самостоятельно, вам придется пройти такие шаги.

  1. Первым делом поставьте заглушку, отдающую 200 ответ сервера. Укажите на ней, что на сайте ведутся технические работы и скоро он снова будет доступен.
  2. Соберите информацию из логов — access_log и error_log, журнал FTP-сервера. Запишите все ошибки и аномалии, которые вы нашли, с указанием даты и страниц.
  3. Свяжитесь с хостинг-провайдером и расскажите о своей ситуации. С одной стороны, он сможет проанализировать взлом, с другой — будет предупрежден о том, что такие ситуации возможны. Что особенно важно, если вы используете общий хостинг. 
  4. Пройдитесь антивирусом на всем компьютерам, с которых заходили на ваш сайт.
  5. Проверьте, есть ли ваш IP-адрес в спам-базах.
  6. Замените пароль к хостингу, админке площадки, FTP-сервера. Пароль должен быть достаточно сложным. Тут опять-таки может помочь сервис аналогичный Keypass, который генерирует длинные пароли, содержащие различные символы.
  7. Восстановите работу площадки, используя бэкап.
  8. Если вы давно не обновляли СMS, это нужно обязательно сделать хотя бы сейчас. Посмотрите все уведомления от движка про апдейты и загрузите их.
  9. Просканируйте сайт на наличие вредоносных скриптов одним из сервисов, которые мы упоминали в разделе про проверку безопасности сайта.
  10. Установите защитные плагины и скрипты, если их у вас еще нет.
  11. Настройте для админа авторизацию по IP-адресу, отключите PHP-функции, которые обычно не используются на сайте.
  12. Уведомите Google о том, что сайт «вылечен». Сообщите сервису, что очистили свой сайт и попросите удалить его из черного списка. 
Об авторе

Редактор блога Ringostat. Автор статей для изданий о диджитал и больших СМИ про бизнес. Изучала журналистику в Одесском национальном университете имени И. И. Мечникова.