Flache Landschaften lassen sich nur mit viel Manpower verteidigen, genauso wie flache Netzwerke. Es gab also definitiv Gründe, warum Burgen früher auf Bergen und Hügeln errichtet wurden. Vielleicht nicht in Holland, aber zumindest in Österreich. 🏰 😎
Das zarte Burgfräulein hätte heutzutage in der DMZ gegen Hacker keine Chance, genauso wenig wie damals gegen Räuber mitten auf dem Marktplatz. Aber warum bauen dann die meisten Firmen, ihre Netzwerke trotzdem genauso auf? Ihr einziger Schutz ist eine "Wall of Fire" und das wars dann auch schon. Ohne Berg, ohne Hügel, ohne Burggraben, ohne Burgtor und ohne Schießscharten?
Segmentierte Netzwerke machen immer Sinn, sogar daheim
Daheim habe ich ein eigenes Gast-Netzwerk, das nur ins Internet kommt, aber nicht ins interne Netz darf. Ich habe zudem auch noch ein IOT-Netzwerk für Smart-Home Geräte. Ich kann auf sie aus dem internen Netzwerk zugreifen, die andere Richtung ist aber blockiert. Wenn ein Gerätehersteller ein Security Hoppala hat, oder gerne herumschnüffelt, ist nicht gleich alles exponiert.
Im Firmenkontext ist es zwar ähnlich, nur sind die Abhängigkeiten anders. Dort wird das klassische Server-Client-Modell eingesetzt. Server stellen Dienste wie Anwendungen, File-Shares, DNS und Webseiten für Clients bereit.
Warum zur Hölle dürfen Clients, dann auf andere Clients zugreifen? Wir haben nicht mehr 2013, wo Dateien über Skype for Business peer-to-peer gesendet werden. Die SMB-Schwachstelle namens EternalBlue (die wurde bis 2017 von der NSA geheim gehalten), konnte Windows-Geräte per SMB vollständig kompromittieren. Damit konnte von einem einzelnen Rechner flächendeckend Ransomware im ganzen Netzwerk verteilt werden. Uncool! 👿
Was man nicht "sieht", kann man nicht hacken
Nein, das ist jetzt kein Security-by-Obscurity-Ansatz. Auch wenn du heute noch Windows XP mit uralter Software betreibst, kann es über das Netzwerk nicht gehackt werden, wenn es nicht am Netzwerk angeschlossen ist (physische Angriffe vor Ort mal ausgenommen).
Was ich damit sagen will, ist, dass sich Angreifer echt die Zähne ausbeißen, wenn sie die Zielsysteme nicht erreichen können. Selbst wenn du ihnen die IP-Adresse und das Admin-Kennwort verrätst, haben sie keine Chance, wenn die Ports blockiert werden.
Vielleicht denkst du gerade, dass dein Netzwerk zu komplex ist, es zu viel Aufwand wäre, alle Verbindungen zu dokumentieren, in der Firewall freizugeben und den Rest zu blockieren. Tja … da habe ich leider schlechte Neuigkeiten für dich, denn ich widerspreche dir da nur ungern. Es ist in der Tat ein Heidenaufwand. Aber ich habe einen einfacheren Weg entwickelt.
So wird's gemacht!
Aber nochmal ganz klar: Hier geht's nicht um einen Quick-Tipp, den du in 30 Minuten in der Mittagspause umsetzt. Wir reden von einem umfangreichen Projekt. Im Vergleich zu einem echten Sicherheitsvorfall ist der Aufwand aber winzig und du schaffst dir eine Basis für das nächste Jahrzehnt.
Voraussetzungen
- Deine Firewall sollte nicht zart besaitet sein, sonst wird sie zum Flaschenhals.
- Um Downtimes zu vermeiden, sollten deine Dienste alle per DNS angesprochen werden. Glaub mir, du weißt gar nicht wie viele Leute noch ihre Systeme und Geräte per IP-Adressen anbinden.
- Das Routing zwischen den Netzen muss auch stimmen.
- Eine gute Dokumentation deiner aktuellen IP-Ranges und Netzwerke ist Pflicht.
- VPN-Transfernetze, DMZ, oder ähnliche Spezialitäten lasse ich hier mal außen vor, da es da zu viele Variablen gibt. Sprich mit deinen Netzwerk-Gurus darüber, die finden garantiert eine Lösung.
Schritt 1: Clients segmentieren
Im ersten Schritt baust du ein eigenes Netzwerk für Clients auf. Clients sind Konsumenten, sprich, sie konsumieren nur, stellen aber keine Dienste bereit. Aus diesem Grund macht es auch nichts, wenn deine Clients neue IP-Adressen bekommen.
Schritt 2: Nicht zentrale Services segmentieren
Dazu zählen zum Beispiel Web-Server und Datenbanken. Am besten packst du sie Stück für Stück in ein separates Netz, aber nicht alle auf einmal. Wenn nämlich Clients per IP und nicht per DNS zugreifen, kann es zu längeren Ausfällen kommen.
Du kannst ruhig eigene Netze für verschiedene Server-Typen schaffen, wie zum Beispiel, dass du alle Drucker (ja, das sind auch Server), in ein separates Netz schiebst.
Schritt 3: Zentrale Services segmentieren
Das sind deine Core-Server, die von allen genutzt werden, wie zum Beispiel DNS, DHCP und Active Directory.
Wenn du Bedenken hast, dass bei der Umstellung auf neue IP-Adressen etwas gravierend schief gehen könnte, dann migriere die Server nicht. Du solltest ohnehin bereits alles andere segmentiert haben.
Schritt 4: Admin-Netzwerk erstellen
Wir wollen, dass nur Admins die Remote-Management Ports wie RDP, SSH und IPMI erreichen können und sonst niemand.
Jetzt wird's allerdings knifflig, denn du musst den Admins eine Arbeitsumgebung bereitstellen. Du könntest die normalen Office-Clients dauerhaft im Admin-Netzwerk lassen, aber wirklich sauber ist das nicht. Denn auch Admins surfen im Internet und bekommen Phishing-E-Mails.
Es wäre besser, wenn du ihnen eigene Jump-Hosts im Admin-Netzwerk zur Verfügung stellst, über die sie alle Server administrieren können. Du könntest aber auch ein Admin-VPN schaffen, mit dem sie sich über ihre Clients in dieses Netzwerk einwählen können. Ich würde den Internetzugang aus dem Admin-Netz aber stark einschränken.
Schritt 5: Ports blockieren
Jetzt kannst du anfangen, die Remote Management Ports zwischen den Netzen zu sperren und den Zugriff nur vom Admin-Netz aus zu erlauben. Klassiker sind SSH auf Port 22 und Remote Desktop auf Port 3389. Aber pass bei RDP bei Terminal-Servern auf, da User denselben Port verwenden. Du kannst aber auch separate Ports für User- und Admin-Zugriff erstellen.
Wenn du deine Server, Clients und Admins grob segmentiert hast, kannst du natürlich die Verbindungen weiter einschränken und die Netzwerke granularer gestalten. Aber pass auf, dass du es nicht zu kompliziert machst, sonst wird es schnell unübersichtlich.
Schritt 6: Lokale Firewalls aktivieren
Lokale Host-Firewalls sind ein sehr mächtiges Werkzeug in der Cyber-Abwehr. Konfiguriere sie so, dass die Remote-Management-Ports nur aus dem Admin-Netzwerk erreichbar sind.
Wir machen das, weil die zentrale Firewall nur zwischen den Netzwerken blockieren kann, aber nicht innerhalb des Netzwerks. Die Netzwerknachbarn können sich gegenseitig ohne Einschränkungen erreichen. Es gibt zwar Security-Features wie "private VLANs" oder "Client Isolation", aber die sind nicht auf jeder Netzwerk-Hardware verfügbar.
Du solltest auf Clients alle eingehenden Ports blockieren, außer denen für den Remote-Support. Das ist eine der wichtigsten Härtungsmaßnahmen, die du machen kannst. Die Konfiguration kannst du per Intune oder GPO zentral ausrollen.
Fazit
Netzwerke werden selten umgebaut, aber es lohnt sich auf jeden Fall. Du schaffst dir damit eine Security-Basis, die dir viele andere Fehler verzeiht. Ich habe schon erfahrene Pentester erlebt, die nach kürzester Zeit aufgegeben haben, weil sie wegen der Firewalls nichts machen konnten. 😅