1. Sicherheit ist immer relativ
»Denn sie wissen nicht, was sie tun« – im Originaltitel heißt der Film aus dem Jahre 1955 »Rebel Without a Cause«. Der deutsche Titel beschreibt für mich exakt die aktuelle Situation der IT-Sicherheit und Datenschutz. Es herrscht absolutes Chaos und so Recht mag eigentlich keiner mehr durchblicken. Die Frage lautet längst nicht mehr, ob wir noch die Kontrolle über unsere IT und Daten haben, sondern wie wir die Kontrolle wieder zurückerlangen können.
Es ist mehr als beunruhigend: Krankenhäuser werden von Ransomware-Viren lahmgelegt, der neue Bundestrojaner ist einsatzbereit und der Erpressungs-Trojaner Locky verschlüsselt Dateien von Windows-Nutzern. Man muss nur ein paar Stunden warten und eine ähnliche Meldung wird wieder durch irgendeinen News-Ticker rauschen. Die allgemeine Reaktion: Schulterzucken, Ohnmacht oder Lösegeld bezahlen – danach weitermachen als wäre nichts passiert.
Die Ursachen hinter solchen Meldungen sind meist auf Schwachstellen in Soft- oder Hardware zurückzuführen. In der neuen Artikelserie »Linux härten« möchte ich euch Maßnahmen vorstellen, mit denen ihr das Risiko von Schwachstellen minimiert und die Kontrolle über euer System behaltet.
- Sicheres Desktop System – Linux härten Teil1
- Linux Systemhärtung Basis – Linux härten Teil2
- AppArmor – Linux härten Teil3
- Firejail – Linux härten Teil4
2. Linux härten – Projekt 2016
Ich hatte bereits einige E-Mail- und Kommentar-Anfragen, welchem Thema ich mich 2016 widmen möchte. Nachdem in den beiden vergangen Jahren der Datenschutz im Fokus stand, habe ich mich diesmal für ein Thema aus der IT-Sicherheit entschieden.
Aus meiner Sicht besteht gerade im Bereich Desktop-Sicherheit dringend Nachholbedarf. Eines wird nämlich oftmals vergessen: Ein »sicheres« und vertrauenswürdiges System ist die Grundlage für alle weiteren Sicherheitsmaßnahmen wie bspw. Verschlüsselung oder spurenarmes Surfen im Netz.
Du kannst den Blog aktiv unterstützen!
Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.
Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.
2.1 Was ist mit Windows und Mac OS?
In der Informationssicherheit stellen Informationen bzw. Daten schützenswerte Güter dar. Der Zugriff auf diese Informationen sollte beschränkt und kontrolliert stattfinden. Zum Erreichen bzw. Einhalten der Informationssicherheit und damit zum Schutz der Daten werden Schutzziele definiert. Zu den drei wichtigsten Schutzzielen zählen die Vertraulichkeit, Verfügbarkeit und Integrität. Daneben existieren noch weitere Schutzziele, die aber zunächst einmal nicht relevant sind. Wird eines dieser Schutzziele verletzt, ist der Schutz der Informationen bzw. Daten bedroht.
Dieser kleine Ausflug in die Grundlagen der IT-Sicherheit soll uns folgendes vor Augen führen: In modernen Betriebssystemen wie Windows 10 oder Mac OS X Yosemite kann insbesondere das Schutzziel Vertraulichkeit nur schwer oder gar nicht erreicht werden. Vertraulichkeit bedeutet per Definition:
Daten dürfen lediglich von autorisierten Benutzern gelesen bzw. modifiziert werden, dies gilt sowohl beim Zugriff auf gespeicherte Daten, wie auch während der Datenübertragung.
Sowohl Microsoft, als auch Apple bedrohen dieses Schutzziel. Wenn Windows 10 nach Aktivierung der Geräteverschlüsselung aus »Komfortgründen« bspw. den Bitlocker-Schlüssel in der Microsoft Cloud abgelegt, dann können Daten theoretisch von nicht-autorisierten Nutzern gelesen werden. Auch weitere Default-Einstellungen von Windows 10 verstoßen streng genommen gegen das Schutzziel der Vertraulichkeit. Ähnliches lässt sich bei Apple beobachten. Weitere Argumente gegen die Verwendung von Windows oder Mac OS als Grundlage für ein »sicheres« System ist die UEFI- bzw. EFI-Schnittstelle und elektronische Fußfesseln wie TPM.
Insgesamt bedrohen diese Praktiken nicht nur die Schutzziele der Informationssicherheit, sondern sind auch hinsichtlich des Datenschutzes problematisch. Nach meiner Ansicht kann weder Windows, noch Mac OS als vertrauenswürdiges Betriebssystem angesehen werden. Die Konsequenz: Ein »sicheres« System lässt sich lediglich mit ausgewählten Linux-Distributionen realisieren.
2.2 Balance-Akt
Generell habe ich den Anspruch, dass sich die dargestellten Informationen praktikabel umsetzen lassen. Ich bin mir noch unsicher, ob der Balance-Akt zwischen Verständlichkeit und technischem Tiefgang auch diesmal gelingt. Einige von euch werden vermutlich überfordert sein, während die Sicherheits-Nerds unter euch gähnend vor dem Rechner eindösen. ;-)
Noch dazu habe ich die Zielgruppe in der Projektserie 2016 drastisch eingeschränkt, indem ich Linux aus den oben genannten Gründen Windows und Mac OS vorziehe. Wer ein »sicheres« System haben möchte, der kann sich dem Wechsel auf Linux allerdings nicht entziehen – vielleicht regt die Artikelserie den ein oder anderen von euch zum Wechsel an.
3. Grundlagen
Zwischen Sicherheit und Komfort besteht oftmals ein Widerspruch – beides zusammen geht nicht oder endet in einem faulen Kompromiss. Dies sollten wir stets im Hinterkopf behalten, denn das Ziel der Artikelserie ist die Minimierung von Risiken, die durch Schwachstellen in Software entsteht. Komfort steht demnach nicht im Fokus. Insgesamt halten sich die Komfort-Einschränkungen allerdings in Grenzen, auch wenn sich Abläufe in der Bedienung ändern oder zunächst als umständlich empfunden werden.
3.1 Schwachstellen
Im Fußball werden defensive Schwachstellen meist schnell von den Gegenspielern erkannt und ausgenutzt. Ein Fehler im »System« genügt oftmals, um ein Spiel zu verlieren.
In der Informatik ist es ähnlich. Die Definition einer Schwachstelle ist wie folgt:
Schwäche eines Systems, an dem es verwundbar sein
kann (umgangen, geändert oder getäuscht)
Eine Schwachstelle stellt also eine potenzielle Bedrohung für die Sicherheit eines Computersystems dar. Aktuelle Beispiele für Schwachstellen aus der Linux-Welt:
- National Vulnerability Database: Auflistung von Linux-Sicherheitslücken
- CVE Details für Debian GNU/Linux
- [ … ]
Schwachstellen entstehen meist im Entwicklungsprozess neuer Software, wobei die Gründe vielfältig sind:
- Komplexität der Software
- Unzureichende Kenntnisse in der sicheren Programmierung
- Kein oder unzureichendes Qualitätsmanagement
- Vernachlässigung aus Kompatibilitätsgründen
- Pure Ignoranz bzw. Inkompetenz der Verantwortlichen
- Zur Wahrung finanzieller Interessen von Investoren werden
»halbfertige« Produkte veröffentlicht - [ … ]
Aufgrund der Komplexität sind Schwachstellen in Software unvermeidbar. Grob geschätzt produziert ein Entwickler auf 1000 Codezeilen einen Programmierfehler. Viele der Fehler werden nie entdeckt oder wirken sich nicht negativ auf die Sicherheit bzw. Funktion aus. Manche Fehler erzeugen jedoch schwerwiegende Sicherheitslücken, ohne direkt die Funktion zu beeinträchtigen.
Doch es wäre zu kurzsichtig, die Schwachstellen allein auf Fehler in der Software zu reduzieren. Es existieren noch weitere Gründe:
- Nicht nur im Entwicklungsprozess, sondern auch bei der
Behebung von Fehlern oder der Integration neuer Funktionen
können neue Schwachstellen entstehen - Ungeschultes Personal bzw. fehlendes Bewusstsein für den
sicheren Umgang mit IT - Schlampige oder laxe Konfiguration von Soft- bzw. Hardware
- Veraltete, nicht aktualisierte Software (bspw. werden Sicherheitspatches nicht eingespielt)
- Bewusste Abschwächung bzw. Einbau von Hintertüren durch Staat und Geheimdienste
- [ … ]
Schwachstellen sind unvermeidbar. Entscheidend ist vielmehr, wie wir das Risiko von Schwachstellen für die IT und unsere Systeme minimieren können.
3.2 Linux – Jetzt bin ich aber sicher, oder?
Schwachstellen in Systemen werden über Exploits ausgenutzt. Insbesondere Zero-Day-Exploits sind problematisch, da für diese noch kein Patch verfügbar ist, der die Schwachstelle in der betroffenen Software schließt. Von Kriminellen und auch Geheimdiensten werden Zero-Day-Exploits gerne geheim gehalten, in der Hoffnung darüber möglichst lange eine Schwachstelle ausnutzen zu können.
Allein der Wechsel auf ein Linux System genügt nicht, um sich vor Exploits ausreichend zu schützen. Ein Wechsel auf Linux reduziert zunächst nur die Wahrscheinlichkeit Opfer eines Angriffs zu werden, da Windows-Systeme und die darunter laufende Software aufgrund ihrer hohen Verbreitung noch immer ein beliebtes Angriffsziel sind. Grundsätzlich sind Software und Dienste, die unter Linux laufen, genauso anfällig wie ihre Pendants unter Windows und Mac OS. Man kann auch sagen: Die meisten Linux-Distributionen sind nicht für eine »sichere« Umgebung optimiert, sondern auf ein ausgewogenes Verhältnis aus Sicherheit, Bedienungsfreundlichkeit und Performance.
Auch für Linux-Systeme und Software existieren zahlreiche Exploits. Zu den prominentesten zählen Heartbleed oder Shellshock. Oftmals genügt nur eine einzige Schwachstelle, um ein ganzes System zu kompromittieren. Welche Auswirkungen und Konsequenzen solch ein Exploit auf das System und die darauf gelagerten Daten hat, hängt entscheidend vom »Härtegrad« ab.
3.3 Hardening – Härten
Das Bundesamt für Sicherheit in der Informationstechnik (BSI) bezeichnet als Härten in der IT-Sicherheit:
[…] die Entfernung aller Softwarebestandteile und Funktionen, die zur Erfüllung der vorgesehenen Aufgabe durch das Programm nicht zwingend notwendig sind.
Oder anders formuliert: Ein System für eine bestimmte Aufgabe maßzuschneidern und abzusichern, bedeutet »Härten«.
Insbesondere bei Desktop-Systemen ist eine Härtung zeitaufwändiger, verglichen mit einem Server-System. Auf Desktop-Systemen müssen eine Vielzahl von Programmen und Diensten berücksichtigt werden, die für den alltäglichen Gebrauch benötigt werden. Server-Systeme hingegen erfüllen meist einen bestimmten Zweck, bspw. den eines Webservers, was die Härtung insgesamt erleichtern kann. Allerdings sollte nicht vergessen werden, dass viele Server-Systeme ständig erreichbar sind. Das macht eine sorgfältige Härtung der wenigen Dienste und Programme umso wichtiger.
In der Artikelserie möchte ich mich auf die Härtung eines Linux-Desktops fokussieren. Insgesamt ist dies keine leichte Aufgabe und erfordert ein hohes Maß an Bereitschaft sich mit den Vorschlägen zu beschäftigen – denn dies wird keine »one-klick-and-forget« Lösung. Ihr solltet bedenken, dass ein gehärtetes Linux keine dauerhafte Installation darstellt, die nie mehr angefasst werden muss.
Die Maßnahmen für die Härtung eines Systems möchte ich im Folgenden nur kurz anschneiden, da diese in weiteren Teilen der Serie nochmal ausführlich angesprochen werden:
- Überflüssige Dienste deaktivieren
- Überflüssige Softwarepakete deinstallieren
- Alle verfügbaren Updates einspielen
- Überflüssige Benutzerkonten deaktivieren / löschen
- Anpassung von Dateisystemrechten und ihrer Vererbung
- Verwendung von Mandatory Access Control
- Anpassung des Linux-Kernels
- [ … ]
3.4 Ein Problem bleibt: Die Hardware
Die Sicherheit eines Systems definiert sich bereits auf Hardware-Ebene. Allerdings ist es heute bspw. extrem schwierig WLAN-Chipsätze zu finden, für die Open-Source Treiber bereit stehen. Ausnahmen, wie den AR9170 Chipsatz gibt es zwar, aber diese müssen zunächst ausfindig gemacht werden. Gleiches gilt für das BIOS. Idealerweise könnt ihr euer aktuelles BIOS durch Coreboot ersetzen – ein quell-offene, freies BIOS. Ansonsten besteht immer das Risiko für eine versteckte Backdoor, die bspw. von Geheimdiensten ausgenutzt werden kann.
Wirklich »sicher« können wir also in der Tat erst dann sein, wenn wir durchgehend Open-Source Hard- und Software einsetzen. Die Realität sieht leider anders aus und es gibt nur wenig Bestrebungen Open-Source Hardware auf dem Markt zu etablieren. Eventuell helfen können Projekte wie Novena.
Daher bin ich gezwungen für das Projekt »Linux härten« eine Ausnahme zu machen und möchte dies aber nochmal formulieren: Das Projekt schützt nicht vor der gezielten Überwachung durch Geheimdienste.
3.5 Sicherheitsschichten
Die beste Verschlüsselung nutzt euch nichts, wenn bspw. ein Kernel-Rootkit alle Daten abfangen kann. Daher ist es wichtig sich nochmal vor Augen zu führen, das die Sicherheit eines Systems aus verschiedenen Schichten besteht. Wird eine Schicht kompromittiert, so sind alle höher liegenden Schichten ebenso davon betroffen. Eine vereinfachte Darstellung soll das verdeutlichen:

