Как найти следы взлома в логах сервера

Как найти следы взлома сайта в логах сервераВзлом сайта — неприятная штука, но рано или поздно это может произойти с вашим сайтом. По данным сервиса Internet Live Stats в 2018 году около 100.000 сайтов взламывалось ежедневно, поэтому к этому событию лучше подготовиться заранее, и знать, что следует делать, если это произойдет.

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

В этой статье вы узнаете, как хакеры проникают на сайт, как найти их следы в логах сайта, и как попытаться восстановить контроль над сайтом самому.

Содержание:

Как хакеры взламывают сайты
Журнал событий сервера

Устраните уязвимость
Автоматизируйте процесс

Как хакеры взламывают сайты

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

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

Основные способы, которыми хакеры проникают на сайты:

  • Перебор паролей (взлом грубой силой) — Хакер просто пытается угадать ваш логин и пароль. Если вы используете простые логины, например, Admin или Administrator, это дает хакерам половину данных для доступа к вашему сайту. Если вы используете простые пароли, то это еще более ускоряет проникновение на ваш сайт.
  • Уязвимости софта — Когда хакеры определяют, что вы используете устаревший софт, по спискам известных уязвимостей, находящимся в открытом доступе, они находят уязвимость в вашей устаревшей версии Вордпресс, плагина, темы или скрипта, и, например, внедряют свой скрипт для проникновения на ваш сайт.
  • Бэкдоры — Хакер внедряет файл в файловую структуру сайта. В файле находится скрипт, который позволяет хакеру получить доступ к сайту, оставаясь при этом незамеченным. Бэкдоры.
  • Небезопасный сервер — Сервер, на котором расположен ваш сайт, должен быть безопасным. Если он небезопасен, хакеры могут использовать уязвимости в ПО сервера для проникновения на ваш сайт.
  • Неверные права доступаПрава доступа к файлам и папкам определяют, кто может читать, записывать и исполнять файлы. Если вы установите слишком низкие права доступа, хакеры смогут редактировать ваши файлы, внедрять скрипты, например, бэкдоры, и в итоге получат контроль над сайтом.
  • XML-RPC эксплоиты — XML-RPC используется для подключения стороннего софта к Вордпресс. Например, хакеры могут использовать эту функцию для выполнения удаленных автоматических атак с перебором паролей, когда они без ограничения с высокой частотой перебирают разные варианты логина и пароля. Подробнее.
  • Вредоносное ПО и вирусы — Если у вас на компьютере есть вредоносное ПО или вирусы, хакеры могут их использовать для проникновения на сайт.
  • Фишинг — Хакеры могут захватить или создать похожий на оригинальный сайт. На захваченном или похожем сайте хакеры создают похожую на оригинальную форму авторизации, чтобы похитить персональные данные пользователей, когда они авторизуются на сайте.
  • XSS-атаки (Cross-site Scripting) — Это код, написанный определенным образом, который позволяет хакеру записывать и выполнять вредоносный JavaScript, который сохраняет данные браузера пользователя. Хакеры отправляют ссылку пользователям сайта, чтобы похитить любую информацию, введенную пользователями при просмотре сайта.
  • CSRF (Cross-site request forgery) — Подделка межсайтового запроса. Хакер вносит изменение в оригинальный запрос пользователя, создавая свой вредоносный запрос. У хакера нет прав администратора, поэтому он обманным путем заставляет пользователя совершать действия, которые дают хакеру разрешение на выполнение этого вредоносного запроса. Такой тип атак используется для того, чтобы заставить пользователя делать нужные действия, например, ввести свои логин и пароль для входа на сайт.

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

Вы можете попробовать что-то сделать, например, поменять пароли, но если вы видите, что хакер все равно продолжает проникать на сайт, значит, проблема еще не решена.

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

Журнал событий сервера

Логи веб сервера могут содержать информацию или дать подсказку о том, как сайт был взломан.

Логи находятся на хостинг панели, в зависимости от используемого софта они могут называться по-разному: «Логи», «Журнал событий», «Метрики» или что-нибудь в этом роде. Обычно в этом разделе находятся 2 журнала: «Логи ошибок» и «Логи доступа». Лог ошибок сервера короче, поэтому начать можно с них, но они не показывают успешные попытки доступа.

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

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

Сохраните файлы на компьютер из хостинг панели или напрямую с сервера, и откройте в любой текстовой программе, например Notepad++ или Brackets.

Как читать логи сервера

Логи доступа и логи ошибок выглядят как трудночитаемое поле текста, но все записи организованы в определенную структуру.

Журнал событий

Структура записи в Журнале ошибок:

  • Дата и время
  • Тип ошибки
  • IP адрес пользователя
  • Описание ошибки
  • Путь к файлу страницы, на которой произошла ошибка
  • URL сайта, с которого пользователь пришел на страницу с ошибкой

