2092954

Schwachstellen in OS X mit osquery aufspüren

17.08.2015 | 10:00 Uhr |

Sicherheitslücke in OS X: Ein Facebook-Tool für den Mac zeigt, ob Schlüsselbund und Sandbox bereits manipuliert wurden. So geht's.

Luyi Xing, Doktorand aus Indiana, hat vor Kurzem ein Paper veröffentlicht, in welchem er diverse Schwachstellen innerhalb von OS X aufdeckt . Diese strecken sich auf Passwörter und App-Inhalte aus. Mit dem von Facebook-Entwicklern programmierten Tool osquery lassen sich die Gefahren aufdecken und eventuell beheben. OS X hat mit Sandboxing und der Schlüsselbundverwaltung zwei Funktionen, die das Betriebssystem sicherer machen sollen. Doch wie so oft sind es die vermeintlichen Helfer, die am ehesten von Angreifern ins Visier genommen werden.

Gefahren des Passwort-Diebstahls

Apple stellt innerhalb von OS X das Dienstprogramm Schlüsselbund zur Verwaltung von Passwörtern zur Verfügung. In diesem speichern Anwendungen Kontrolllisten (ACLs) und andere Passwörter. Ein Eintrag legt also fest, welcher Benutzer auf welche Bereiche der Anwendung zugreifen darf, und mit welchem Passwort dieser angemeldet ist.

Dabei trägt sich eine App in den meisten Fällen selbst als einzige Berechtigte in den Schlüsselbund ein. Damit können in der Anwendung gespeicherte Passwörter auch nur von der Anwendung selbst ausgelesen werden. Will ein anderes Programm den Schlüsselbund-Eintrag lesen, wird diese anhand der ACL abgelehnt.

Applikationen können laut Xings Paper jedoch Einträge löschen, selbst wenn diese nicht der Eigentümer der ACL sind. Ein Angreifer kann also mit einer anderen App einen Eintrag entfernen und mit den selben Werten wieder anlegen. Der einzige Unterschied: Er hinterlegt sich selbst auch noch in der ACL. Alle zukünftigen Passwort-Eingaben können vom Angreifer nun mitgelesen werden.

Wie spüre ich infizierte Einträge auf?

Facebook hat im letzten Jahr ein Kommandozeilentool mit dem Namen osquery veröffentlicht. Dieses richtet sich vor allem an fortgeschrittene Anwender. Aber auch Neulinge können damit herumspielen, denn: Die Anwendung selbst führt keine Änderungen am System durch, sondern bietet nur eine Schnittstelle zum Durchsuchen an.

Die Installation erfolgt hierbei über Homebrew , einer Art von Paketmanager, der Kommandozeilenapps unter OS X installiert. Öffnen Sie dazu das Terminal und geben folgenden Befehl ein:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Anschließend lässt sich mit den Befehlen ‘brew update’ und anschließend ‘brew install osquery’ der Facebook-Helfer installieren. Öffnen lässt sich dieses anschließend mit dem Befehl 'osqueryi'. Es erscheint eine Eingabeaufforderung, die auf SQL Befehle wartet. mit einem ‘.quit’ schließt sich die Anwendung wieder.

Das Absetzen und Aufspüren von Befehlen selbst hängt von der Erfahrung des Nutzers ab. Um infizierte ACL-Einträge zu finden, hat Facebook dieses Tool erweitert, und eine Beispielabfrage veröffentlicht. Versierte Anwender können in der Konfigurationsdatei ein Intervall für diesen Befehl erstellen , sodass dieser ständig im Hintergrund abläuft und Gefahren schneller erkennt. Die Beispiel-Abfrage lautet wie folgt:

