Open Source im professionellen Einsatz
Linux-Magazin 09/2007
© Michal Mrozek, Fotolia

© Michal Mrozek, Fotolia

Sicherheitsschwachstellen bei der Installation von proprietärer Software finden

Druckerschwärze

Schwachstellen im Quellcode finden ist schon schwierig - richtig heikel wird es bei Closed-Source-Software. Der Fall der Schwachstelle in einem Druckertreiber zeigt exemplarisch, wie sicherheitsbewusste Administratoren diabolische Details deutlicher Dummheiten detektieren.

663

Ein Gespenst geht um in der Unix-Welt, das Gespenst immer neuer SUID-Vorfälle. Dieses Flag sorgt dafür, dass Programmdateien unter den Rechten des Besitzers und nicht unter denen des ausführenden Anwenders laufen. Dadurch erhalten auch normale Benutzer vorübergehend Root-Rechte. Beispielsweise muss das »ping«-Kommando besondere Pakete kreieren, was einem Benutzer gemeinhin verwehrt bleibt. Daher hat das Tool ein SUID-Flag und gehört dem User Root. Zu dessen Sonderrecht gehört aber auch die Pflicht, seine Rechte nicht für andere Zwecke zu missbrauchen oder dies dem Anwender zu gestatten.

Solange die Befehle ihre ursprüngliche Funktion beibehalten, ist die Welt in Ordnung. Doch wehe, ein Angreifer lockt die Werkzeuge vom rechten Pfad. Manche Programme erweisen sich hier als viel zu leichte Gegner. So geschehen beim letzten Installationstool für Samsung-Drucker: Das gut gemeinte Programm verstößt gegen die einfachsten Grundprinzipien sicherer Software und erweist sich im Testlabor als unerwartetes Risiko.

Samsung hat offenbar erkannt, dass auch Anhänger freier Software potenzielle Kunden seiner Drucker sind. Das Unternehmen bietet daher mit dem Unified Linux Driver ein Hilfsmittel an, das die Angebotspalette seiner Drucker mit dem Linux-Drucksystem Cups vertraut macht [1]. Das gut 20 MByte große Tar-Archiv liegt auf der Firmenwebsite zum Download bereit. Nach dem Entpacken, so die Anleitung, sei »./cdroot/autorun« als Root auszuführen.

Root-Gefahr

Hier klingeln bei einem besorgten Administrator schon die ersten Glöckchen, wenn sein Gehörgang nicht durch zu viele gerade absolvierte Installationsrunden, die alle das Gleiche forderten, betäubt wurde. Immerhin räumen die Root-Rechte dem Installer umfassende Vollmachten auf dem System ein. Um das Klingeln abzustellen, empfiehlt es sich, die Installer-Routinen zu inspizieren. Dabei fällt auf, dass dieses Programm zunächst aus Shellskripten besteht. Um den Ausführungspfad unter die Lupe zu nehmen, hilft es, folgendes Kommando zu Beginn des Skripts einzufügen:

set -x

Fortan protokolliert das Tool alle Shellaufrufe auf der Standardausgabe. Eine rasche Durchsicht offenbart, dass der Installer zunächst Pfade untersucht, die Linux-Distribution detektiert und einige Systembibliotheken substituiert.

Hier stutzt jeder Admin: Als wäre eine ganze Dekade an Softwareverteilung mit RPM- und Debian-Paketen aus dem Lauf der Geschichte radiert worden, kopiert der Installer eine ihm genehme Version der »libstdc++« mitten in die Systemverzeichnisse und umgeht somit das Paketmanagement. Damit schrumpft die Chance auf eine spätere Deinstallation erheblich und sie entzieht sich geordneten Sicherheitsupdates.

Closed-Source-Teil

Die letzten Zeilen des Protokolls offenbaren noch, dass das Skript nach den Installationen von Ghostscript, Scanner-Verwaltung Sane, Drucksystem Cups und Open Office sucht. Danach startet es den grafischen Teil des Installers, zu dem keine Quellen vorliegen. Unklar bleibt zunächst, wozu das Skript nach den erwähnten Anwendungen sucht. Das weckt die detektivische Neugier des Systemverwalters.

Um trotz fehlender Quellen hinter die Kulissen zu schauen, klemmt sich »strace« [2] in die Schnittstelle zwischen Userspace und Kernel. Das Werkzeug protokolliert alle Systemaufrufe, die ein Programm auslöst. Folgender Aufruf startet die Analyse:

strace -o out.txt -f ./cdroot/autorun

Die Option »-o« speichert die entstehende Datenflut in die Datei »out.txt«. Da der Installer vermutlich mehrere Prozesse startet, protokolliert »strace« mit der Option »-f« auch die Aufrufe aller Kindprozesse.

Die Ausführung des Installers ficht die Überwachungsmaßnahmen nicht an. Im verwendeten Kubuntu-Testsystem führt ein Wizard (Abbildung 1) komfortabel durch die Auswahl des Druckermodells sowie der Anschlüsse und macht diese erfolgreich beim Drucksystem Cups bekannt. Die eigentlichen Probleme bleiben im Verborgenen. Nun gilt es, mögliche Schwachstellen im Heuhaufen der Log-Einträge zu lokalisieren.

Abbildung 1: Dass der grafische Installer Berechtigungen verbiegt, kündigt er ironischerweise sogar als »Fixing file ownerschip and permissions« an.

Von den gut 1,6 Millionen Protokollzeilen interessieren nur jene, die sich nachhaltig auf das Gesamtsystem auswirken. Besonderen Argwohn wecken Änderungen der Zugriffsrechte, gerade wenn die geänderten Dateien nicht zum Drucksystem gehören (Abbildung 2). Eine Suche nach dem Namen des Systemaufrufs »chmod« liefert gut 350 Treffer, die meisten davon sind aber unkritisch.

Abbildung 2: Strace und Grep decken auf: Hier setzt der Installer eigenmächtig SUID-Bits auf Programme, die damit zu universellen Einbruchstools mutieren.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Tunnelbaustelle

    Ein virtuelles privates Netzwerk zu verwenden gehört für viele Netznomaden zum Alltag. Eine VPN-Konfiguration erfordert viel Detailwissen, und den Tunnelaufbau erledigen oft noch handgestrickte Shellskripte. Mit Kvpnc sollen sich Tunnel einfach aufbauen lassen.

  • Einbruch für den Bund

    Wie ginge ein Sicherheitsexperte vor, wenn ihn das Bundeskriminalamt darum bitten würde, einen Linux-fähigen Bundestrojaner zu projektieren? Wer meint, das Unterfangen wäre schwer und Linux per se sicher, möge die folgenden zehn Punkte studieren. Wer etwas gegen Schäuble- und Malware tun will, auch.

  • Trace analysiert Vorgänge im Linux-Kernel

    Die Kernelentwickler Thomas Gleixner und Ingo Molnar haben mit dem Tool Trace eine neue Möglichkeit vorgestellt, die Vorgänge im laufenden Linux-Kernel zu untersuchen.

  • Strace 4.8 unterstützt AArch64

    Das freie Tracing-Tool Strace ist in der aktualisierten Version 4.8 erschienen.

  • Tux liest

    Subversion hat das Zeug dazu, CVS als Versionskontrollsystem abzulösen. Das Team hat ein Handbuch geschrieben, um Anfänger und Umsteiger ins neue System einzuführen. Das Drucksystem Cups ist bereits Standard. Hauptentwickler Michael R. Sweet verschafft mit seinem umfassenden Buch Durchblick.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.