Énumération aveugle des services gRPC
Un service boîte noire avec un SDK mal documenté et obscurci a motivé la création de grpc-scan. L'outil automatise l'énumération des services gRPC en exploitant les variations des messages d'erreur causées par des requêtes invalides, car les méthodes de découverte standard ne sont pas disponibles. La nature binaire de gRPC et ses exigences sensibles à la casse rendent l'énumération manuelle difficile, nécessitant les noms exacts des services et des méthodes, ainsi que des messages correctement sérialisés. L'outil identifie le protocole gRPC et génère des combinaisons probables de noms de services et de méthodes basées sur des modèles observés. Il identifie les différences subtiles dans les codes d'erreur renvoyés par différentes implémentations gRPC. L'outil multiplexe les requêtes pour améliorer la vitesse de balayage en établissant plusieurs connexions avec les services. Les pentests révèlent souvent une prolifération de services due aux migrations, une prolifération de méthodes avec une authentification incohérente et une exposition inattendue de services internes. Les anciens services manquent souvent des contrôles de sécurité présents dans les implémentations plus récentes, ce qui entraîne des vulnérabilités. L'historique organisationnel est également révélé via la découverte d'espaces de noms de packages, exposant des hypothèses de sécurité variables. Les limitations incluent l'incapacité de créer automatiquement des structures protobuf spécifiques pour les services, et une focalisation actuelle sur les appels unitaires.