
“Мой сайт, кажется, взломали..”. Владелец сайта как в классическом анекдоте про супружескую измену узнает об этом последним. Чаще всего о взломе ему сообщают удивленные и недовольные клиенты, которых перебрасывает на другой сайт. Потому что сами мы — чего уж скрывать — на собственный сайт заходим редко.
Но есть косвенные признаки, которые должны вас насторожить и предположить, что был несанкционированный доступ на сайт и теперь там вредоносные скрипты и вирусы.
Содержание:
Признаки, что вас взломали
Резко упала посещаемость сайта
- На сайте появляются всплывающие окна, тизерные блоки, контекстная реклама, которые вы не размещали
- В статистике посещений регулярно появляются переходы на сайты, при этом на них нет явных ссылок на страницах
- При клике по локальным ссылками выполняется переход на сторонний ресурс или открывается новое окно с чужим сайтом
- На сайте появился посторонний контент (новые статьи, фрагменты страниц, разделы, пункты меню), который вы не размещали
- На страницах появились ссылки на сторонние ресурсы. Иногда ссылки не видны на самой странице, но есть в коде страницы или определяются внешними сервисами
- Сайт теряет позиции в поисковой выдаче
- В поисковом индексе (в панели вебмастера) появилось много новых страниц, которые вы не добавляли
- В поисковой выдаче сайт отображается с предупреждением о наличие и распространении вредоносного кода
- Странные заходы на сайт в статистике посещений (большое число посетителей, не задерживающихся на странице больше 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 - прекрасное решение для улучшения скорости передачи данных, защиты сайта. Но есть случаи, когда…
Когда можно обойтись без сайта
А вы уверены, что вам нужен сайт? Мы собрали случаи, когда бизнес может обойтись без…