Большинство логов ошибок имеет такую структуру, но ваш лог может отличаться, это зависит от ПО сервера. Если ваш лог отличается, вы все равно увидите повторяющуюся структуру.

Логи событий тоже имеют стандартную структуру:

  • IP адрес пользователя
  • Дата и время
  • Используемый HTTP метод и версия
  • HTTP код ответа
  • Количество полученных байтов
  • Используемый софт (браузер или ОС посетителя)
  • User agent

Реклама

Калькулятор ОСАГО

Простой способ выгодно купить полис

Как найти нужные данные

Начните с просмотра Лога ошибок, это может дать подсказку для поиска взлома в Логах доступа.

Если вы увидели, что кто-то пытался получить доступ к файлам, которые обычный посетитель не должен посещать, но хакер может, тогда обратите внимание на этот IP. Хакер может попытаться получить доступ к файлам .htaccess, wp-config.php, install.php и другим подобным.

Пример ошибки в Логе ошибок:

[Sat Jul 07 16:17:46 2018] [error] [client 123.45.67.890:20744] AH01630: client denied by server configuration: /путь/к/вашему/сайту/.htaccess

В этом примере сервер отказал пользователю в доступе к файлу .htaccess, потому что у него не было разрешения на просмотр этого файла. Если вы не узнаёте этот IP адрес, и это не ваш адрес, то скорее всего это попытка взлома.

Если вы не знаете свой IP адрес, узнайте его здесь, или спросите в поисковике «мой IP адрес».

Для загрузки страницы обычно требуется загрузить много компонентов — картинки, скрипты, стили, поэтому нормально видеть, что один и тот же IP получает доступ к одной странице несколько раз, как в этом примере:

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

В этом примере вы видите, что пользователь обратился к странице ~/wp-login.php в первой строке, и запрос был успешным.

После того, как загрузились все нужные файлы, пользователь был успешно авторизован и направлен на страницу Консоли в строке 5. Следующим действием администратор прошел в редактор плагинов в строке 9.

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

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

Большое количество неудачных попыток войти на сайт перед последней удачной попыткой будут иметь один из 400-х ответов сервера:

  • 400 Bad Request — Ошибка синтаксиса или неверный запрос.
  • 401 Unauthorized — Эта ошибка появляется, когда требуется авторизация для просмотра страницы, но она не была дана, или она недействительна.
  • 403 Forbidden — аналогично с ошибкой 401, этот ответ означает, что пользователь не имеет прав для просмотра этой страницы. То есть, технически доступ разрешен, но сервер запретил доступ этому пользователю.
  • 429 Too Many Requests — Слишком много запросов за определенный период времени. Обычно пользователи не видят такой ответ, такая ошибка может указывать на активность какого-то бота.

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

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

Как отсеять обычных посетителей

Чтобы уменьшить количество информации в логе можно отфильтровать обычные запросы. Откройте SSH клиент, например, Terminal для MacOS или PuTTY для Windows, или встроенный SSH клиент на хостинге, и попробуйте отсеять безопасные запросы.

С помощью этих команд вы можете отсеять 2/3 записей, в которых запрашивались картинки, файлы скриптов и стилей, главная страница, страница контактов и страница регистрации на сайте.

$ cat access-log |grep -Ev "\.(js|css|png|jpg|jpeg) HTTP/1" |grep -Ev " GET (/|/contact|/signup) HTTP/1"| more

Главная страница обозначена / в части GET (/|/contact|/signup). Вы также можете изменить contact и signup на другие страницы, или добавить другие страницы.

Если у вас остается много записей, вы можете отфильтровать запросы к странице авторизации и панели администратора:

$ cat access-log |grep -E "wp-admin|wp-login|POST /" | more

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

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

$ cat access-log |grep -E "wp-admin|wp-login|POST /" |grep -v "^1.2.3.4|1.2.3.5" | more

Замените 1.2.3.4 и 1.2.3.5 на свои адреса.

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

Устраните уязвимость

После того, как вы выяснили, как хакер проник на сайт, устраните найденную уязвимость.

Автоматизируйте процесс

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

Поделитесь в комментариях, взламывали ли хакеры ваш сайт, если да, то как вы его восстановили. Что вы делаете для безопасности сайта?

Читайте также:

  1. Как проверить и вылечить от вирусов Вордпресс сайт
  2. 2 Примера взлома и лечения сайта
  3. Как очистить сайт от вирусов и удалить его из черных списков
  4. Как зайти в Консоль Вордпресс после взлома сайта

Надеюсь, статья была полезна. Оставляйте комментарии.

комментария 3

  1. Здравствуйте!
    Было бы неплохо если бы вы что-нибудь рассказали про вот этот вирус.

    Этот код прописывается в каждом файле в WP в footer head index.

    Никак не могу найти бэкдор.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Techbear

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

WordPress   WooCommerce   Membership   Elementor   ACF

Обновления блога

Subsription - Gray Footer
Techbear