Arch Linux Tux

[ENC]BladeXP's Blog

Was die Welt nicht alles braucht!

Sicheres Heimnetzwerk trotz TR-069

Das beliebte Protokoll TR-069 ermöglicht die Fernkonfiguration und Administration der meisten heute üblichen DSL Router durch den Provider. Auf dem 31c3 wurde auch ausschließlich positiv darüber berichtet. Ein Grund, sich Gedanken zu machen wie man den Schaden den TR-069 anrichtet, etwas eindämmen kann.

Die von uns verwendeten und liebevoll Plasterouter genannten DSL Endgeräte werden vor allem unter dem Kostenaspekt entwickelt, das Budget welches in die Sicherheit dieser Geräte gesteckt wird, dürfte sehr überschaubar ausfallen. Spürbar wird dies vor allem, da Millionen dieser Geräte mit relativ ähnlicher Software im Einsatz sind, relativ ähnliche Software meint auch vergleichbare Angriffswege. Auch wenn ich in diesem Artikel stets DSL Router schreibe, gemeint sind natürlich auch andere Übertragungswege, das Problem ist also nicht auf DSL als Technologie beschränkt.

Je nach Provider ist es aktuell nicht oder nur umständlich möglich an die Internetzugangsdaten zu kommen, für den Laien macht TR-069 also einen hervorragenden Job. Bedingt durch die automatische Konfiguration ist eine Herausgabe dieser Informationen nicht mehr erforderlich, zumindest, bis der Gesetzgeber hier etwas unternimmt. Problematisch ist, wenn man sein Netz nicht in die Hände seines Providers legen will, sondern auch gerne weiterhin der einzige Administrator sein möchte.

Nachfolgend möchte ich eine Lösung für dieses Problem anbieten, ich akzeptiere dabei, dass es TR-069 gibt und verzichte auf eine Aktion mit Fackeln und Mistgabeln. Dabei betrachte ich den heimischen DSL Router als potenziell kompromittiertes Gerät, welches zu umgehen ist. Der Vorteil meiner Lösung ist auch das man ohne großartige Umkonfiguration den Provider wechseln kann, an der heimischen Vernetzung ist nur noch der DSL-Router durch einen beliebigen anderen zu tauschen.

Aufbau

Für mein sicheres Heimnetz habe ich unterschiedliche Anforderungen, einige davon sind:

  • Administrativen Einfluss des Providers auf meine Geräte verhindern oder zumindest minimieren.
  • LAN/WLAN für Gäste, ohne die Gefahr für dessen Nutzung haftbar gemacht zu werden.
  • Providerspezifische Probleme (Youtube vs. Telekom) umgehen.
Nach reichlicher Überlegung bin ich dann auf eine Lösung mit mehreren unterschiedlichen Netzen gekommen, es wird also zukünftig folgende Netzwerke geben:
  • Providernetz
  • Privates LAN
  • Gast LAN
  • Provider Internet
  • Richtiges Internet
Das die einzelnen Netze stets durch geeignete Maßnahmen (iptables) voneinander geschützt sind versteht sich von selbst.

Providernetz

Das Providernetz ist das Netz, welches direkt aus dem DSL Router vom Provider tröpfelt, da hier TR-069 im Spiel ist und billigste Komponenten ohne Rücksicht auf Sicherheit verbaut werden, traue ich diesem Netz nicht weiter als ich ein voll bestücktes Bladecenter werfen kann.

Im Providernetz befinden sich vor allem Geräte, die ohnehin dem Provider gehören, also z.B. Entertain Büchsen und Smart-TVs.

Privates LAN

Mein privates LAN ist ein Netzwerk welches Geräte enthält, die von mir als vertrauenswürdig eingestuft wurden, es handelt sich dabei also primär um PCs, Notebooks oder Drucker. Ob man ein Android, iOS oder Windows Gerät in dieses sensible Netz lässt muss jeder für sich selbst entscheiden ;)

