Auf den meisten Geräten wie Smartphones, Tablets, Notebooks oder den verbleibenden klassischen PCs, sind im Auslieferungszustand meist sehr viele Programme vom Hersteller vorinstalliert. Die Hersteller bekommen für viele dieser Programme (auf neumodischen Geräten auch Apps genannt) Geld vom jeweiligen Softwarehersteller, nur ein kleiner Teil wird installiert um die Funktionalität des Gerätes zu "verbessern". Der primäre Nutzen dieser Programme dient also dem wichtigsten Unternehmensziel: Der Gewinnmaximierung. Der Nutzen aus Kundensicht ist oft nicht vorhanden oder zumindest nicht nachvollziehbar.

Spätestens seit Superfish, wissen wir das es Hersteller hierbei übertreiben. Was für den Laien nur eine lästige Beigabe darstellt, ist für den Administrator oder Angreifer ein offenes Scheunentor. Es werden Modifikationen an wichtigen Systemkomponenten vorgenommen, wodurch grundlegende Sicherheitskonzepte ausgehebelt, ersetzt oder empfindlich geschwächt werden.

Moderne Betriebssysteme, wozu selbst Windows gehört, gelten als relativ sicher. Voraussetzung sind natürlich die jeweils aktuellen Updates, welche ein verantwortungsbewusster Systemadministrator zeitnah installiert hat. Viele Dinge sind heute Standard, dazugehört z.B. Reduzierung der verfügbaren Dienste über die Netzwerkschnittstelle oder Maßnahmen um administrative Rechte einzuschränken (sudo unter Linux, User Account Control unter Windows). Zusätzliche Maßnahmen um sein System abzusichern würden den Rahmen des Artikels sprengen, aber die heutigen Systeme haben nachweißlich ein besseres Sicherheitsniveau als noch 2001 ;)

Sicherheitsprobleme vorinstallierter Software lassen sich verschieden klassifizieren, eine mögliche Aufteilung hierbei:

  • Dienst läuft mit administrativen Rechten, selbsterklärend ohne diese zu benötigen.
  • Dienst lauscht an den Netzwerkschnittstellen, die vorhandene Firewall wurde hierfür natürlich "angepasst".
  • Programm macht keine automatischen Updates.
  • Programm modifiziert die Liste "vertrauenswürdiger" CAs (Certificate Authority).
Je länger man darüber nachdenkt, desto mehr mögliche Kategorien gibt es. Die oben genannt dürften aber die Wichtigsten und damit am problematischsten sein. Ich werde nachfolgend kurz auf die jeweiligen Kategorien eingehen.

Dienste als Administrator laufen zu lassen ist einfach und hat den Vorteil, dass man sich nicht mit dem jeweiligen Berechtigungssystem des Betriebssystems beschäftigen muss. Aus Perspektive eines Angreifers sind Dienste die als Administrator laufen besonders lohnenswerte Ziele, in Kombination mit einer vorhandenen Lücke gibt es kaum einen Weg einfacher (unbemerkt) an administrative Rechte zu kommen. Der Administrator entscheidet was auf einem System passiert, bekommt man durch einen fragwürdig konstruierten Dienst an diese Rechte übernimmt man diese Möglichkeit.

An Netzwerkschnittstellen lauschen, also Dienste im Netzwerk bereitstellen, wird gerne von vielen automatischen Konfigurationstools für Drucker oder andere Netzwerkgeräte genommen. Ein normalerweise von außen nicht oder nur schwer erreichbares System bietet mir so, die Möglichkeit einen Zugang zum System zu erhalten. Läuft der Dienst zusätzlich noch als Administrator, haben wir ein offenes Scheunentor, Premium Style.

Dienste und Anwendungen die keine automatischen Updates aktiviert haben, müssen vom Anwender manuell aktualisiert werden. Das klingt je nach Betriebssystem (z.B. Linux) trivial, kann aber zu mehrstündigen Update Sessions (z.B. Windows) führen. Der einfache SOHO-Anwender ist hiervon meist überfordert und verzichtet auf diesen Aufwand. Ob dies am Unwissen liegt oder Absicht ist, muss jeder selbst entscheiden, es dürfte in der Regel wohl eine Kombination aus beidem sein. Problematisch ist, dass nicht aktualisierte Anwendungen auch nicht von Sicherheitsupdates profitieren, geschlossene Sicherheitslücken bleiben also bis in alle Ewigkeit vorhanden und nutzbar.

Neben diesen sehr offensichtlichen und nachvollziehbaren Problemen gibt es aber auch noch die Option einfach an der Liste "vertrauenswürdiger" CAs zu spielen. Die meisten Anwendungen welche mit TLS (früher SSL) umgehen können haben eine Liste dieser Zertifizierungsanstalten. Eine CA prüft mehr oder weniger aufwendig ob der Inhaber einer Domain brauchbare Informationen über seine Identität liefert, es wird nicht geprüft ob dieser wirklich vertrauenswürdig ist! Die Anwendung kennt also viele dieser CAs, die CAs wiederum "kennen" den Betreiber der Seite. Die Konsequenz aus dieser ganzen Aktion ist, dass der Browser keine Fehlermeldung beim Verbindungsaufbau anzeigt und ein kleines Schlosssymbol signalisiert, das alles bestens sei.

Durch Modifikation dieser Liste, in der Regel werden zusätzliche CAs eingetragen, kann erreicht werden, dass verschlüsselte Verbindungen gebrochen werden. Es handelt sich dabei um einen Man-in-the-Middle-Angriff, wobei der böse Mann (oder Frau) in der Mitte, plötzlich unser eigener PC ist. Unsere Anwendung, z.B. Firefox oder der Internet Explorer, signalisieren uns das alles funktioniert. In Wirklichkeit haben wir nur eine "brauchbar" verschlüsselte Verbindung bis zum fragwürdigerweise vorinstallierten Tool des Herstellers, erst dieses Tool baut die "korrekt" verschlüsselte Verbindung zum Zielsystem auf.

Problematisch ist hierbei das Dienste/Programme wie Superfish hierbei äußerst schlampig vorgehen und die Zertifikate nicht korrekt überprüfen. Der Browser bzw. die Anwendung zeigt also keine Probleme an, obwohl wir ein ungültiges Zertifikat bekommen haben. Dieses ungültige Zertifikat hat jedoch nie unseren Browser (Anwendung) erreicht, wir leben in trügerischer Sicherheit während jemand gemütlich unsere Informationen mitlesen kann. Wenn man jetzt noch darüber nachdenkt, dass der Hersteller des Gerätes diese fragwürdige Software nur aus Werbezwecken vorinstalliert hat, könnte einem dabei richtig schlecht werden ;)

Es wäre falsch das Problem jetzt ausschließlich bei Lenovo zu suchen, es handelt sich meiner Meinung nach um ein Problem, welches in der Branche grundsätzlich vorhanden ist. Seitens der Industrie erwarte ich hier auch keine Lösung, ich selbst werde bei meiner bisherigen Lösung bleiben: Neu gekaufte Geräte werden von einem potenziell sauberen Installationsmedium frisch installiert.

Ein Nachteil meiner Lösung ist das sich dies nicht auf alle Geräte anwenden lässt, Techniken wie SecureBoot oder vernagelte Bootloader an Smartphones und Tablets nehmen mir zunehmend die Freiheit mit meinem Gerät zu machen, was ich als Kunde möchte. Die Gefahr die Herstellergarantie zu verlieren ist allgegenwärtig, einzig der Gesetzgeber könnte, wenn er den wollte, hier eine Lösung erzielen.