4. Ausblick
Aktuell plane ich folgende Themen in der Artikelserie »Linux härten«:
- Basisabsicherung bzw. Härtung
- Mandatory Access Control: Firejail, AppArmor, grsecurity (RBAC)
- Kernel-Modifikation: grsecurity / PaX
Es gibt natürlich noch weitere MAC’s, wie SELinux oder Tomoyo. Meine Erfahrungen damit waren allerdings nicht besonders positiv, weshalb ich mich auf die oben genannten fokussiere. Insbesondere das in grsecurity integrierte RBAC stellt ein mächtiges Werkzeug dar, um rollenbasierte Zugriffskontrollen zu etablieren. Insgesamt sollte ein MAC für Desktop-Systeme einfach zu bedienen sein und dennoch in der Lage sein die möglichen Folgen einer Schwachstelle zu minimieren.
5. Fazit
Schwachstellen sind überall. Sie lassen sich nicht vermeiden. Entscheidend ist wie wir das Risiko für unsere Daten minimieren können. Das erfordert ein Umdenken bei der Arbeit mit PC’s und die Gewöhnung an erweiterte Sicherheitsmaßnahmen wie bspw. MAC’s. Neben Maßnahmen wie der System-Härtung sollte allerdings auch der Anwender selbst nicht vergessen werden: Immerhin ist er sich oftmals nicht bewusst, dass er Anhänge nicht einfach öffnen und ausführen soll und beim täglichen Arbeiten auf die Benutzung des Adminstrator-Accounts zu verzichten hat. Schon kleine Verhaltensänderungen könnte Großes bewirken.
Im kommenden Teil der Serie »Linux härten« befassen wir uns mit der Basisabsicherung eines Linux-Desktop Rechners. Ich versuche die Beschreibungen möglichst generisch / allgemein zu halten, damit sie auf verschiedene Linux-Distributionen anwendbar sind.
Bildquellen:
Linux: ClkerFreeVectorImages, Creative Commons CC0
Wenn du immer über neue Beiträge informiert bleiben möchtest, gibt es verschiedene Möglichkeiten, dem Blog zu folgen:

Unterstützen
Abschließender Hinweis
Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern spiegeln den Informationsstand zum Zeitpunkt der Veröffentlichung wieder, ähnlich wie Zeitungsartikel.Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.