Dieses Netz hat einen eigenen Router, dieser wird an das Providernetz mit der WAN Seite angeschlossen, vor dem Router meines privaten Netzes ist also das böse Providernetz, hinter diesem meine eigenen Geräte.

Gast LAN

Bedingt durch fehlende flächendeckende kostenlose Hotspots und fragwürdige Tarifstrukturen, wünschen sich viele Besucher ein WLAN um den neuesten Cat Content begutachten zu können. In der einfachsten Variante nimmt man hierfür einfach Freifunk, wodurch auch das Problem mit der Anbieterstörhaftung beseitigt wäre. Das Gast-LAN ist auch mit der WAN Seite an das Providernetz angeschlossen, hat also sinnvollerweise keine Verbindung zu unserem privaten Netz.

Provider Internet

Der ISP (Internet Service Provider) stellt ja als Hauptaufgabe vor allem Internet bereit. Problematisch hierbei sind häufig Verstöße gegen die nicht vorhandene Netzneutralität. Das bekannteste Beispiel sind "zufällige" Probleme bei Google Diensten wie Youtube. Dieses Internet nutzen wir nur ausgehend vom Providernetz, den anderen Netzen spendieren wir richtiges Internet ;)

Richtiges Internet

Richtiges Internet? Durch Tunneln von unserem privaten Netz zu einem (v)Server erreichen wir durch einen kleinen Umweg ein Internet, welches nicht von unserem Provider beeinflusst wird. Für diesen haben wir nur 1-2 ausgehende VPN Verbindungen am Laufen, der Rest geht durch den Tunnel und verlässt diesen erst am VPN Endpoint. Unser Gast-LAN geht auch durch einen Tunnel, bei Freifunk ist das dank der aktuellen Rechtssprechung Standard.

aufbau.png

Da ein Bild oft mehr sagt als 1000 Worte:

Für einen Picasso wird es wohl nicht reichen, aber ich hoffe man kann grob meine Idee nachvollziehen.

Vorteile

Durch diesen Aufbau hat der Provider nur noch Zugriff auf den DSL-Router sowie Geräte im Providernetz, die Gäste, als auch meine privaten Geräte bleiben davon isoliert. Für "problematische Gäste" entfällt eine Haftung, wer weiß, welche Virenschleudern kreative Dinge im Internet machen ;)

Mit dem Providernetz ist auch sichergestellt das von diesem bereitgestelltes Equipment wie Media Reciever (Entertain) auch einfach funktioniert, im Support Fall kann direkt die Hotline angerufen werden und man muss nicht erst 2 Stunden dem netten Sachbearbeiter erklären, dass ein Problem mit dem Routing nicht auf einen alternativ verwendeten Router zurückzuführen ist.

Bisher problematische Dienste werden zukünftig funktionieren, da die Beschränkungen des Providers nicht mehr greifen. Der typische Telekom Kunde darf sich über ruckelfreies Youtube HD freuen ;)

Nachteile

Der Komplexe Aufbau dürfte vor allem Laien überfordern, ich sehe diese aber auch nicht als Zielgruppe für ein solches Setup. Ein weiteres Problem ist der deutlich höhere Hardware Einsatz (3 Router statt einer) und damit verbunden höhere Energieverbrauch. Neben den etwas höheren Kosten für diesen Energieverbrauch müssen auch die Anschaffungskosten für die zusätzlichen Router bedacht werden, eventuell reichen im Haus vorhandene Datendosen nicht mehr aus und man muss welche nachträglich installieren oder kreativ VPNs im eigenen Haus über das Providernetz schalten.

Fazit

Mein eigenes LAN wird im Laufe des Jahres auf dieses Setup umgestellt, sollten sich dabei nützliche Erfahrungen oder notwendige Korrekturen ergeben werde ich natürlich wieder berichten.


Löschen von Partitionen und Volumes

