Пентест веб-приложений
Проверяем, можно ли получить доступ к чужим данным и функциям вашего приложения. Работаем руками: ищем ошибки в правах доступа, сессиях и бизнес-логике — то, что не находит ни один сканер.
Кому это нужно
Специалист действует с позиции внешнего пользователя, авторизованного клиента или сотрудника с ограниченными правами и пытается получить доступ к чужой учётной записи, прочитать или изменить чужие данные, повысить привилегии, обойти обязательный этап операции, изменить сумму или статус транзакции, вызвать скрытые функции. Всё — в заранее согласованных границах.
- Готовите приложение к запуску или к передаче крупному заказчику.
- Серьёзно изменили архитектуру, добавили роли или запустили новый API.
- Внедрили оплату или другие финансовые операции.
- Изменили механизм входа: свой, через SSO или через внешнего провайдера.
- Разбираетесь после инцидента или готовитесь к аудиту.
- Хотите держать регулярный контроль защищённости, а не проверяться раз в жизни.
Что мы проверяем
В базовом чек-листе — 83 проверки в восьми группах. Программа под конкретное приложение шире: в неё добавляются сценарии злоупотребления именно вашими функциями, которых нет ни в одном чек-листе.
Регистрация, вход, выход, восстановление пароля и смена контактных данных — всё, через что человек попадает в приложение.
- защита от перебора паролей и одноразовых кодов
- возможность определить существующих пользователей
- обход многофакторной аутентификации
- ошибки в восстановлении доступа
- смена почты или телефона без подтверждения
- обработка заблокированных и удалённых аккаунтов
- внешние провайдеры аутентификации
- OAuth и OpenID Connect
- единый вход в несколько систем
Как приложение создаёт, хранит и, главное, отзывает пользовательские сессии.
- завершение сессии после выхода
- срок действия токенов
- возможность повторно использовать токен
- отзыв активных сессий после смены пароля
- защита cookie
- фиксация и перехват сессии
- обработка JWT
- смена сессии после повышения привилегий
- хранение токенов в браузере
Может ли пользователь добраться до данных и функций, которые его роли не положены. Здесь находится самая частая критичная ошибка.
- доступ к объектам другого пользователя
- изменение и удаление чужих данных
- вызов административных функций
- повышение привилегий
- обход ограничений прямым запросом к API
- IDOR
- ошибки серверной авторизации
- сохранение старых прав после смены роли
- доступ к скрытым страницам и методам
Ошибки, которые зависят от устройства конкретного продукта. Автоматические инструменты их не находят: сканер не знает, что у вас считается нормальной операцией.
- изменение цены, суммы, количества или лимита
- пропуск обязательного шага
- выполнение этапов в неправильном порядке
- повторное использование одноразовой операции
- повторная отправка платежа или заявки
- обход подтверждения или согласования
- некорректная работа скидок, бонусов и промокодов
- одновременное выполнение конфликтующих операций
- смена статуса объекта без нужных прав
- доверие к данным, пришедшим из браузера
- обход ограничений, реализованных только в интерфейсе
Классические технические уязвимости — то, что чаще всего попадает в новости об утечках.
- SQL-инъекции и другие виды инъекций
- межсайтовый скриптинг
- выполнение серверных команд
- серверные запросы к произвольным адресам
- небезопасная обработка XML
- подмена путей к файлам
- небезопасная десериализация
- подделка межсайтовых запросов
- обход серверной проверки данных
- небезопасные перенаправления
- раскрытие служебной информации
Загрузка и скачивание — участок, где ошибка чаще всего приводит к выполнению чужого кода.
- ограничения на тип и размер файла
- соответствие расширения реальному содержимому
- возможность загрузить исполняемый код
- обработка изображений, документов и архивов
- доступ к чужим файлам
- возможность перезаписи данных
- предсказуемые ссылки на скачивание
- временные файлы
- работа с внешними хранилищами
Проверяем как часть приложения или как самостоятельный объект — интерфейс живёт своей жизнью и часто защищён хуже интерфейса пользователя.
- аутентификация и авторизация методов
- доступ к объектам по идентификатору
- передача дополнительных параметров
- массовое присваивание полей
- раскрытие избыточных данных в ответах
- ограничения частоты запросов
- обработка ошибок
- старые версии API
- недокументированные методы
- REST
- GraphQL
- WebSocket
- интеграции с внешними сервисами
Серверная часть и то, что приложение отдаёт в браузер.
- настройки веб-сервера
- HTTP-заголовки безопасности
- Content Security Policy
- CORS
- параметры TLS
- кэширование чувствительных данных
- отладочные компоненты
- раскрытие конфигурации в JavaScript
- исходные карты
- уязвимые библиотеки
- сообщения об ошибках
- доступные административные интерфейсы
Подберите формат и объём
Отметьте, как устроено ваше приложение, — покажем подходящий формат, срок и порядок цены. Это ориентир для планирования, а не коммерческое предложение.
Расчёт подставится в форму — вам останется оставить контакты.
Форматы тестирования
Black box
Ни исходного кода, ни документации, ни учётных записей. Модель внешнего атакующего: проверяем публичную часть приложения и доступные извне точки входа.
Grey box
Вы даёте тестовые учётные записи всех ролей и базовую информацию о системе. Так проверяются права доступа, API и бизнес-логика — подходит большинству приложений.
White box
Добавляются архитектурная документация, конфигурация, исходный код и общение с разработчиками. Позволяет дойти до причины проблемы, а не только до её проявления.
Как проходит тестирование
Определяем адреса приложения и API, роли пользователей, тестовые учётные записи и допустимые методы. Отдельно договариваемся о среде: рабочая система, стенд или копия.
Разбираемся, что приложение делает, какие в нём роли, параметры и связи с внешними системами. Из этого складывается программа тестирования именно под ваш продукт.
Инструменты закрывают типовые ошибки и большие объёмы параметров. Каждое срабатывание проверяется руками: неподтверждённое в отчёт не попадает.
Аутентификация, сессии, права доступа, бизнес-логика, API и обработка данных. Опираемся на OWASP Web Security Testing Guide и применимые требования ASVS, но чек-листом не ограничиваемся.
Для каждой уязвимости определяем, что сможет сделать атакующий и какие данные окажутся под угрозой. Работа с реальными данными — только в согласованном объёме.
Условия эксплуатации, доказательства, последствия и способы исправления. О критичных проблемах сообщаем сразу после подтверждения, не дожидаясь отчёта.
После исправлений повторяем соответствующие тесты и фиксируем новый статус каждой проблемы. Повторная проверка входит в стоимость работ.
Типовая рекомендация описывает общий принцип, и разработчику всё равно приходится самому искать способ исправления. Мы пишем иначе: с учётом причины уязвимости, архитектуры, языка и фреймворка, модели авторизации и уже работающих защитных механизмов. Где это уместно, даём два пути — временную меру, чтобы быстро снизить риск, и системное исправление причины, — и указываем, где именно должно появиться изменение: в серверной логике, интерфейсе, API-шлюзе, базе, веб-сервере или системе управления доступом. После отчёта можем разобрать сложные места вместе с вашими разработчиками.
Что вы получите
- Резюме для руководства: уровень риска и главные выводы на одной странице.
- Описание области и методики тестирования.
- Перечень подтверждённых уязвимостей с оценкой критичности и описанием последствий.
- Доказательства, примеры запросов и инструкции по воспроизведению.
- Рекомендации под ваш стек, а не общие формулировки.
- Критерии успешного исправления и приоритетный план работ.
- Результаты повторной проверки.
Сроки и стоимость
Цена зависит от размера приложения, количества ролей, числа методов API и сложности бизнес-сценариев. Мобильные приложения и аудит исходного кода — на странице анализа защищённости приложений.
Почему Oreol Security
Лицензии ФСТЭК и ФСБ России работаем с конфиденциальной информацией и криптографией легально.
16 лет в информационной безопасности, 200+ проектов: банки, промышленность, энергетика, госсектор.
Своя команда из 30+ специалистов — не перепродаём чужие услуги.
Отчёты, которые можно применять: конкретные шаги, приоритеты и перепроверка после исправлений.
Частые вопросы
Нужны ли тестовые учётные записи?
Можно ли тестировать рабочее приложение?
Нужно ли давать исходный код?
Проверяете ли вы API отдельно?
Используете ли вы OWASP ASVS?
Что происходит при обнаружении критической уязвимости?
Чем это отличается от сканирования?
Связанные услуги
Анализ защищённости приложений
Мобильные приложения по OWASP MASVS и аудит исходного кода — если проверять нужно не только веб.
Пентест внешнего периметра
Всё, что доступно из интернета: активы, сервисы, конфигурации и цепочки атак.
DevSecOps и безопасная разработка
Чтобы уязвимости не появлялись заново: аудит процессов и CI/CD, внедрение SAST, DAST и SCA.
Расскажите о задаче
Опишите задачу в двух словах — вернёмся с уточняющими вопросами и предварительной оценкой в течение рабочего дня. При необходимости подпишем NDA.
Успешно!
Ваш запрос успешно отправлен! В ближайшее время с вами свяжется представитель компании и ответит на все вопросы.