Как удалить вредоносные скрипты с сайта и предотвратить повторный взлом

Автор Ruterk, 10 января 2015, 11:08:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ruterk

Задачу по удалению вредоносных скриптов с сайта и задачу по устранению причин взлома необходимо выполнять совместно. Если устранить первоначальную причину взлома (например, уязвимость в расширении CMS), но не удалить все вредоносные файлы, злоумышленник сможет снова получить доступ к сайту, воспользовавшись одним из своих скриптов. Если же удалить все загруженные вредоносные скрипты, но не устранить причину взлома, злоумышленник сможет повторно взломать сайт и снова загрузить на него скрипты.
Выполнять работу по удалению вредоносных скриптов и проводить анализ причин взлома должен специалист с соответствующими знаниями и опытом:

•   Для удаления вредоносных скриптов необходимо знание языка программирования PHP, а также знание «изнутри» популярных CMS (Joomla, WordPress и т. п.) и расширений для них.

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

•   Для анализа причин взлома требуется опыт администрирования сервера. Это необходимо для анализа состояния файлов на аккаунте, времени их изменения, а также для сопоставления этих данных с журналами сервера для определения, какие именно действия злоумышленника привели к взлому сайтов.

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

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

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

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

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

1. Сразу после обнаружения взлома сайта необходимо полностью заблокировать к нему доступ посетителей. Это, во-первых, помешает злоумышленнику вести вредоносную деятельность на сайте, а во-вторых, не позволит ему препятствовать проведению восстановительных работ. Этот шаг очень важен, так как удаление вредоносных скриптов и устранение причины взлома не происходит одномоментно — как правило, на это требуется несколько часов. Если сайт останется доступным извне, злоумышленник сможет произвести повторную загрузку скриптов в тот раздел сайта, который уже был очищен. При этом злоумышленник может использовать различные IP-адреса для подключения, поэтому запрет доступа только для списка IP-адресов не даст результата. Чтобы гарантированно очистить сайт от найденных вредоносных скриптов, необходимо полностью закрыть для злоумышленника возможность обращения к сайту, что можно сделать только с помощью полной блокировки сайта для любых посетителей. Обратитесь в службу технической поддержки хостинга, на котором размещается ваш сайт, чтобы произвести блокировку.

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

3. После блокировки сайта и проверки на вирусы необходимо изменить все пароли доступа к аккаунту: доступы через FTP, через SSH, а также доступы к панели управления хостингом. Если злоумышленник получал доступ к файлам аккаунта одним из этих способов, после смены паролей он больше не сможет сделать это.

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

5. Теперь проникновение на сайт извне невозможно и можно приступать к его восстановлению.

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

7. После удаления всех файлов сайта восстановите сайт из резервной копии, созданной до его взлома. Часто достаточно восстановить только файлы сайта, однако если после их восстановления в работе сайта наблюдаются ошибки, необходимо восстановить сайт полностью: и файлы и базу данных.

8. После восстановления из резервной копии обновите используемые версии системы управления сайтом (CMS) и ее расширений до последних. Это необходимо, чтобы исключить присутствие на сайте известных уязвимостей, через которые он может быть взломан. Как правило, обновление можно произвести через раздел администрирования CMS. Для получения полных инструкций по обновлению CMS необходимо обратиться на сайт разработчика системы. Важно обновить не только саму CMS, но и все ее расширения, так как часто взлом происходит через уязвимость, присутствующую в одном из расширений CMS (например, плагины, темы оформления, виджеты и пр.). В этот момент еще нельзя снимать блокировку сайта для посетителей, так как он может быть еще уязвим. Чтобы получить доступ к сайту для обновления, обратитесь в техническую поддержку хостинга, на котором размещается ваш сайт, и попросите разрешить доступ к сайту только с IP-адреса вашего компьютера. Узнать ваш IP-адрес вы можете, например, на inet.yandex.ru.

9. После обновления системы управления сайтом и ее расширений зайдите в раздел администрирования сайта и измените пароль доступа администратора к нему. Убедитесь, что среди пользователей сайта нет других пользователей с административными привилегиями (они могли быть добавлены злоумышленником), а если таковые обнаружатся — удалите их.

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

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

Чтобы защитить сайт от повторных взломов в будущем необходимо придерживаться следующих рекомендаций:

1. Следите за обновлениями CMS и расширений для нее на сайтах разработчиков и своевременно производите их обновление до последних версий. Если в комментарии об обновлении присутствует информация о том, что оно устраняет какую-либо уязвимость, установите это обновление как можно быстрее.

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

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

4. Не сохраняйте в программах для подключения к сайту пароли от FTP и SSH, а также не сохраняйте в браузере пароль доступа в административный радел сайта и в панель управления хостингом.

5. Время от времени (например, раз в три месяца) изменяйте пароли доступа к сайту и к аккаунту хостинга.

6. Если на компьютере, с которого производилась работа с сайтом, были обнаружены вирусы, измените пароли доступа к сайту и аккаунту хостинга как можно быстрее. Изменять необходимо все пароли: пароли доступа по FTP, SSH, пароль от административной панели сайта, а также пароль от панели управления хостингом.

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