Eine häufig getroffene Fehleinschätzung vieler Anwender ist es, das durch Entfernen von Partitionen oder Volumes (LVM), auch die darauf enthaltenen Daten gelöscht werden. Es handelt sich dabei um einen Trugschluss, denn durch diese Schritte werden nur Metadaten, also Verwaltungsinformationen, verändert oder bestenfalls gelöscht. Die Nutzdaten, also der Inhalt bleibt vollständig erhalten.

Partitionierung mit GPT oder altmodisch

Bei klassischen HDDs oder der klassischen Partitionierung (GPT oder MS-DOS Partitionstabellen ist hierbei egal) muss hier Hand angelegt werden: Freigegebener Platz muss vor der Freigabe überschrieben werden. Dies kann am einfachsten mit dd erledigt werden:

dd if=/dev/zero of=/dev/sda2

Das funktioniert allerdings nur dann zuverlässig, wenn eine komplette Partition (oder Volume) gelöscht werden soll, wird eine Partition (oder Volume) verkleinert darf nur dieser Bereich überschrieben werden. Zuvor muss aber das Dateisystem an die neue Zielgröße angepasst werden. Folgende Schritte müssen also durchgeführt werden:

  1. Unmounten des Dateisystems. Ausgenommen bei Dateisystemen welche auch Online verkleinert werden können, dies ist z.B. bei btrfs der Fall.
  2. Verkleinern des Dateisystems, häufig ist zuvor noch eine Prüfung des Dateisystems mit fsck sinnvoll oder sogar erforderlich.
  3. Löschen der nicht mehr erforderlichen Bereiche, diese müssen ermittelt werden und dd mittels Offset (Option seek) mitgeteilt werden.
  4. Verkleinern der Partition bzw. des Volumes.
  5. Mounten des Dateisystems.
Da es sich bei dieser Aktion um eine größere Änderung am Datenbestand handelt, wäre ein aktuelles aber ohnehin vorhandenes Backup sinnvoll ;)

Problematisch ist hier zum einen der Zeitaufwand, zum anderen auch der Einsatz menschlicher kognitiver Kapazität. Eine Kombination, die schon Petabyte an Daten vernichtet hat! Unseren Auszubildenden rate ich immer bei der Durchführung von Arbeiten möglichst nicht zu denken, überspitzt ist damit gemeint, dass wohlüberlegte Denkprozesse in der Vorbereitung, spätere Überraschungen bei der Durchführung auf ein Minimum reduzieren.

LVM und SSD

Wer sowohl LVM als auch Solid State Drives (SSD) im Einsatz hat, ist hier klar im Vorteil, denn TRIM kann alle anfallenden Arbeiten automatisch und zuverlässig übernehmen. Einzige Bedingungen ist es die Option issue_discards der /etc/lvm/lvm.conf zu aktivieren. Durch diese Änderung werden nicht nur TRIM/DISCARD Anweisungen beim Löschen innerhalb des Dateisystems (mount Option oder manuell mittels fstrim) erzeugt, sondern auch wenn Bereiche innerhalb der Volume Group wieder frei werden.

LUKS

Eine praktische Eigenschaft von Verschlüsselung ist es, auf dem Datenträger nur einen großen Haufen Datenmüll zu hinterlassen, einzig der LUKS-Header und die Partitionstabelle enthält unverschlüsselt lesbare Daten. Eine Sonderbehandlung beim Löschen von Volumes ist also nicht zwingend erforderlich.


Fachwirt, Meister, Techniker

2015-02-25 19:21 | categories: allgemeines

In etwas mehr als den letzten 2 Jahren habe ich eine Weiterbildungsmaßnahme zum Technischen Fachwirt (IHK) besucht und erfolgreich beendet. Andere stehen vielleicht gerade vor der Entscheidung, welche Weiterbildungsmaßnahme denn die richtige ist. Dazu vorab die wichtigste Information: Es gibt kein richtig oder falsch, es gibt nur besser oder schlechter für die jeweilige Situation (Ziele?) geeignet.

