“Мой сайт, кажется, взломали..”. Владелец сайта как в классическом анекдоте про супружескую измену узнает об этом последним. Чаще всего о взломе ему сообщают удивленные и недовольные клиенты, которых перебрасывает на другой сайт. Потому что сами мы — чего уж скрывать — на собственный сайт заходим редко.
Но есть косвенные признаки, которые должны вас насторожить и предположить, что был несанкционированный доступ на сайт и теперь там вредоносные скрипты и вирусы.
Содержание:
Признаки, что вас взломали
Резко упала посещаемость сайта
- На сайте появляются всплывающие окна, тизерные блоки, контекстная реклама, которые вы не размещали
- В статистике посещений регулярно появляются переходы на сайты, при этом на них нет явных ссылок на страницах
- При клике по локальным ссылками выполняется переход на сторонний ресурс или открывается новое окно с чужим сайтом
- На сайте появился посторонний контент (новые статьи, фрагменты страниц, разделы, пункты меню), который вы не размещали
- На страницах появились ссылки на сторонние ресурсы. Иногда ссылки не видны на самой странице, но есть в коде страницы или определяются внешними сервисами
- Сайт теряет позиции в поисковой выдаче
- В поисковом индексе (в панели вебмастера) появилось много новых страниц, которые вы не добавляли
- В поисковой выдаче сайт отображается с предупреждением о наличие и распространении вредоносного кода
- Странные заходы на сайт в статистике посещений (большое число посетителей, не задерживающихся на странице больше 1 секунды)
- Жалобы пользователей на вредоносный код, ненадлежащий контент или недобросовестную рекламу на страницах
- Срабатывает десктопный или мобильный антивирус (на наличие вируса или “взрослого” контента)
- Извещение от хостинга о наличие вредоносного кода в скриптах, спам-рассылки с сайта или высокой нагрузке…
- Тех поддержка рекламной сети (Яндекс.Директ, Google Adwords) указывает на присутствие вредоносного кода на сайте
Что делать?
Простые вещи, которые вы можете сделать сами
Если до настоящего момента вы не задумывались о безопасности сайта, рекомендуем вам выполнить ряд простых действий, которые позволят провести быструю диагностику:
- добавить сайт в панель вебмастера Яндекса и Гугла, проверить в них количество проиндексированных страниц, предупреждения о наличие вредоносного кода, количество внешних ссылок
- разместить на сайте счетчики от Яндекс.Метрики и Google Search Console. Посмотреть статистику переходов на другие сайты за неделю, среднее время просмотра страниц и т.п.
- зайти на сайт с различных мобильных устройств, проверить, нет ли перенаправления
- просканировать сайт сервисами определения внешних ссылок, например, Screaming Frog
- Проверить файл htaccess: дату его изменения, не появились ли там новые записи с редиректом
- посмотреть исходный код страниц сайта на наличие постороннего кода, скрытых ссылок, скриптов или iframe вставок (можно создать локальную копию сайта с помощью программы Teleport Pro и сделать поиск по IFRAME вставкам или подозрительным ссылкам из статистики посещений).
Для более опытных вебмастеров
- Просканировать сайт, например, с помощью через сервис VIRUS Total или SUCURI sitecheck , который помимо вредоносных скриптов покажет также и уязвимости типа устаревшей версии PHP и пр.
- Сохранить дамп базы данных и выполнить поиск по фрагментам <script и <iframe
- Проверить куки, которые выставляются после серфинга по сайту
- В инструменте разработчика браузеров Chrome, IE11 или Firefox посмотреть список скриптов, которые загружаются на страницах сайта и домены, с которых они загружаются.
Если вы нашли один или несколько перечисленных признаков на вашем сайте, не стоит паниковать и делать поспешные выводы, так как часть из них может быть не связана напрямую со взломом сайта. Для начала необходимо тщательно диагностировать проблему.
Если “ругается” антивирус или поисковая система, запросите детали в вирусной лаборатории или тех поддержке сервиса.
Если жалуются пользователи, попросите их прислать скриншоты страниц с рекламой или сообщением антивируса.
Если вы обнаружили чужой контент на страницах сайта – проверьте базу данных и шаблоны на наличие постороннего html кода или скриптов. Также рекомендуем проверить сайт сканером вредоносного кода, чтобы быть уверенным, что на сайте нет вирусов, хакерских шеллов и бэкдоров. Переходы на чужие сайты или подозрительные ссылки на страницах стоит проверять на разных компьютерах и мобильных устройствах и в нескольких браузерах. Иногда их причиной может быть установленные плагины в браузере или наличие adware (рекламное ПО) на компьютере пользователя.
Если вы затрудняетесь выполнить диагностику или лечение сайта самостоятельно, обратитесь к нам.
Частные вопросы
- Это вина хостера?
-
Вряд ли. Конечно, проблемы могут случаться и у хостера, но такие случаи редки. Так что нет, скорее всего это не хостинг. Он ваш союзник, он также заинтересован, чтобы обнаружить взлом. Обратитесь к нему, запросите журналы (логи) веб-сервера за весь доступный временной интервал (существуют два вида логов: access_log и error_log), а также журнал (лог) ftp-сервера. Это поможет понять когда был взлом и, если есть более ранний бекап, то откатить сайт назад.
- Откуда произошел взлом?
-
Хороший вопрос. Вариантов много: 1) через взломанный вход по FTP Учитывая открытость FTP трафика и легкость перехвата данных FTP аккаунта, не рекомендуется использовать данный протокол при работе с сайтом. Вместо него желательно работать с файлами через безопасное SFTP подключение (“Secure FTP”), которое использует шифрованное соединение и является надстройкой SSH-2, разработанной для более удобной работы с файлами. Поэтому для работы по SFTP на хостинге должен быть доступен SSH (на всех современных хостингах он есть). 2) через админ-панель сайт (регистрация «левого» аккаунта с админскими правами — и вот уже появились левые страницы на сайте, а если есть доступ к htaccess файлу, то и появляется редирект в мобильной версии).
- А кто виноват? Разработчик?
-
Тут надо понять 4 важных вещи. 1- Ответственность разработчика заканчивается вместе с передачей сайта. 2- Сайт делается в соответствие с тех.заданием, это означает, что если в TЗ вы не прописали работы по защите на уровне сервера, установку антивирусного плагина, защиту на уровне htaccess и тд., то этого ничего и не будет. 3- любой сайт можно взломать. Любой. 4- Установка защиты на сайт не гарантирует пожизненную гарантию от взлома. Потому что см. п.3. Наиболее распространённый способ проникновения на сайт — через админ панель WordPress. Ниже мы расскажем, как это технически происходит и какие превентивные меры можно предпринять.
- Зачем лечить от вируса, когда можно откатить сайт назад?
-
Если не устранить уязвимость, то сайт опять взломают. А иногда взлом может быть таким, что вы просто будете видеть белый экран и не сможете зайти в админку и даже восстановить сайт из бекапа. Повторный взлом обязательно будет. Поверьте.
- Почему мой сайт? Он маленький и трафик небольшой...
-
Для хакера главное, что у вас белый, нигде не засвеченный сайт. Ему проще посылать трафик на ваш сайт (в случае дорвея) или перенаправлять трафик с вашего сайта, чем с нуля делать новый сайт. После взлома на страницах сайта размещается вредоносный код, который загружается определенным группам пользователей (или всем подряд). Данный вредоносный код через уязвимость в приложении или плагине браузера заражает операционную систему. Вредоносный код может превратить компьютер пользователя в боевую единицу ботнета, красть пароли и др. конфиденциальную информацию, показывать пользователю рекламу, шантажировать пользователя, впаривать ему лжесофт, наподобие очередного суперантивируса или мегаускорителя интернета и т.п. Часто на взломанном сайте кроме iframe/js появляется мобильный редирект. Данный вид бизнеса расцвел в тот момент, когда появились партнерские программы, щедро выкупающие посетителей, приходящих с мобильных платформ. Выкупленным посетителям партнерки демонстрируют рекламу или засылают вредоносный код на мобильное устройство. Еще один популярный вариант эксплуатации взломанного сайта с ненулевыми показателями PR и тИЦ — это SEO-паразитирование. За счет взломанных сайтов поднимают SEO показатели другим сайтам, а затем на них продают ссылки/статьи или используют для распространения вредоносного ПО. Наиболее частый вариант SEO-паразитирования — это размещение невидимых ссылки, рекламных статей или дорвеев на несколько тысяч страниц. Так что да, любой сайт представляет для хакеров интерес.
Способы взлома админ-панели сайта
Панель администратора — это командный центр сайта, через который можно получить доступ к файловой системе, базе данных, резервным копиям, т.е. практически ко всему сайту. Получив полный доступ к сайту, хакер может разместить вредоносный код, украсть конфиденциальные данные, контент сайта или полностью уничтожить его. Поэтому получение доступа к панели администратора сайта является, пожалуй, самым приоритетным в атаке хакера.
Владельцы сайта обычно не догадываются о том, насколько уязвима панель администратора, и насколько легко хакер может получить к ней доступ.
Наиболее популярные варианты взлома панели администратора и способа защиты от них:
- Подбор пароля
- Воровство пароля
- Поднятие прав пользователя до уровня администратора
- Добавление нового администратора непосредственно в базу данных
Разберем подробно каждый случай.
Пароль подбирают автоматизированными средствами. Существуют целые комплексы для перебора пароля, производительность которых сотни тысяч комбинаций в секунду. Перебор осуществляется по словарю, в котором миллионы паролей. Данный процесс называется «брутфорс». Если пароль на панель администратора «hello1234» или «qwe123», он будет подобран за несколько секунд. Подбор пароля популярен на всех популярных системах управления контентом: wordpress, joomla, bitrix, drupal и др.
От подбора пароля защищают следующие варианты:
- Ограничение доступа к панели администратора по IP адресу или кодовому слову (Примечание. Словенские хостеры часто по дефолту ставят ограничение на доступ к админке, зайти смогут только пользователи с IP Словении, Хорватии, Италии и Австрии. )
- Изменение URL панели администратора
- Установка плагина, ограничивающего кол-во попыток ввода неправильного пароля (он может блокировать доступ в панель администратора, может блокировать IP, извещать администратора о попытке подбора пароля ит.п.)
- Установка сложного пароля, состоящего из случайного набора цифр, букв и спецсимволов. Пример хорошего пароля «@a%4№»5afJHXs2»
Вторым способом получения доступа к панели администратора является воровство пароля. Здесь вариантов очень много:
- Получение данных администратора через уязвимость (SQL инъекцию) на сайте;
- Заражение компьютера администратора сайта трояном, который крадет пароли из хранилища паролей браузера;
- Наличие трояна-кейлоггера на компьютере администратора сайта, который отсылает хакеру вводимые пользователем пароли;
- Наличие трояна, который ворует пароли от FTP, а через FTP доступ хакер получает доступ к сайту и далее, при необходимости, к панели администратора;
- Воровство cookie браузера с сохраненным хэшом пароля, который затем расшифровывается методом перебора по словарю;
- Использование фишинг-схем, когда администратору приходят письмо якобы с его сайта (например, извещение о необходимости сменить пароль), со ссылкой на подставную панель. Не подозревая подставу, администратор вводит текущие логин и пароль, и эти данные отсылаются хакеру;
- Получения дампа базы данных с паролем или хэшом пароля администратора.
От воровства пароля защищают следующие варианты:
- Наличие коммерческого антивирусного программного обеспечения и регулярное полное сканирование операционной системы;
- Грамотная работа с данными от сайта: не хранить пароли в программах (браузере, ftp клиенте);
- Регулярное обновление CMS, внимание к вопросам безопасности сайта, наличию уязвимостей;
- Внимательность и осведомленность администратора.
Многие современные системы управления сайтом позволяют создать пользователей с различными уровнями доступа: администратор, суперпользователь, редактор, модератор, гость и т.п. Часть этих CMS, особенно старые версии, имеют уязвимости, позволяющие при определенных условиях простому зарегистрированному пользователю или редактору получить администраторские полномочия и полный доступ к сайту.
Защититься от этого достаточно просто:
- Следить за обновлениями CMS и регулярно их устанавливать;
- Вести грамотную пользовательскую политику. Например, если на сайте нет регистрации пользователей, сразу отключить ее в панели администратора, т.к. отсутствие ссылки в пользовательской части сайта еще не означает, что регистрация не возможна;
- Не давать лишних прав тем пользовательским группам, которым они по роду деятельности не нужны.
Данный способ взлома технически реализовать достаточно просто. Хакер получает доступ к базе данных сайта и добавляет в нее нового пользователя с правами администратора. Есть следующие варианты получения доступа хакера к базе данных: Через уязвимость сайта (SQL иньекцию или RFI) Подключение к базе данных с соседнего сайта, размещенного на том же shared-хостинге (для этого достаточно узнать данные для подключения к БД, например, из wp-config.php или configuration.php).
Защититься от добавления нового администратора в базу данных можно следующими способами:
- Запретить чтение файла с данными для подключения к базе данных всем, кроме владельца;
- Изменить стандартные имена таблиц базы данных;
- Установить обновления, закрывающие уязвимости в CMS
Способы защиты админ-панели сайта
Как вы можете видеть, существует большое количество способов получения доступа к панели администратора и защиты от них. Тем не менее есть один действенный метод, который позволяет в большинстве случаев защитить панель администратора, не прибегая к сложным операциям.
Достаточно лишь ограничить доступ в панель администратора по IP адресу, кодовому слову или поставить авторизацию средствами веб-сервера. Только пользователь с IP адресом, находящимся в разрешенном диапазоне (зная еще один пароль или имея специальную настройку браузера), сможет получить доступ к системе. При этом даже если хакер знает пароль или добавил нового администратора в базу, он не сможет воспользоваться этими данными, так как веб-сервер запретит доступ к скриптам панели администратора.
Сразу замечу, что все нижеперечисленное не входит в стандартный набор разработки сайта. Это услуга отдельная. Но это то, что вы должны попросить сделать разработчиков до сдачи сайта, т.к. это в будущем сбережет вам нервы и деньги. Потому что настройка превентивных мер — это всегда дешевле, чем поднимать и вычищать сайт после взлома.
Итак, способов несколько.
Для защиты панели администратора по IP нужно закрыть доступ к скриптам панели администратора всем, кроме тех, у кого IP адрес совпадает с указанным. Для этого нужно в каталоге админки создать .htaccess со следующим содержимым:
Order deny,allow
Deny from all
Allow from 1.2.3.4
Где 1.2.3.4 — это разрешенный IP адрес администратора сайта, узнать его можно либо через специальный сервисы, либор просто набрав в поисковой строке фразу «мой ip» .
Для WordPress файл создается в каталоге /wp-admin/.htaccess. Вставляете в него запрет доступ к файлу admin.php для всех IP кроме вашего:
Order deny,allow
Deny from all
Allow from 1.2.3.4
Аналогично можно защитить любой скрипт или каталог, к которому не должен быть доступ у посторонних
Если IP адресов несколько, то каждый можно указывать на отдельной строке:
Order deny,allow
Deny from all
Allow from 1.2.3.4
Allow from 1.2.3.5
Allow from 1.2.3.9
Если IP адреса динамические и меняются в рамках подсети, то можно указать диапазоны.
Order deny,allow
Deny from all
Allow from 1.2.3.
Внимание! Точка в конце обязательна. Если IP адрес динамический и меняется в широком диапазоне, то попробуйте варианты защиты панели администратора, которые приведены ниже.
Идея в том, что кроме авторизации средствами CMS (в которой логин и пароль администратора хакер может достать из базы или создать новый aккаунт), выполняется авторизация средствами веб-сервера. То есть сначала выводится окно с вводом логина и пароля от веб-сервера, и при успешной авторизации, выводится страница админ-панели с вводом логина/пароля.
Данный метод основан на разрешении доступа к каталогу со скриптами или файлу на основе фрагмента, который содержится в поле User Agent браузера (что такое User Agent).
Принцип простой: вы добавляете некое секретное слово или фразу к стандартной строке User Agent браузера и в конфигурации веб-сервера разрешаете доступ в каталог админки только если данное секретное слово встречается в поле User Agent. Поскольку только вы знаете кодовое слово, никто другой не сможет открыть скрипты панели администратора.
Несмотря на простой и доступный способ защиты панели администратора, не стоит игнорировать все остальные, описанные выше. Помните, что только комплексная защита является эффективной.
Также замечу, что все описанные способы защиты не входит в стандартный набор разработки сайта. Это услуга отдельная. Но это то, что вы должны попросить сделать разработчиков до сдачи сайта, т.к. это в будущем сбережет вам нервы и деньги. Потому что настройка превентивных мер — это всегда дешевле, чем поднимать и вычищать сайт после взлома.
-
Previous Post
4 ошибки владельцев интернет-магазина
-
Next Post
Когда можно обойтись без сайта
Свежие статьи
Лучшие хостинги для WordPress в Европе и Словении
Выбираете хостинг для своего сайта на Wordpress? И бизнес будет по всей Европе или по…
Как выбрать веб разработчика для сайта на WordPress? Есть 6 простых маркеров.
Выбираешь веб-разработчика на Wordpress? Портфолио и отзывы ("Они точно настоящие?") - это хорошо, но есть…
Нужен ли вашему сайту CDN?
CDN - прекрасное решение для улучшения скорости передачи данных, защиты сайта. Но есть случаи, когда…
Когда можно обойтись без сайта
Вам точно нужна разработка сайта? Мы перечислили ситуации, когда можно обойтись без вебсайта или когда…