Решение
На первом этапе команда изучила архитектуру приложения, предоставленную заказчиком: основные микросервисы, прокси, точки входа, взаимодействие frontend- и backend-компонентов, а также логику обмена с платформой.
После этого была проведена сессия погружения в продукт. Клиент продемонстрировал работу приложения, основные пользовательские сценарии, бизнес-логику сервиса, роли пользователей и ценность инфраструктуры. Это позволило выстроить тестирование не только вокруг технических проверок, но и вокруг реальных сценариев использования системы.
Далее специалисты приступили к анализу веб-приложения по модели GrayBox. Проверялись механизмы регистрации и входа, восстановление доступа, ввод СМС-кодов, разграничение прав, обработка пользовательского ввода, загрузка файлов, работа с объектами инфраструктуры и взаимодействие между пользователями разных ролей.
Отдельный блок работ был посвящен анализу API и обмена данными. Так как приложение использовало платформу с нестандартным протоколом взаимодействия, команда разработала собственный плагин для анализа сообщений. Это позволило разбирать структуру WebSocket-обмена, исследовать параметры запросов, повторять действия пользователей и проверять, можно ли через протокол получить несанкционированный доступ к данным или функциям.
С учетом IoT-специфики решения специалисты проверяли не только классические веб-уязвимости, но и риски, связанные с управлением устройствами. Для этого использовались сценарии с виртуальными и физическими устройствами: проверялось, можно ли повлиять на объекты, доступ к которым не должен быть разрешен, изменить параметры, получить данные других пользователей или выполнить действия вне предусмотренной бизнес-логики.
В ходе тестирования были выявлены уязвимости разного уровня критичности, включая SQL-инъекции, небезопасное использование MQTT и WebSocket, отсутствие ограничений на число попыток входа и ввода СМС-кода, XSS, небезопасную загрузку файлов, расширенный вывод ошибок, CSS-инъекцию, SSRF и перечисление существующих пользователей.
Все находки были проанализированы с точки зрения практической эксплуатации. Команда показывала не просто факт наличия уязвимости, а возможные последствия для приложения: компрометацию данных, обход авторизации, атаку на пользователей, злоупотребление IoT-протоколами, влияние на контур и риски для доверия к сервису.