Nachfolgend möchte ich mal die unterschiedlichen Weiterbildungsmaßnahmen kurz erklären, das spart sicherlich einiges an Recherche und macht Transparent, was die verschiedenen Träger gerne vergessen.

Fachwirt

Gemäß Wikipedia ist der Fachwirt eine höhere kaufmännische Qualifikation. Diese einfache Beschreibung trifft auf die meisten Fachwirt Weiterbildungen wie z.B. den Wirtschaftsfachwirt oder Industriefachwirt zu. Eine Ausnahme von dieser Regel ist der Technische Fachwirt, dieser hat einen technischen Anteil und beschäftigt sich daher auch mit nicht kaufmännisch-betriebswirtschaftlichen Inhalten. Fachwirte finden daher primär in der Verwaltung, Einkauf oder Verkauf eines Unternehmens eine ggf. auch höhere Anstellung als ihre Kollegen (Sachbearbeiter).

Ziel des Fachwirts ist es also, die vorhandenen Kenntnisse zu vertiefen und zusätzlich Kenntnisse über die Führung von Mitarbeitern bzw. eines Unternehmens zu erlernen.

Technischer Fachwirt (IHK)

Der Technische Fachwirt (IHK) ist eine kaufmännische und technische Weiterbildung, welche sowohl Kaufleute als auch technische Angestellte absolvieren können. Ziel des Technischen Fachwirts bei der IHK ist es ein Bindeglied zwischen Technik und Verwaltung/Organisation zu schaffen. Deshalb gibt es bei dieser Weiterbildung zwei kaufmännisch-wirtschaftliche Teile und einen technischen Teil. Da die Besucher dieser Weiterbildung aus beiden Fachrichtungen kommen, gibt es für jeden der Teilnehmer komplettes Neuland aber auch bekannte Sachen.

Der Technische Fachwirt (IHK) ist nach erfolgreichem Abschluss eine Weiterbildung auf Meisterebene, berechtigt also auch zu einem Studium an einer Fachhochschule oder zur Teilnahme an der Weiterbildung zum (Technischen) Betriebswirt.

Technischer Fachwirt (HWK)

Der Technische Fachwirt (HWK) fällt hier leider aus der Rolle, es handelt sich dabei nicht um einen Abschluss auf Meisterebene, sondern um einen Prüfungsteil vom Handwerksmeister. Warum ein Teil einer Meisterprüfung eine eigene Bezeichnung als Abschluss bekommt, der einer Weiterbildung auf Meisterebene vom Titel her zum Verwechseln ähnlich ist, erschließt sich mir nicht. Beim Technischen Fachwirt (HWK) handelt es sich um eine Rein kaufmännisch-betriebswirtschaftliche Weiterbildung, der Fokus liegt aber im Gegensatz zur IHK klar auf den kleinen Handwerksbetrieb.

Der Unterschied IHK vs. HWK beim Technischen Fachwirt spiegelt sich auch an vielen Punkten im Rahmenlehrplan wider, so z.B. in den erforderlichen Stunden, dem Umfang der Prüfung und zuletzt den Kosten. Wer zu einem späteren Zeitpunkt den Handwerksmeister machen möchte und als Ziel das kleine Handwerksunternehmen im Fokus hat, der ist mit dem Technischen Fachwirt (HWK) sicherlich gut beraten, andere sollten aber die vorhandenen Alternativen prüfen.

Meister

Der Meister ist eine Weiterbildung auf (Suprise!) Meisterebene, hierbei werden sowohl technische als auch kaufmännische Inhalte vermittelt. Den Meister gibt es in zwei verschiedenen Geschmacksrichtungen, welche sich von den Inhalten und Zielen deutlich unterschieden und daher nicht verwechselt werden sollten.

Handwerksmeister

