5 Punkte von lemonmint 2024-12-11 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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.

Noch keine Kommentare.