И вновь пост навеян очередным запросом по работе. Пришла заявка на оценку задачи, которая начинается с пункта «Контроль и обеспечение безопасной работы сайта». Ниже скрин начала брифа, но не напрягайте зрение — он тут больше для антуража.

Пример брифа на технический аудит сайта

Да начнётся технический аудит сайта

Суть в том, что у клиента всё хорошо настолько, что ему даже интересно, что ещё можно улучшить. Тот случай, когда чеклист ламера остаётся курить в сторонке:

  • обновить cms и плагины,
  • проверить сайт антивирусом (к примеру, zip-архив сайта загнать на virustotal) и свой компьютер хотя бы CruelIt-ом (разумно-скептически оценивая рекомендации, игнорируя угрозы типа «Обнаружена Windows, рекомендуется Win+R format c:»),
  • Запретить в конфиге сервера (у самых маленьких это .htaccess), для анонимных пользователей любые соединения, которые не для получения контента в предполагаемом виде,
  • отказаться от использования технологий, передающих аутентификационные данные в открытом виде (FTP, HTTP без шифрования)
  • сменить пароли на неподбираемые,
  • загрузить фотки подковы, иконок и четырёхлистного клевера в медиафайлы,
  • настроить регулярное резервное копирование в облако с шифрованием.

В общем, очевидные детские вещи, без которых можешь даже не заметить тот момент, когда твой сайт перейдёт на тёмную сторону силы. Но даже этому нужно учиться, в лучшем случае — изучая кейсы, а в худшем (или в «как обычном») — на своём горьком опыте лет потерь и восстановлений.

Другой уровень: понимать, что точечные злонамеренные угрозы, направленные именно на ваш сайт — явление настолько редкое, что актуальным станет только когда в вашем штабе уже заведётся бородатый сисадмин, который будет умело отражать гигабитный брутфорс в перерывах между заправкой МФУ.

Основная угроза — массовая эксплуатация уязвимостей в популярном софте. Многие сайты написаны на PHP, используют базы MySQL на СУБД MariaDB, почту отправляют с сервера exim4, запросы мониторит fail2ban, и прочее обычно стандартно: vsftpd, nginx, debian, centos... Узнав об уязвимости в числе первых, злонамеренный анонимус при желании найдёт способ её эксплуатировать и создать армию зомби-сайтов. Даже если заплатку уже выпустили (обычно информация об уязвимости не публикуется до выпуска заплатки), лишь единицы администраторов среагируют в нулевой день. А множество хостингов, функционирующих по принципу «и так сойдёт» будут уязвимы даже спустя месяцы.

В связи с этим вопрос — пользоваться шаред-хостингом, где софт предустановлен, настроен и обновляется (предположительно) своевременно без участия клиента? Или всё же VDS? — Где надо самому устанавливать, настраивать, следить за обновлениями, и конечно быть хотя бы юзером линукс, собрать из практики горячую подборку консольных команд, подписаться на рассылки каких-нибудь systemintegra, серверное администрирование на habr, отправляя при каждой тревожной новости своему серверу команду apt-get update && apt-get upgrade && reboot... Иначе будут такие казусы, которых не хотелось бы и на своих сайтах, не говоря о клиентских.

Думаю, в этом вопросе, как и во многих других, решает золотая середина. Если удобен вариант использовать шаред-хостинг — надо найти достойный хостинг и использовать его. А когда требуется всё же что-то большее, то начать с VDS и сисадмина на аутсорсе. Если сервер делается с нуля и по уму, то после установки и настройки работы будет не много, но регулярно, потому расходы на сисадмина будут сопоставимы с тратами на хостинг. Базовые знания работы сервера на уровне юзера, конечно, будут нужны. Но более серьёзные — это для энтузиастов с кучей свободного времени.

Возможно, вы предпочтёте это время потратить лучше на изучение вопроса увеличения конверсии сайта, монетизации. Иначе сайт будет супер-защищённым в основном потому, что о нём будут знать 3 бота и админ. Я, например, по большей части на эту защиту расчитываю. Даже думаю автовход в админку без пароля сделать, чтобы посты писать с любого устройства, даже с самоплата — вдруг меня там вдохновение поймает. Ну, а на данный момент моё вдохновение как бы всё, окончено. В общем, я — за ту войну с хакерами, которой не будет, peace!

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

Сайт содержит вирус

Бэкап скомпрометированного сайта

А с учётом того, что Яндекс.Диск удобен для монтирования по протоколу WebDAV и бесплатно даёт необходимое количество дискового места для хранения бэкапов сайтов (10 ГБ бесплатно против 3,5 ГБ — максимальный размер сайта в моей практике по администрированию серверов), получается удачная охота на двух зайцев. Если интересно, как настроить автоматический бэкап на Яндекс.Диск — пишите в комментариях, по заявкам сделаю статейку.

Запись опубликована 11 декабря 2019 года. Пост окончен, но в рубрике «Web-кодинг» есть не менее интересные посты:

Подписка на RSS канал блога RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.