Der Handwerksmeister hat zum Ziel technische Angestellte (Gesellen) so weiterzubilden das auch ein kleiner Handwerksbetrieb erfolgreich geführt werden kann. Zusätzlich kommen noch weiterführende technische Inhalte und damit (je nach Handwerk) Berechtigungen hinzu. Die vermittelten Inhalte sind speziell auf kleine Unternehmen zugeschnitten, dies ist kein Nachteil sollte jedoch bei der Wahl der Weiterbildung beachtet werden.

Industriemeister

Industriemeister haben als Unterschied zum Handwerksmeister die Führungsrolle im Industriebetrieb (Gruppenleiter, Abteilungsleiter) als Ziel. Es geht dabei neben den technischen Inhalten vor allem im Schwerpunkt um kaufmännische und organisatorische Prozesse im Großunternehmen (Industriebetrieb).

Techniker

Der Techniker ist eine überwiegend technische Weiterbildung, Ziel ist es Experten auf ihrem (technischen) Gebiet auszubilden. Techniker sind von den vermittelten technischen Inhalten den Technischen Fachwirten oder Meistern deutlich im Vorteil. Die kaufmännischen oder organisatorischen Inhalte sind aber bei Weitem nicht so ausgeprägt, was für typische Anstellungen aber kein Nachteil ist.

Fazit

Es will gut überlegt sein, welche Weiterbildungsmaßnahme man besucht, wenn man z.B. ein guter Techniker ist, aber organisatorische Tätigkeiten hasst wie der Teufel das Weihwasser, würde ich vom Industriemeister oder Fachwirt absehen. Wer mehr einen Job im Büro, als Prozessorganisator oder leidender leitender Angestellter sucht, sollte dagegen die Finger vom Techniker lassen.

Auch die Wahl "Industrie oder Handwerk" muss getroffen werden, zwar ist es immer möglich mit einem Handwerksmeister in die Industrie zu wechseln, das Denken und Handeln unterscheidet sich aber in vielen Punkten. Handwerksmeister haben oft flache Strukturen, etwas wovon man in der Industrie oft nur träumen kann. Im Gegenzug ist in der Industrie vieles geklärt, es gibt klar definierte Prozesse, dafür fehlt es oft an der Flexibilität ;)

Bis auf den Technischen Fachwirt (HWK) sind alle genannten Weiterbildungen auch für zukünftige Führungskräfte möglich. Der Techniker ist z.B. ein hervorragender Teamleiter oder Projektleiter, ein Handwerksmeister der Chef eines Handwerksbetriebes und der Industriemeister gerne Teamleiter, Schichtleiter oder Gruppenleiter in mittelständischen oder großen Industriebetrieben. Der Technische Fachwirt (IHK) eignet sich besser als übergeordnete Rolle, ergänzt also einen Industriemeister nach oben oder kann gut für die Leitung von Projekten oder im Bereich der Prozessorganisation eingesetzt werden.

Es sollte aber auch beachtet werden das es Rollen gibt für welche eine bestimmte Weiterbildung weniger geeignet ist, z.B. ist ein Technischer Fachwirt (IHK) keine gute Idee als Gruppen-/Abteilungsleiter einer Elektrowerkstatt. Hier fehlen Inhalte welche einem Industrie- oder Handwerksmeister vermittelt werden, einem Fachwirt aber nicht.


Sicherheit vorinstallierter Software

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.


Die schuldigen im Fall MongoDB

2015-02-10 12:30 | categories: arch debian linux opensource sicherheit software ubuntu

Über offene Firmendatenbanken wird gerade von heise online und einigen anderen Medien berichtet. Hintergrund sind MongoDB Installationen, welche (weitgehend) die Standardkonfiguration verwendet und öffentlich über das Internet erreichbar sind.

Meiner Ansicht nach gibt es für dieses Problem drei Personengruppen, welche in unterschiedlichem Ausmaß hierfür verantwortlich sind. Auf diese möchte ich nachfolgend, zumindest grob, eingehen.

Administratoren