select label, authorizations, path from keychain_acls where label != '' and path != '';
Eine Liste aller im Schlüsselbund hinterlegten Einträge erhält man nach einem Select auf die Tabelle keychain_acls. Die Spalte Authorizations zeigt hier die ACL-Liste an. Hier können sich nicht vertrauenswürdige Anwendungen eingeschlichen haben.
Vergrößern Eine Liste aller im Schlüsselbund hinterlegten Einträge erhält man nach einem Select auf die Tabelle keychain_acls. Die Spalte Authorizations zeigt hier die ACL-Liste an. Hier können sich nicht vertrauenswürdige Anwendungen eingeschlichen haben.

Sicherheitslücke Nr. 2: Die App Sandbox

Ein weiteres Eintrittstor ist der sogenannte Sandbox-Mechanismus in OS X . Eine Anwendung muss sich mit einer eindeutigen Nummer (BID) registrieren, um Sandboxing verwenden zu können. Diese BID stellt sicher, dass Dateien auch nur von der registrierten Anwendung ausgelesen werden. Es besteht jedoch auch die Möglichkeit, sogenannte Sub-Targets zu erstellen. Für diese Unterordner muss keine eindeutige BID erzeugt werden.

Anwendungen mit der gleichen BID für einen bestimmten Unterordner haben anschließend Zugriff auf diesen, und können dort Dateien auslesen und speichern. Eine Abfrage innerhalb von osquery auf die Tabelle sandboxes gibt Aufschluss darüber, ob mehrere Hersteller die gleiche BID verwenden. Der Beispiel-Befehl für alle versierten Anwender lautet wie folgt:

select label,user, bundle_path from sandboxes where bundle_path like '%.app' order by bundle_path;
Mit einer Abfrage auf die Sandboxes-Tabelle zeigt die Ausgabe alle hinterlegten BIDs im System an. Ist hinter einem Label eine nicht bekannte Anwendung hinterlegt, so ist dies ein gefährliches Zeichen.
Vergrößern Mit einer Abfrage auf die Sandboxes-Tabelle zeigt die Ausgabe alle hinterlegten BIDs im System an. Ist hinter einem Label eine nicht bekannte Anwendung hinterlegt, so ist dies ein gefährliches Zeichen.

Sicherheitslücke Nr.3: Scheme hijacking

Zu guter Letzt macht Luyi Xing auf das sogenannte Scheme hijacking aufmerksam. Apps innerhalb von OS X haben sogenannte URL-Präfixe. Für Wunderlist wäre dies wunderlist://. Diese sind im System hinterlegt. Wenn ein Link oder andere Einträge diesen Präfix aufweisen, versucht OS X die im System hinterlegte App zu öffnen.

Eine Anwendung, die zuerst das bestimmte Scheme (also wunderlist:// zum Beispiel) im System hinterlegt, kann sich als Anwendung dahinter eintragen, und bleibt für immer dessen Eigentümer. Dadurch können sich infizierte Apps als andere App ausgeben, und Daten von anderen Anwendungen entgegennehmen. Xing war es so möglich, an Google Benutzerdaten über das Single-Sign-On Verfahren zu gelangen, da er sich als Wunderlist App ausgegeben hat.

Eine Abfrage innerhalb osquery auf die Tabelle Schemes zeigt alle im System hinterlegten Schemes mit zugehöriger App an. Taucht ein Scheme zweimal auf, oder ist eine nicht bekannte Anwendung hinterlegt, so könnte dies ein erstes Zeichen einer Gefahrenstelle darstellen.
Vergrößern Eine Abfrage innerhalb osquery auf die Tabelle Schemes zeigt alle im System hinterlegten Schemes mit zugehöriger App an. Taucht ein Scheme zweimal auf, oder ist eine nicht bekannte Anwendung hinterlegt, so könnte dies ein erstes Zeichen einer Gefahrenstelle darstellen.

Das Programm osquery bietet mit der Tabelle ‘app_schemes’ eine detaillierte Auskunft über bereits hinterlegte Schemes an. Auch hier muss der Nutzer wieder einen SQL Befehl absetzen. Der Befehl könnte wie folgt aussehen:

SELECT scheme, handler from app_schemes where enabled = 1 order by scheme;
0 Kommentare zu diesem Artikel
2092954