bk99.de entertain the web since 1997

Linux als Interpreter gedacht

Zusammenfassung

Astrid untersucht Malware, die per kexec Linux ersetzt, und deutet den Kernel als Interpreter ausführbarer Formate.

Ideen

  • Ein Shellskript bettet Kernel und initramfs als Base64-Daten ein.
  • kexec startet einen neuen Kernel ohne Firmware-Neustart.
  • Ein minimales initramfs kann seine Umgebung vollständig selbst bestimmen.
  • Shebangs weisen dem Kernel einen Interpreter für Textprogramme zu.
  • Dynamische ELF-Dateien benennen ebenfalls einen Interpreter: den Laufzeit-Linker.
  • Aus Kernelsicht sind Shellskripte und ELF-Dateien Varianten derselben Ausführungsentscheidung.

Einsichten

  • Ausführbarkeit entsteht durch Protokolle zwischen Dateiformat, Kernel und Interpreter.
  • Bootmechanismen können zugleich nützliche Adminwerkzeuge und mächtige Angriffspfade bilden.
  • Vertraute Systemgrenzen verschwimmen, sobald Code seine eigene Laufzeitumgebung ersetzt.

Fakten

  • Das untersuchte Skript enthält rund 20 Megabyte Base64-Daten.
  • Das extrahierte Archiv enthält einen Linux-Kernel und ein init-Shellskript.
  • kexec kann Kernel und initramfs laden und anschließend direkt ausführen.
  • Der ELF-Header kann den dynamischen Linker als Programminterpreter festlegen.

Empfehlungen

  • Analysiere verdächtige Bootartefakte ausschließlich isoliert und ohne produktive Berechtigungen.
  • Beschränke kexec auf Systeme und Rollen, die diese Funktion benötigen.
  • Prüfe bei Ausführungsfehlern Dateiformat, Shebang und dynamischen Linker getrennt.

Referenzen

Originalartikel lesen