Sicherheitsfehler in ldd
Dienstag, 27. Oktober 2009 um 07:45 Uhr

Der Befehl "ldd" gehört bei Sysadmins (also Admins, die ganze Systeme betreuen) zum Alltag. Aber auch Forensiker nutzen den Befehl gerne, denn er zeigt alle nötigen Bibliotheken an die ein Programm zum laufen benötigt. Es arbeitet also genauer als z.B. eine reine Paketverwaltung.

Nun ist ldd aber selbst ein Shell-Programm welches mithilfe eines kleinen Tricks den ELF-Loader dazu bringt das Programm zu laden, aber nicht auszuführen. Hierbei vermutet man noch nichts schlimmes. Ausser man weiß, dass es Möglichkeiten gibt einem Programm zur Kompiler- (genauer zur Linker-)Zeit einen eigenen Loader mit zugeben. Dieser Loader wird vom ELF-Loader in jedemfall ausgeführt.
Und im Zweifelsfall wird dieser Loader-Teil dann mit root-Rechten ausgeführt...

Folgende Scenarien könnten also der Horror jedes Admins sein:

  • Ein so kompiliertes Programm wird im /tmp-Verzeichnis entdeckt. Um herraus zufinden, ob das Programm Bösartig ist oder nicht, untersucht es der Admin an Ort und Stelle mit einigen Tools. Darunter ldd.
  • Ein böser Bube baut sich ein solches Programm und beschwert sich bei seinem Sysadmin (da er keine root-Rechte auf seinem Rechner hat), dass es nicht läuft weil irgendeine Bibliothek fehlt. Der Admin versucht rauszufinden welche Bibliothek er nachinstallieren muss und gibt so unbemerkt die root-Rechte ab.