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

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

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

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

В данной статье мы рассмотрим:

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

  • Как читать логи сервера
  • Как найти нужные данные
  • Как отсеять обычных пользователей

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

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

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

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

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

  • Перебор паролей(взлом грубой силой) — Хакер просто пытается угадать логин и пароль. Если вы используете простые логины, к примеру, Admin или Administrator, это дает хакерам половину данных для доступа к веб-сайту. Если вы используете простые пароли, то это ещё более ускоряет проникновение на веб-сайт.
  • Уязвимости софта — Когда хакеры определяют, что вы используете устаревший софт, по спискам известных уязвимостей, находящимся в открытом доступе, они находят уязвимость в устаревшей версии WordPress, плагина, темы или скрипта, и, к примеру, внедряют скрипт для проникновения на веб-сайт.
  • Бэкдоры — Хакер внедряет файл в файловую структуру веб-сайта. В файле находится скрипт, который может хакеру приобрести доступ к веб-сайту, оставаясь при этом незамеченным. Бэкдоры.
  • Небезопасный сервер — Сервер, на котором расположен веб-сайт, должен быть безопасным. Если он небезопасен, хакеры могут использовать уязвимости в ПО сервера для проникновения на веб-сайт.
  • Неверные права доступа — Права доступа к файлам и папкам определяют, кто может читать, записывать и исполнять файлы. Если вы установите слишком низкие права доступа, хакеры смогут редактировать файлы, внедрять скрипты, например, бэкдоры, и в итоге получат контроль над веб-сайтом.
  • XML-RPC эксплоиты — XML-RPC используется для трекбэков и пингбэков. Это может делать пару удаленных вызовов по одному HTTP запросу. Например, веб-сайт может отправлять пингбеки на иные веб-сайты и приобретать их от иных веб-сайтов. Проблема в том, что хакеры могут использовать эту возможность для выполнения удаленных автоматических атак с перебором паролей, когда они без ограничения с высокой частотой перебирают различные варианты логина и пароля. Подробнее.
  • Вредоносное ПО и вирусы — Если у вас на компьютере есть вредоносное ПО или вирусы, хакеры могут их использовать для проникновения на веб-сайт.
  • Фишинг — Хакеры могут захватить или создать похожий на оригинальный веб-сайт. На захваченном или похожем веб-сайте хакеры создают похожую на оригинальную форму авторизации, чтобы похитить персональные данные посетителей, когда они авторизуются на веб-сайте.
  • 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. Как проверить и вылечить от вирусов WordPress веб-сайт
  2. 2 Примера взлома и лечения веб-сайта
  3. Как очистить веб-сайт от вирусов и удалить его из черных списков
  4. Как зайти в Консоль WordPress после взлома веб-сайта

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

Добавить комментарий

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