Что делать, если ваш сайт взломали

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

site-hacked

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

Если вам знакома эта ситуация, то вы должны знать и это чувство. Шок, паника, смятение. Закипающий гнев в считанные минуты может превратить вас в виртуального Халка. Но не паникуйте. Вы должны оставаться спокойным. Рациональным. Контролировать себя. Чистый, сосредоточенный ум является ключом для эффективного реагирования на любые нарушения безопасности.

Оцените размер ущерба

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

Блокируйте все доступы

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

Лучший способ заблокировать сайт, это добавить следующие правила в файл .htaccess сайта, который потенциально может быть взломан:

# TEMP MAINTENANCE PAGE
<IfModule mod_rewrite.c>
	RewriteCond %{REMOTE_ADDR} !^123.456.789$
	RewriteCond %{REMOTE_ADDR} !^987.654.321$
	RewriteRule .* - [R=503,L]
</IfModule>
<IfModule mod_headers.c>
	# 3600 = 60 minutes
	# 86400 = 1 day
	Header always set Retry-After "86400"
</IfModule>

Этот код проверяет IP-адрес посетителя и сравнивает его с двумя адресами, которые указаны через RewriteCond. Только посетители с соответствующих IP-адресов могут получить доступ. Можно указать столько IP-адресов, сколько вам нужно, или удалить одну из строк при необходимости. Этот проверенный и надежный скрипт разрешает доступ с указанных IP-адресов, а для всех остальных пользователей выводится сообщение 503 Service Unavailable. Чтобы убедиться, что он работает, посетив свой сайт через прокси-сервис.

Вы можете спросить: «Почему бы не использовать скрипт режима обслуживания или плагин WordPress, вместо того чтобы возиться с .htaccess?» Во-первых, это быстро и просто: скопировать/вставить код и загрузить файл. А во-вторых, потому что ваши PHP-файлы и плагины могли быть взломаны, и вам нужно будет деактивировать или заменить их в процессе очистки. Кроме этого файлом .htaccess в корневой папке сайта легче управлять, и он будет оставлять ваш сайт заблокированным даже после того, как все файлы PHP будут удалены с сервера.

Измените все пароли

Измените все свои пароли. Заведите специальный документ. В нем должны быть указаны все пароли от сервера или связанные с ним, например:

  • Панели управления сервером;
  • Аккаунта на хостинге;
  • Все пароли SSH;
  • Все пароли FTP;
  • Все логины и пароли баз данных;
  • Все HTTP / .htaccess пароли аутентификации;
  • Все пароли приложений (например, ключи к WordPress и т.д.);
  • Пароли от почты;
  • Пароли пользователей.

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

Запишите все

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

  • Описание того, что случилось, и как вы это обнаружили;
  • Описание того, что вы заметили;
  • Список пострадавших сайтов и их страниц;
  • Журналы записей, время, даты и т.д.;
  • Любые IP-адреса, которые могут быть причастны к взлому;
  • Копии всех подозрительных кодов, которые вы обнаружите;
  • Список всех полезных результатов поиска, статей, кодов и т.д.;
  • Файлы логов ошибок PHP, доступов по HTTP, FTP-активности и т.д.;
  • Скриншоты и копии всех пострадавших и взломанных страниц;
  • Содержание переписки между вами и вашим хостинг-провайдером или технической поддержкой.

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

Общайтесь по этой теме

О взломе должны знать все члены команды. После блокировки сайта следует обсудить с ними сложившуюся ситуацию и скоординировать дальнейшие действия.

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

Проведите расследование

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

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

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

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

Несколько дополнительных советов по определению метода атаки на сайт:

  • Тщательно изучите файлы логов; они содержат большую часть информации, необходимой, чтобы точно определить, что произошло;
  • Проверьте через поиск в интернете все фрагменты вредоносного кода. Скорее всего, кто-то в Сети уже сообщал о подобных событиях;
  • Задайте на поиск фразы, содержащие имя вашего сайта или URL-адрес вместе такими словами, как «взлом«, «атака» и другими терминами. Если какой-то злоумышленник взломал ваш сайт, он, возможно, захочет рассказать об этом всему миру;
  • Обратитесь к этому Руководству по устранению неполадок, чтобы узнать об углубленных методах, которые помогут выявить и идентифицировать различные взломанные файлы.

В 2013 году Perishable Press был взломан. Я провел расследование и попытался найти в Интернете любые возможные улики. Я обнаружил, что злоумышленник написал об этом на одном приватном хакерском форуме. Он подробно рассказал обо всем, что было сделано, чтобы взломать мой сайт, в том числе конкретный механизм, с помощью которого был получен несанкционированный доступ.

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

Создавайте резервные копии

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

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

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

Повышайте безопасность

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

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

Поделитесь тем, что вы узнали

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

Перевод статьи «What to do when your site gets hacked» был подготовлен дружной командой проекта Сайтостроение от А до Я.