Blinde Aufzählung von gRPC-Diensten
Ein Black-Box-Dienst mit einem schlecht dokumentierten und verschleierten SDK veranlasste die Entwicklung von grpc-scan. Das Tool automatisiert die Aufzählung von gRPC-Diensten, indem es Fehlermeldungsvariationen ausnutzt, die durch ungültige Anfragen verursacht werden, da Standard-Discovery-Methoden nicht verfügbar sind. Die binäre Natur von gRPC und die Groß-/Kleinschreibung machen die manuelle Aufzählung schwierig, da die genauen Dienst- und Methodennamen sowie korrekt serialisierte Nachrichten benötigt werden. Das Tool identifiziert das gRPC-Protokoll und generiert wahrscheinliche Dienst- und Methodennamenkombinationen basierend auf beobachteten Mustern. Es identifiziert subtile Unterschiede in den Fehlercodes, die von verschiedenen gRPC-Implementierungen zurückgegeben werden. Das Tool multiplexiert Anfragen, um die Scangeschwindigkeit zu erhöhen, indem es mehrere Verbindungen mit Diensten herstellt. Pentests zeigen oft eine Dienstausweitung durch Migrationen, eine Methodenvermehrung mit inkonsistenter Authentifizierung und eine unerwartete Offenlegung interner Dienste. Ältere Dienste weisen oft keine Sicherheitskontrollen auf, die in neueren Implementierungen vorhanden sind, was zu Schwachstellen führt. Die Organisationsgeschichte wird auch durch die Erkennung von Paket-Namespaces aufgedeckt, wodurch unterschiedliche Sicherheitsannahmen offengelegt werden. Zu den Einschränkungen gehören die Unfähigkeit, automatisch spezifische Protobuf-Strukturen für Dienste zu erstellen, und ein aktueller Fokus auf unäre Aufrufe.