- Ein sicheres und zuverlässiges Tool zur automatischen Instrumentierung für Go-Anwendungen, entwickelt von Datadog
- Fügt Instrumentierung zur Compile-Zeit ein und minimiert so den Runtime-Overhead
- Schützt Anwendungen durch RASP-Funktionen
- Modifiziert den Quellcode während des Compile-Prozesses und fügt automatisch Instrumentierung für Datadog-APM-Tracing ein
- Schützt Anwendungen mit der Exploit-Prevention-Funktion von Datadog Application Security Management vor gängigen Schwachstellen
Funktionsweise
- Es integriert sich in die Go-Toolchain und analysiert sowie modifiziert den Quellcode während des Compile-Prozesses.
- Es manipuliert den Code auf Ebene des Abstract Syntax Tree (AST), sodass der Go-Compiler alle Änderungen validiert und Typprüfungen durchführt.
- Es verhindert Fehler, die beim direkten Modifizieren kompilierter Binärdateien entstehen können, und erlaubt gleichzeitig uneingeschränkten Zugriff auf das gesamte Verhalten der Anwendung.
- Der modifizierte Code durchläuft die Optimierungsschritte des Go-Compilers, wodurch er optimiert und der Runtime-Overhead reduziert wird.
- Es fügt in den modifizierten Quellcode die Go-
//line-Pragma-Direktive ein, damit sich Zeilennummern durch die Änderungen nicht verschieben und Stack-Traces aus der instrumentierten Anwendung auf die korrekten Positionen im ursprünglichen Quellcode verweisen.
Warum Instrumentierung zur Compile-Zeit verwenden?
- Sicherheit, Zuverlässigkeit, Datenqualität: Instrumentierung zur Compile-Zeit erzeugt im Vergleich zu Binary Patching oder eBPF sicherere und verlässlichere Daten.
- Automatisierung: Binary Patching und eBPF bieten ein hohes Maß an Automatisierung, aber Orchestrion erfordert Änderungen am Build-Prozess und eine erneute Bereitstellung der Anwendung.
- Performance-Overhead: eBPF kann durch Kontextwechsel zwischen Kernel- und User-Space Performance-Overhead verursachen. Orchestrion fügt Instrumentierung zur Compile-Zeit ein und minimiert so den Runtime-Overhead.
- Unterstützte Umgebungen: eBPF ist auf Linux-Umgebungen beschränkt, während Orchestrion verschiedene Umgebungen unterstützt.
- Gesamtfunktionalität: eBPF ist funktional eingeschränkt, aber Orchestrion arbeitet auf Code-Ebene und bietet dadurch mehr Funktionen.
Orchestrion für Sicherheit
- Durch die Arbeit auf Code-Ebene implementiert es RASP-Funktionen, indem es Instrumentierung einfügt, die den Kontrollfluss des Programms verändern kann.
- Es kann Anwendungen selbstständig vor gängigen Schwachstellen wie SQL-Injection oder Local File Inclusion schützen.
- Es kann bestimmte APIs vollständig durch andere APIs ersetzen, sodass Entwickler nicht daran denken müssen, Context-Werte durch alle Schichten der Business-Logik zu übergeben, um Tracing-Context-Chaining zu ermöglichen.
Noch keine Kommentare.