The #ChromeDevSummit site is live, happening Nov 12-13 in San Francisco, CA
Check it out for details and request an invite. We'll be diving deep into modern web tech & looking ahead to the platform's future.

Устраните все уязвимости и выработайте стратегию защиты сайта

Необходимые условия

  • Доступ к серверу сайта (веб-серверу, базе данных и файловой системе) через терминал или оболочку с правами администратора.
  • Знание команд оболочки или терминала.
  • Понимание кода (например, PHP или JavaScript).
  • Свободное пространство для создания резервных копий сайта (включая файлы, базу данных, изображения и т. д.).

Дальнейшие действия

На этом этапе необходимо решить следующие задачи: 

  • Узнать, как правильно действовать, если украдены персональные данные пользователей (например, в результате фишинга).
  • Ускорить удаление новых страниц, которые создал хакер, из результатов Google Поиска с помощью функции Удалить URL-адреса в Search Console.
  • Ускорить индексацию в Google Поиске страниц, которые вы добавили заново или исправили, с помощью Сканера Google для сайтов в Search Console.
  • Установить последние, самые безопасные версии ПО.
  • Удалить лишние и неиспользуемые приложения и плагины, которые со временем делают ваш сайт уязвимее.
  • Восстановить ценное содержание и удалить контент, загруженный хакером.
  • Устранить уязвимость, которой воспользовался хакер.
  • Изменить все пароли.
  • Выработать стратегию защиты сайта.

1. Узнайте, как правильно действовать, если украдены персональные данные пользователей (например, в результате фишинга)

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

2. Ускорьте удаление новых страниц, которые создал хакер

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

  • Принимая решение, отправлять ли URL для удаления, учитывайте количество новых страниц (тяжело будет запросить удаление сотен URL), а также уровень опасности, которую они представляют для пользователей. Чтобы страницы, URL которых вы отправили, не появлялись в результатах поиска, обязательно настройте для них на сервере код статуса 404 "Файл не найден".
  • Не запрашивайте удаление страниц с полезным контентом, которые изменил хакер, – после очистки сайта вы снова захотите видеть их в результатах поиска. Запрашивайте удаление только тех URL, которые никогда не должны появляться в результатах поиска.

3. Ускорьте индексацию очищенных страниц в Google

Если вы добавили новые страницы или исправили взломанные, можно ускорить их индексацию в Google Поиске с помощью функции Сканера Google для сайтов в Search Console. Этот необязательный шаг, поскольку рано или поздно эти страницы все равно будут проиндексированы.

