Как взламывают сайты и как вам этого избежать

В данной статье мы не будем рассматривать взлом хостинга, на котором работает сайт, и сосредоточимся только на взломе самого сайта.
В данной статье мы не будем рассматривать взлом хостинга, на котором работает сайт, и сосредоточимся только на взломе самого сайта. Фото: tookapic. CC0 Public Domain.

Многие видели сообщения о том, что был взломан очередной сайт. Возможно, кто-то лично с этим сталкивался. Как могут взломать сайт, и какие меры защиты можно предпринять? Денис Куландин, эксперт Теплицы социальных технологий, рассказывает о том, что необходимо сделать, чтобы защитить свой сайт и не стать жертвой хакеров.

Взлом сайта это получение несанкционированного доступа к файлам сайта или к разделу администрирования системы управления сайтом.

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

Прежде всего, стоит заметить, что если вы ничего не будете делать, то рано или поздно сайт будет взломан!

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

Сканирование уязвимостей

Сайт на типовой платформе, такой как WordPress, можно узнать по его характерным особенностям (сигнатурам). Например, административная панель сайтов на WordPress располагается в подпапке «wp-admin». Просканировав ваш сайт по набору сигнатур, можно узнать много деталей: наименование и версию типовой платформы, какие дополнения установлены и их версии, список пользователей и т. п.

Вы сами можете просканировать ваш WordPress при помощи сервисов hackertarget.comscanwp.comgoogle.com/transparencyreport,

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

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

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

Более подробно о том, как правильно делать резервные копии, вы можете узнать из статьи «Как правильно настроить бэкап для вашего сайта на WordPress, и почему это важно».

Итог:

  • установите дополнения для сокрытия версии сайта и его компонентов, а также настройте firewall сайта (например, при помощи плагина All In One WP Security & Firewall, Acunetix WP Security и прочих);
  • удаляйте неактивные плагины и темы;
  • регулярно делайте обновление сайта;
  • делайте регулярные бэкапы.

Обновления

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

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

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

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

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

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

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

Прежде чем нажать кнопку обновления очередного элемента сайта, стоит почитать журнал изменений (changelog). Это журнал, в котором программисты ведут список изменений и замечаний для каждой новой версии. В WordPress в разделе «Плагины» есть ссылка на журнал изменений. Нажав на нее, вы сможете прочитать информацию об изменениях в новой версии.

Итог:

  • перед обновлением следует сделать резервную копию;
  • обновляться стоит постепенно, шаг за шагом, а не обновлять все сразу;
  • стоит читать журнал изменений (changelog);
  • стоит заранее оповестить пользователей об обновлениях;
  • важно делать проверку сайта после обновления.

Взлом паролей

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

В основном пароли получают следующими способами:

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

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

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

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

Самый простой способ – воспользоваться сервисом CloudFlare. В этом случае вам даже не обязательно устанавливать сертификат на свой хостинг. Детали того, как это работает, можно прочитать на сайте сервиса.

Если вам нужен полноценный заверенный сертификат, китайская компания WoSign бесплатно предоставляет сертификаты сроком до трех лет.

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

Подбор пароля путем перебора. Атака путем перебора паролей – это очень распространенный в сети метод атаки на сайты WordPress. Конечно, никто не будет подбирать пароли вручную. Для подбора паролей существуют специальные программы.

Итог:

  • установить пароль на папку wp-admin;
  • переименовать адрес страницы для входа в административное меню;
  • капча на вход и на страницу забытых паролей;
  • запретить сообщение об ошибке неверного пароля;
  • запретить перечисление всех пользователей.

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

Что можно предпринять для защиты от такой атаки?

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

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

Заключение

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