Administratoren von IT Systemen sind zuständig für die Wartung und Inbetriebnahme von Computersystemen, was sowohl Hardware als auch Software umfasst. Organisationen erwarten das ein Administrator IT Systeme so betreut, dass die Ziele der Organisation nicht gefährdet werden. Aus diesem einfachen Grundsatz lassen sich Themen wie Datenschutz, Ausfallsicherheit und einige andere herleiten.

Ein Administrator, welcher eine Software öffentlich zugänglich macht handelt, meiner Ansicht nach grob fahrlässig, und damit gegen die Ziele der eigenen Organisation. Zumindest unter Ubuntu ist MongoDB nämlich nicht öffentlich erreichbar, dies muss erst manuell über eine Konfigurationsänderung aktiviert werden.

Ausgenommen von dieser Regel sind natürlich Dienste, welche öffentlich erreichbar sein müssen, hierzu gehört zum Beispiel der Webserver oder ein Mailserver. Doch bei diesen Diensten gehört eine zusätzliche Absicherung gegen Angriffe zum Aufgabenfeld des Administrators.

Distributoren

Distributoren übernehmen die Aufgabe Software für den Anwender (Administratoren sind auch nur Anwender, alles eine Frage per Perspektive) bereitzustellen. Auf diese Art ist nicht jeder Computerbesitzer darauf angewiesen, sein komplettes Betriebssystem aus den Quellen der Entwickler händisch zu bauen.

Einige Distributionen gehen schon länger dazu über, dem Anwender auch weitere Aufgaben abzunehmen. Eine dieser zusätzlichen Aufgaben ist das Standardmäßige aktivieren von installierten Diensten, etwas das ich nach wie vor für grundsätzlich falsch halte. Jeder aktive Dienst erhöht die Angriffsfläche für ein System, wie stark ist abhängig vom jeweiligen Dienst.

In meinem Blog habe ich hierzu schon 2012 etwas geschrieben. Ich stehe nach wie vor zu den damals getätigten Aussagen.

Entwickler

Die letzte, aber nicht weniger wichtige, Gruppe bilden die Entwickler einer Software. Diese Treffen wichtige Entscheidungen über die Sicherheit einer Software, z.B. ob Verschlüsselung und Authentifizierung im Standard aktiv oder überhaupt deaktivierbar sind.

Ich bin der Überzeugung, dass es falsch ist, Software anzubieten, welche ohne Verschlüsselung und Authentifizierung auskommt. Bei vielen Anwendern und Administratoren siegt viel zu oft die Bequemlichkeit, Sicherheit kommt erst an zweiter Stelle oder wird nachgelagert erledigt, wenn gerade jemand (der Azubi?) etwas Zeit übrig hat.

Eine Standardmäßige aktive und nicht deaktivierbare Authentifizierung hätte das aktuelle MongoDB Problem zumindest entschärft, was an der ein oder anderen Stelle sicherlich viele Millionen Kundendaten "gerettet" hätte.

Entwickler sollten auch sonst in ihrer Konfiguration von einem sicheren Setup als Standard ausgehen, d.h. Benutzerwechsel im Service, Erreichbarkeit nur über localhost und dergleichen.

tl;dr

Machen wir es kurz:

  • Administratoren sollten genau Aufpassen was installiert wird, und wie es geeignet gegen Angriffe oder unerlaubte Zugriffe zu schützen ist.
  • Distributoren sollten endlich damit aufhören Dienste im Standard zu aktivieren, zumindest eine kleine Nachfrage bei der Installation kann wirklich nicht zu viel verlangt sein.
  • Entwickler sollten standardmäßig auf Verschlüsselung und Authentifizierung setzen, eine Option zum deaktivieren sollte entfernt werden.

Natürlich lösen diese wenigen (aber effektiven) Maßnahmen nicht alle Probleme, ein ungeübter Benutzer (um es mal neutral zu formulieren) wird immer Mittel und Wege finden, etwas unsicher zu machen. Der Standard sollte es aber sein, Dinge in einem sicheren Zustand auszuliefern.