Аудит веб-приложений для интернет-магазина косметики провёл Евгений Росляков: проверил сайт на уязвимости по договору и с письменного разрешения владельца, а затем помог всё исправить. Сайтами он занимается с 2016 года. Работает самозанятым, договор оформляет до начала проверки, организациям выдаёт закрывающие документы, принимает заказы в Москве и удалённо.
Поводом стала жалоба покупательницы. Она написала, что после оформления заказа её на секунду перекинуло на незнакомую страницу, совсем не похожую на магазин. Владелец сначала не поверил, но проверил с другого устройства, и действительно что-то странное было. До сезона подарочных наборов оставалось два месяца, а на сайте лежали заказы, телефоны и адреса клиентов.
Требовалось выяснить, откуда берётся перенаправление, найти слабые места раньше, чем их найдёт кто-то посторонний, и привести сайт в порядок. Магазин работал на популярной CMS, с плагинами для отзывов, поиска и оплаты, и у него было несколько администраторов.
Сразу договорились о правилах. Проверка идёт только на этом сайте, в согласованные даты, с резервной копией перед началом. Без нагрузочных атак и без доступа к данным клиентов сверх необходимого.
Сначала подписали договор и приложение с письменным разрешением владельца и хостинга: что проверяем, когда и какими способами. Дальше работа шла в два этапа.
Первый этап — осмотр. Проверил версии CMS и плагинов, права на файлы, настройки сервера, журналы. Скрипт с перенаправлением лежал в шаблоне темы, куда он попал через давно не обновлявшийся плагин. Его убрали, ключи и пароли сменили.
Второй этап — Тестирование на проникновение: проверка так, как действовал бы посторонний, но строго в границах разрешения. Нашлись две проблемы. Форма отзывов и строка поиска выводили введённый текст без экранирования, поэтому в них мог сработать XSS (межсайтовый скриптинг): чужой код выполнялся бы в браузере посетителя. Подробности я не публикую, исправление описано только в отчёте для владельца. Вторая проблема касалась админки: слабая защита входа, лишние права у одной учётной записи и открытая страница со служебными файлами.
Что исправили. Ввод в отзывах и поиске теперь экранируется и фильтруется. Включили политику CSP: страницы загружают скрипты только с доверенных адресов. Админку закрыли двухфакторным входом и ограничением числа попыток, права распределили по ролям. Плагины обновили или заменили.
Веб-безопасность на будущее держится на Web Security Manager, модуле защиты (WAF) на хостинге. Он отсекает типовые вредоносные запросы. К нему добавили регламент: проверка обновлений раз в неделю, резервные копии, чек-лист перед запуском акций.
Перенаправление исчезло, причина найдена и устранена. Владелец получил отчёт на понятном языке: что нашли, насколько это опасно, что исправлено и что остаётся на их стороне. Без технического шума и без описания способов эксплуатации.
Магазин вошёл в сезон на обновлённой CMS с закрытой админкой и работающим WAF. Сотрудники входят с двухфакторной проверкой и за первую неделю заметили только то, что вход стал чуть длиннее.
Аудит показывает состояние на даты проверки и не обещает, что дыр больше не появится. Новые уязвимости в плагинах находят постоянно, поэтому регламент обновлений важен не меньше разовой проверки. Платёжную страницу банка я не трогал: она принадлежит банку и в договор не входила.
Договорились о повторной короткой проверке после крупных обновлений и перед следующей большой акцией.
Странное поведение сайта, жалобы покупателей или просто сезон на носу? Напишите мне здесь, на freelance.ru. Проверяю только сайты, владелец которых даёт письменное согласие.