Кейсы
Типовые сценарии, где легальная проверка помогает найти уязвимости до злоумышленников и закрыть их по приоритетам.
Злоупотребление регистрацией и почтовыми формами
Наблюдаемый кейс: злоумышленник указывает адрес жертвы при регистрации, а рекламный или фишинговый текст со ссылкой помещает в поле имени либо другое пользовательское поле. Сервис автоматически отражает введенный текст в приветственном письме или уведомлении и отправляет его от доверенного домена. В отдельных вариантах одновременно создается посторонний аккаунт, выдаются код доступа и персональная ссылка. Возможная эксплуатация — массовая доставка мошеннических сообщений, расход лимитов транзакционной почты, ухудшение репутации домена, жалобы и блокировка почтового провайдера. Рекомендации: double opt-in до отправки пользовательского содержимого, строгая серверная валидация, запрет URL и управляющих символов в имени, фиксированные адресаты и заголовки, CAPTCHA, rate limit по IP и email, отзыв неподтвержденных аккаунтов, корректный SPF/DKIM/DMARC alignment, журналирование и алерты по аномалиям, bounce и complaint rate.
Веб-приложение с личным кабинетом
Обнаружено: сервер принимал идентификатор объекта из запроса, но не проверял, принадлежит ли объект текущему пользователю. Обычная учетная запись могла получить доступ к данным другого клиента; в отдельных полях также сохранялся пользовательский HTML, который отображался сотруднику без безопасного экранирования. Риск подтвержден на специально созданных тестовых объектах без чтения или изменения реальных данных. Возможные последствия — нарушение конфиденциальности, изменение чужих записей, сохраненный XSS и компрометация привилегированной сессии. Рекомендации: проверять права на каждый объект на сервере, применять deny by default, экранировать вывод, внедрить CSP, журналировать обращения к чувствительным объектам и добавить regression-тесты для всех ролей.
API интернет-сервиса
Обнаружено: один из API-методов проверял наличие действующего токена, но не проверял право пользователя на запрошенный объект и принимал лишние поля вне документированной схемы. Последовательная замена идентификатора позволяла обратиться к тестовому объекту другой учетной записи, а отсутствие достаточного rate limit упрощало массовый перебор. Возможные последствия — утечка или изменение чужих данных, несанкционированные операции и истощение ресурсов. Рекомендации: авторизация на уровне каждого endpoint и объекта, строгие схемы входных данных, непредсказуемые идентификаторы как дополнительная мера, квоты по пользователю и IP, обезличенные ошибки, аудит событий и автоматические negative-тесты API.
Внешний периметр компании
Обнаружено: в Интернете оставались доступными административный интерфейс и устаревший тестовый сервис, отсутствовавшие в актуальном реестре активов. Панель управления не была ограничена VPN или allowlist, а версия тестового компонента содержала известные исправленные уязвимости. Дополнительно выявлены слабые настройки TLS и неполная защита почтового домена. Возможные последствия — подбор учетных данных, эксплуатация известной уязвимости, захват забытого ресурса и использование домена в мошеннических рассылках. Рекомендации: закрыть управление за VPN, удалить неиспользуемый сервис, обновить компоненты, включить MFA, усилить TLS и SPF/DKIM/DMARC, вести постоянный asset inventory и отслеживать появление новых внешних узлов.
Повторная проверка исправления
Первичная находка: пользователь с минимальными правами мог обратиться к тестовому объекту другой учетной записи из-за отсутствующей серверной проверки владельца. После патча прямой запрос был заблокирован, но повторная проверка обнаружила аналогичный обход через связанный endpoint, который не использовал общую политику авторизации. Исправление признано частичным до закрытия второго пути. После централизации проверки прав оба варианта перестали работать, а легитимные операции сохранились. Итоговый статус — устранено. Рекомендации: единая middleware-политика авторизации, regression-тесты для прямых и связанных маршрутов, привязка доказательств к версии релиза и обязательный retest для критичных находок.