4. Начните устранять уязвимости на сервере

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

  • У вас есть актуальная резервная копия, созданная до взлома.
  • У вас есть созданная до взлома, но устаревшая резервная копия.
  • Нет резервной копии.   

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

  • У вас есть актуальная резервная копия, созданная до взлома
    1. Восстановите резервную копию.
    2. Установите все обновления и исправления безопасности для программного обеспечения. Это касается ОС сервера (если у вас есть к ней доступ) и всех приложений, например системы управления контентом, платформы электронной торговли, плагинов, шаблонов и т. д.
    3. Удалите программное обеспечение (виджеты, плагины или приложения), которое больше не используется на вашем сайте.
    4. Устраните уязвимость.
    5. Убедитесь, что устранены все проблемы, найденные при оценке масштаба внедрения.
    6. Ещё раз смените пароли ко всем аккаунтам, связанным с сайтом: например к FTP-серверу, базе данных, операционной системе и системе управления контентом. В Unix-подобных системах используйте эту команду:
      $passwd admin1
  • У вас есть созданная до взлома, но устаревшая резервная копия
    1. Создайте образ диска, на котором хранится взломанный сайт. Эта копия будет использоваться лишь для сохранности данных. Обозначьте эту копию как взломанную, чтобы отличить ее от остальных. В Unix-подобных системах образ диска можно создать с помощью этой команды:
      $dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9
        > /mirror/full-backup-20120125-infected.gz
    2. Создайте резервную копию файловой системы сервера, включая изображения и файлы мультимедиа. Если вы используете базу данных, создайте резервную копию и для нее.
      $tar -pczf full-backup-20120125-infected.tar.gz www/ $ mysqldump -u root
        -p --all-databases | gzip -9 > fulldb_backup-20120125-infected.sql
    3. Восстановите чистую, но устаревшую резервную копию на сервер.
    4. Удалите программное обеспечение (виджеты, плагины или приложения), которое больше не используется на вашем сайте.
    5. Обновите все программное обеспечение на сервере, включая ОС сервера (если у вас есть к ней доступ) и все приложения, например систему управления контентом, платформу электронной торговли, плагины, шаблоны и т. д. Обязательно проверьте наличие исправлений и обновлений системы безопасности, а затем установите их.
    6. Устраните уязвимость.
    7. С помощью команды diff сравните чистую и инфицированную копии сайта вручную или автоматически.
      $diff -qr www/ backups/full-backup-20120124/
    8. Загрузите весь новый и неизмененный хакером контент из инфицированной копии на обновленный сервер.
      $rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
    9. Убедитесь, что устранены все проблемы, найденные на этапе оценки масштаба внедрения.
    10. Ещё раз смените пароли ко всем аккаунтам, связанным с сайтом: например, к FTP, базе данных, операционной системе и системе управления контентом. В Unix-подобных системах используйте эту команду:
      $passwd admin1
  • Нет резервной копии
    1. Создайте две резервных копии сайта несмотря на то, что он взломан. Дополнительная копия позволит восстановить случайно удаленный контент или начать все заново в случае неудачи. Укажите в их названиях, что это резервные копии взломанного сайта.
      • Одна из резервных копий будет образом диска или "клоном сайта". Этот формат значительно упрощает восстановление контента. Оставьте эту резервную копию на непредвиденный случай. В Unix-подобных системах образ диска можно создать с помощью этой команды:
        $dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 >
          /mirror/full-backup-20120125-infected.gz
      • Другая копия будет архивом каталога сайта, включая изображения и файлы мультимедиа. Если вы используете базу данных, создайте резервную копию и для нее.
        $tar -pczf full-backup-20120125-infected.tar.gz www/
         
        $mysqldump -u root -p --all-databases | gzip -9 > fulldb_backup-20120125-infected.sql
      • Если у вас нет доступа к ОС для создания образа диска, создайте по две резервных копии каталога сайта и файловой системы.
    2. Устраните последствия взлома на резервной копии каталога сайта (а не сервера).
      1. Если раньше вы обнаружили слишком высокий уровень разрешений, исправьте настройки. Пока вносите изменения только в резервную копию, а не на сервере.
      2. Устраните все следы вмешательства в файлах, которые связаны со взломанными страницами, обнаруженными на этапе оценки масштаба внедрения. Это могут быть файлы настроек сервера, JavaScript, HTML и PHP.
      3. Обязательно удалите файлы, созданные хакером, и настройте для соответствующих страниц статус 404. Чтобы ускорить их удаление из индекса Google, можно воспользоваться инструментом "Удалить URL-адреса" в Search Console.
      4. Устраните уязвимость в коде сайта или замените взломанные пароли. Полезно будет использовать библиотеки проверки вводимых данных и провести аудит безопасности.
      5. Если на вашем сайте используется база данных, удалите из нее измененные хакером записи. Не останавливайтесь на записях из журнала расследования, проверьте базу данных ещё раз, чтобы убедиться в отсутствии подозрительных строк.
      6. Ещё раз смените пароли ко всем аккаунтам, связанным с сайтом: например, к FTP, базе данных, операционной системе и системе управления контентом. В Unix-подобных системах используйте команду:
        $passwd admin1
      7. Теперь резервная копия ранее взломанного сайта не должна содержать следов хакерского вмешательства. Пора переходить к следующему пункту.

5. Удалите лишнее программное обеспечение

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

6. Переустановите ОС на серверах

  1. Переустановите ОС на сервере – не обновляйте ее. При простом обновлении не исключено, что на сервере останутся взломанные файлы, которые позволят злоумышленникам снова захватить над ним контроль.
    • Переустановите все программное обеспечение на сервере, включая ОС (если у вас есть к ней доступ) и все приложения, например систему управления контентом, платформу электронной торговли, плагины, шаблоны и т. д. Обязательно проверьте наличие исправлений и обновлений системы безопасности, а затем установите их.
  2. Перенесите полезный контент из очищенной резервной копии на сервер с переустановленной ОС. Восстанавливайте файлы и базу данных, только если уверены в том, что они не содержат вредоносный контент или спам. Обязательно отрегулируйте уровень доступа к файлам и следите за тем, чтобы не переписать системные файлы свежеустановленной ОС.
  3. В последний раз смените пароли ко всем аккаунтам, связанным с сайтом: например, к FTP, базе данных, операционной системе и системе управления контентом. В Unix-подобных системах используйте эту команду:
    $passwd admin1

7. Выработайте долгосрочную стратегию защиты сайта

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

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

8. Ещё раз проверьте, завершена ли очистка сайта

Если вы можете ответить "да" на перечисленные ниже вопросы, значит очистка завершена.

  • Предприняты ли необходимые меры на случай, если хакер завладел персональными данными пользователей? 
  • Используются ли на моем сайте самые последние версии ПО? 
  • Удалены ли все неиспользуемые приложения или плагины, которые могли сделать мой сайт уязвимее со временем? 
  • Восстановлено ли полезное содержание и удален ли добавленный хакером контент? 
  • Устранена ли уязвимость, которая позволила взломать мой сайт? 
  • Есть ли у меня стратегия защиты сайта и следую ли я ей?

9. Возобновите работу сайта в Интернете

Следующий этап

Почти готово! Теперь запросите проверку.