Am Anfang war der Monolith. Softwareentwicklern hat es lange Zeit gute Dienste geleistet und tut dies in einigen Anwendungsfällen immer noch. Doch mit der zunehmenden Zahl an Applications wurde die Entwicklung, Sicherung und Wartung von Monolithen immer schwieriger. Mikrodienste Als Alternative kam der Monolith auf den Plan – der Monolith wird in kleine und autonome Dienste aufgeteilt, die eine einzelne Geschäftsfunktion ausführen und über ein Netzwerk kommunizieren, um die volle Funktionalität der Application bereitzustellen. Anfangs verwendeten Webentwickler SOAP als Kommunikationsprotokoll und XML zum Kodieren von Daten, viele empfanden diese Kombination jedoch als umständlich und langsam. Dies führte zu einer Umstellung auf REST -basierte Architekturen und zur weit verbreiteten Einführung von HTTP und JSON als Protokoll bzw. Methode zur Datenserialisierung.
Doch wie das im Technologiebereich häufig der Fall ist, suchten die Entwickler weiterhin nach noch besseren Möglichkeiten zur Gestaltung von Applications, um beispielsweise die mit der textbasierten Ausrichtung von SOAP und REST verbundenen Einschränkungen zu überwinden. Ein solches System ist gRPC , das Google entwickelt hat, um seine große Palette unabhängiger, autonomer Dienste zu verbinden. gRPC verwendet Protokollpuffer (Protobufs) als plattform- und sprachneutralen Mechanismus zur Serialisierung strukturierter Daten und HTTP/2 als Kommunikationsprotokoll.
Zu den Vorteilen von gRPC gegenüber anderen API-Frameworks zählen der Durchsatz mit geringer Latenz, die Unterstützung mehrerer Sprachen, die kompakte Datendarstellung und das Streaming in Echtzeit. All diese Faktoren machen es besonders geeignet für die Kommunikation zwischen Mikrodiensten und über Netzwerke mit geringem Stromverbrauch und geringer Bandbreite. Die Popularität von gRPC hat in den letzten Jahren deutlich zugenommen, da es den schnelleren und effizienteren Aufbau neuer Dienste mit höherer Zuverlässigkeit und Skalierbarkeit sowie Sprachunabhängigkeit sowohl für Clients als auch für Server ermöglicht.
Ein prominentes Beispiel für die Vorteile von gRPC ist Open Banking , wo Open-Source-Technologien zum Erstellen und Bereitstellen von APIs verwendet werden, sodass externe Entwickler den Kunden einer Bank oder anderer Finanzinstitute zusätzliche Dienste anbieten können. Die gesamte Grundlage des Open Banking basiert auf dem Ideal, Finanzinformationen effektiver und effizienter bereitzustellen. gRPC trägt dazu bei, dieses Ziel zu erreichen, da das kompakte Format der Protokollpuffer und das Multiplexing in HTTP/2 die Übertragung einer bestimmten Nutzlast viel schneller machen als mit REST-APIs: etwa 7-mal schneller beim Empfangen von Daten und 10-mal schneller beim Senden von Daten. Aus diesem Grund nutzen Finanzinstitute gRPC für die Kommunikation zwischen ihren Diensten, um ihre Dienste schneller, effizienter, zuverlässiger und umfangreicher bereitzustellen.
Ein spezieller Anwendungsfall, bei dem die Geschwindigkeit von gRPC einen großen Vorteil darstellt, ist der Kunden Onboarding-Prozess, der im Open Banking ausschlaggebend für den Erfolg ist. Bei anderen API-Frameworks kann das Einrichten eines neuen Kontos sowohl für Finanzinstitute als auch für Kunden mühsam und zeitaufwändig sein. Dank der schnellen Datenübertragung von gRPC können Kunden innerhalb von Minuten ein neues Konto erstellen. Dadurch wird die Kundenzufriedenheit deutlich gesteigert und die Kosten für das Finanzinstitut werden deutlich gesenkt.
Der gRPC-Standard und das Protokollpufferformat sind als Open-Source-Bibliothek implementiert. Protokollpuffer gelten als sicherer gegen Cyberangriffe als andere Datendarstellungen, da der Bibliotheksparser fehlerhafte Anfragen ablehnt und das Verhalten der Bibliothek genauer untersucht.
Es bleiben jedoch einige beunruhigende Angriffsmöglichkeiten gegen gRPC bestehen. Beispielsweise der Parser:
„stream“
„oneOf
“-Verbundtypen und lässt das Vorhandensein mehrerer Felder zu.Ein Angreifer kann diese Lücken im gRPC-Protokoll ausnutzen, um eine Application zu kompromittieren. Protokollpuffer ermöglichen auch die Erstellung von Feldern, die nicht in den Nachrichtendefinitionen definiert sind. Dadurch wird die Erweiterbarkeit des Designs sichergestellt und die Kompatibilität mit zukünftigen erweiterten Versionen einer Nachricht ermöglicht. Allerdings können Applications dadurch auch anfällig für Schmuggelangriffe werden, bei denen Angreifer Felder in ihre Anfragen einbauen, die in der Application nicht explizit als zulässig codiert sind.
NGINX App Protect wurde entwickelt, um moderne gRPC-basierte Applications näher an der Application zu schützen. Dies ermöglicht AppDev-, DevOps- und DevSecOps-Teams, die Application als Code zu verwalten und native Tools zu nutzen.
Beispielsweise stellt NGINX App Protect sicher, dass Finanzinstitute und ihre Dienste den Open-Banking-Standards entsprechen, wenn sie gRPC für ihre Kommunikation zwischen Diensten implementieren. Die Engine von NGINX App Protect führt eine gründliche Prüfung von gRPC-Nachrichten bei Wire-Anfragen durch, analysiert Protokollpuffernachrichten und erkennt schädliche Daten in den Nachrichtenkopfzeilen und Nutzdaten, einschließlich aller verschachtelten und komplexen Datenstrukturen. Die Prüfung wird für jede Anforderung durchgeführt und wendet für jeden API-Aufrufparameter einen Angriffserkennungsmechanismus an.
Mit gRPC-APIs verwenden Sie die gRPC-Schnittstelle, um Sicherheitsrichtlinien in der Typbibliotheksdatei (IDL-Datei) und den Protodefinitionsdateien für Protokollpuffer festzulegen. Wenn die aktualisierten Dateien geladen sind, beginnt NGINX App Protect sofort mit der Anwendung der neuen Sicherheitsrichtlinien, ohne dass Änderungen an der Konfiguration erforderlich sind. gRPC-Prototypendateien werden im Rahmen von CI/CD-Pipelines häufig aktualisiert, sodass Ihre Prozesse durch die Aktualisierung der Sicherheitsrichtlinien weder unterbrochen noch mit zusätzlichem Aufwand verbunden sind und Ihre Applications immer durch die neueste, aktuellste Richtlinie geschützt sind.
NGINX App Protect schützt nicht nur den Ost-West-Verkehr zwischen gRPC-basierten Mikrodiensten, sondern sichert auch den Nord-Süd-Verkehr zwischen Ihren öffentlich zugänglichen Assets.
Während gRPC die Geschwindigkeit, Effizienz und Skalierbarkeit der Service-to-Service- Kommunikation verbessert, ist es von entscheidender Bedeutung, API-Daten (URLs, Header und Payloads) und Application , die gRPC-APIs bereitstellen, zu schützen und zu sichern. Deshalb ist NGINX App Protect für Ihre moderne Application von entscheidender Bedeutung.
Weitere Informationen zu gRPC mit NGINX App Protect finden Sie in unserem Lightboard-Video:
Weitere Informationen zur gRPC-Unterstützung in NGINX App Protect finden Sie in der Dokumentation .
Um NGINX Plus und NGINX App Protect mit Ihren gRPC-APIs auszuprobieren, starten Sie eine kostenlose 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen .
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."