Слепое перечисление gRPC-серви... Заметка

Слепое перечисление gRPC-сервисов

Сервис "черный ящик" с плохо документированным и запутанным SDK подтолкнул к созданию grpc-scan. Инструмент автоматизирует перечисление gRPC-сервисов, используя вариации сообщений об ошибках, вызванные недействительными запросами, поскольку стандартные методы обнаружения недоступны. Бинарная природа gRPC и требования к регистру делают ручное перечисление сложным, требуя точных названий сервисов и методов, а также правильно сериализованных сообщений. Инструмент снимает отпечатки протокола gRPC и генерирует вероятные комбинации имен сервисов и методов на основе наблюдаемых шаблонов. Он выявляет тонкие различия в кодах ошибок, возвращаемых различными реализациями gRPC. Инструмент мультиплексирует запросы для повышения скорости сканирования, устанавливая несколько соединений с сервисами. Пентесты часто выявляют разрастание сервисов в результате миграций, распространение методов с непоследовательной аутентификацией и неожиданное раскрытие внутренних сервисов. Более старые сервисы часто не имеют средств защиты, присутствующих в более новых реализациях, что приводит к уязвимостям. История организации также раскрывается посредством обнаружения пространства имен пакетов, выявляя различные предположения о безопасности. Ограничения включают невозможность автоматического создания конкретных структур protobuf для сервисов и текущую ориентацию на унарные вызовы.