6 Gründe warum Unternehmen gehackt werden
Als Penetrationtester versuche ich, in Unternehmen in deren Auftrag einzudringen. Dabei verwende ich dieselben Werkzeuge und Methoden die auch Hacker einsetzen. In diesem Artikel beschreibe ich kurz, aus welchen Gründen ich beim Eindringen am häufigsten Erfolg hatte, und wie man sich besser Schützen kann.
1 – Veraltete Software
Platz 1 belegt veraltete Software: Schlicht und einfach nicht auf dem aktuellen Stand befindliche Software macht es oft sehr einfach in Systeme einzudringen. Einer der ersten Schritte, die ich bei einem Penetration Test durchführe, ist die Identifikation der verwendeten Software-Komponenten und der Abgleich mit der CVE-Datenbank. In der Common Vulnerability Enumeration Datenbank ( https://cve.mitre.org) werden bekannte Schwachstellen von Softwarekomponenten gespeichert. In dieser Datenbank suche ich gezielt nach den gefundenen Softwarekomponenten – gibt es einen öffentlich verfügbaren Exploit, ist die Sache bereits fast gelaufen. Oft finde ich Schwachstellen nicht in den “Haupt-Systemen”, sondern in den im nächsten Punkt behandelten “vergessenen Systemen”.
Durch regelmäßige Updates, am besten in Form eines Update-Prozesses, kann diesem Problem entgegengewirkt werden.
Um einen korrekten Update-Prozess einzuführen, müssen Sie zunächst wissen, welche IT-Komponenten überhaupt in Ihrem Unternehmen verwendet werden. Legen Sie nach einer kurzen Risikobeurteilung einen Update-Plan fest: Systeme mit höherem Risiko (z.B. externe Systeme oder solche mit Kontakt zu sensiblen Kundendaten) sollten häufiger aktualisiert werden. Automatisierte und zentralisierte Verwaltungen sind eine große Hilfe, müssen aber korrekt konfiguriert werden. Vergessen Sie nicht auf Software, die sich außerhalb von zentralisierten Management Einrichtungen befindet (z.B. zusätzlich Software auf Linux-Servern, die nicht durch die Paketverwaltung aktuell gehalten wird). Tips!
- Erstellen Sie eine IT-Landkarte oder Liste Ihrer Systeme
- Führen Sie regelmäßig Updates durch
- Nutzen Sie automatische Update-Mechanismen
- Definieren Sie einen Update-Prozess und Regeln
2 – Vergessene Systeme & Dateien
Auf Platz 2 haben es die vergessenen Systeme geschafft: Damit meine ich Systeme und Dateien die überhaupt nicht da sein dürften. So konnte ich in ein großes Unternehmen erfolgreich eindringen, weil vergessen wurde, eine Web-GUI zur Datenbankbearbeitung zu entfernen. Dieses Tool war nur für die Zeit der Website-Erstellung gedacht, wurde aber mit in die Produktion übernommen. Ich fand dieses Tool mit einem Directory-Bruteforcer und konnte die Datenbank des CMS Systems herunterladen. In der Datenbank befanden sich die Passwörter in verschlüsselter Form. Mit einem System zum Brechen solcher Hashes konnte ich das sehr schwache Administrator-Passwort in wenigen Minuten im Klartext herausfinden.
Vergessene Systeme sind deshalb besonders problematisch, da oft keine Aufzeichnung über deren Existenz vorhanden sind. So wird vergessen, Sie zu entfernen, auf dem aktuellen Stand zu halten oder sie abzusichern. Oft handelt es sich dabei um Werkzeuge, die nur zur Entwicklung oder Migration benötigt wurden und dann nicht mehr entfernt wurden.
Ebenso häufig finde ich Systeme oder Komponenten, die das Unternehmen nur “kurz testen” wollte, die nach dem Test aber vergessen wurden. So konnte ich einen alten SIP Server ausfindig machen, der so schlecht konfiguriert war, dass ich ihn ohne spezielles Werkzeug dazu bringen konnte, mich in das IT-System des Unternehmens zu lassen. Tips!
- Erstellen Sie eine vollständige Liste aller in Ihrem Unternehmen verwendeten Software. Prüfen Sie insbesondere auf Überbleibsel aus vergangener Zeit oder alten Projekten.
- Führen Sie einen Prozess zur regelmäßigen Prüfung auf vergessene Software ein.
- Achten Sie insbesondere bei Software Projekten auf die restlose Entfernung von Test-Systemen und Entwicklungswerkzeugen.
- Lassen Sie Ihre Infrastruktur professionell testen, z.B. mit unserem Penetration Test.
- Stellen Sie sich bei jedem extern verfügbaren System die Frage: Muss dieses System im Internet verfügbar sein? Wer soll darauf zugreifen können? Kann man den Zugriff weiter einschränken?
3 – Schwache Passwörter und Login-Mechanismen
Erst auf Platz 3 haben es die schwachen Passwörter geschafft: Passwörter wie “12345” oder “website2016” sind auch im Jahr 2017 immer noch in Mode. Der Grund warum ich sie erst auf Platz 3 reihe ist, dass ich zunächst eine Stelle zum Andocken benötige, um schwache Passwörter auszunutzen. Damit meine ich ein extern – oder intern, je nachdem von wo aus ich den Test starte – verfügbares Login-Interface oder einen Service, der es mir erlaubt Passwörter durchzutesten. Gut für mich als Penetration Tester oder Hacker (und damit schlecht für die Sicherheit) sind dabei:
- CMS-Interfaces: Sollte auf Ihrer Website ein Administrator-Logon zu Ihrem CMS verfügbar sein, z.B. unter “/typo3” oder unter “/wp-admin”, stehen die Chancen gut, dass jemand bereits dabei ist, sämtliche Passwörter durchzutesten
- Mail-Server: Mail-Server verlangen einen Login beim Senden um Spamming, Flodding und Mail- Spoofing zu vermeiden und beim Empfangen um sicherzustellen, dass nur der jeweilige Nutzer tatsächlich seine Mails abrufen kann
- SSH Server: SSH Server am Netz sind gang und gäbe. Wird hierbei nur auf Passwort-Login gesetzt sind diese Server ein beliebtes Ziel für Brute-Force Angriffe.
- Webmail und andere Web-Interfaces: Diese sind mittels Directory-Search oder sogar mittels Google-Suche leicht zu finden und bieten ein wertvollen Angriffspunkt. (Versuchen Sie z.B. einmal bei Google folgenden Suchbegriff: “site: ihredomain.at +intern” oder “site: ihredomain.at +logon”)
Kommen wir zum Schutz vor Brute-Force Angriffen: Die verfügbaren Login-Mechnismen schützen Ihre Benutzer oft nicht vor Brute-Forcing. So kann ich mit den richtigen Werkzeugen abertausende Kombinationen pro Sekunde durchprobieren und die Chance, dass ich es schaffe eine gültige Benutzername + Passwort Kombination zu finden ist sehr hoch.
Für mich als Penetration Tester sind System-Logins grundsätzlich weitaus interessanter als Kunden-Logins, da ich mit einem Systemzugang meistens gleich die Kundendaten abgreifen kann. Tips!
- Verwenden Sie starke, zufällig generierte Passwörter
- Verwenden Sie für jedes System immer ein eigenes Passwort
- Schützen Sie Ihre Web-Logins durch eine Begrenzung der Login-Versuche, siehe Guter Brute-Force-Schutz ist nicht trivial
- Verwenden Sie bei SSH Logins nur Public-Key Authentication – prüfen Sie, ob es nicht weitere Möglichkeiten gibt, den Zugriff auf den SSH Server einzuschränken
- Deaktivieren Sie wenn möglich den direkten Login als Administrator
- Aktivieren Sie Multi-Faktor-Authentifzierung wenn es das System unterstützt
- Führen Sie ein zentrales Login- und Berechtigungssystem ein
- Verwenden Sie einen Passwort-Manager
4 – Fehlende Awareness
Platz 4 – eigentlich Ex Aequo mit Platz 3 – ist die fehlende Mitarbeiter Sensibilität (“Awareness”). Beim Social Engineering versuche ich ohne direkte technische Angriffe Mitarbeiter dazu zu bewegen, mir Zugang oder Zugriff zu sensitiven Daten oder Unternehmensräumlichkeiten zu geben.
Beispiele für sehr erfolgreiche Methoden:
- Eine E-Mail mit einem Link zu einer Seite, bei der die Mitarbeiter Ihre Login-Daten eingeben müssen (Phishing)
- USB-Sticks, die “liegen gelassen” werden, von Mitarbeitern an die Unternehmensrechner angeschlossen werden und dann Schadsoftware verbreiten ( durchschnittlich wird jeder zweite “verlorene” Stick angesteckt)
- “Ich bin ein Mitarbeiter von XXX, Ihrem Internetanbieter. Ich benötige kurz Zugang zu Ihrem Serverraum.”
Tips!
- Schulen (oder lassen Sie schulen) Sie Ihre Mitarbeiter hinsichtlich Gefahren und Umgangsregeln mit der Unternehmens-IT
- Stellen Sie Richtlinien auf, wie mit der Unternehmens-IT umgegangen werden muss, wie Gäste behandelt werden, was mit gefundenen USB-Sticks passiert, etc.
- Verbessern Sie die Kommunikation zwischen den einzelnen Stellen (z.B. zwischen Portier und IT)
- Wenn Sie Hilfe bei der Erstellung einer IT-Richtlinie oder bei der Schulung Ihrer Mitarbeiter benötigen, kontaktieren Sie uns
5 – Selbst gestrickte Software
Sehr oft finde ich selbst entwickelte Software, die dazu gedacht ist, eine bestimmte Anforderung zu erfüllen, die zum Entwicklungszeitpunkt nicht von der Standard-Software abgedeckt wurde. Diese Software besitzt oft nicht einmal essentielle Schutzfunktionen und lässt sich mit den entsprechenden Werkzeugen innerhalb weniger Minuten knacken. Auch werden eigene Software-Lösungen oft nicht regelmäßig geprüft und gewartet. So bleiben Schwachstellen unentdeckt oder werden auch bei ihrer Entdeckung nicht behoben. Temporäre Lösungen haben leider die Eigenschaft sehr oft nicht temporär zu bleiben und dann die gesamte Unternehmens-IT zu gefährden. Tips!
- Setzen Sie wann immer möglich auf standardisierte Software, die regelmäßig Updates erhält
- Lassen Sie auch “temporäre Lösungen” auf dem gleichen Sicherheitsniveau wie dauerhafte Lösungen entwickeln
- Planen Sie den gesamten Lebenszyklus Ihrer Eigenentwicklung
- Definieren Sie bereits zu Beginn Ihre Sicherheitsanforderungen an die Eigenentwicklung
- Prüfen Sie regelmäßig Ihre selbstentwickelte Software auf Aktualität und Schwachstellen
- Lassen Sie selbst entwickelte Lösungen durch Experten testen, z.B. durch uns: Penetration Tests
- Führen Sie einen Update-Prozess für Eigenentwicklung ein
- Holen Sie sich professionelle Hilfe, um die Sicherheit der Lösung zu garantieren, z.B. mit unserer Security-Projektbegleitung
6 – Fehlerhafte Konfiguration
Ein weiterer Grund für Schwachstellen ist schlecht konfigurierte Software. Viele Software Komponenten kommen standardmäßig mit einer suboptimalen Sicherheitskonfiguration, die Angreifern Tür und Tor öffnet oder es zumindest leichter macht, Informationen zu erhalten. Tips!
- Suchen Sie in der Dokumentation des Herstellers der Software nach Sicherheitseinstellungen
- Recherchieren Sie, welche Einstellungen sicherheitsrelevant sind
- Aktivieren Sie immer nur benötigte Funktionen und Module
- Kontaktieren Sie uns, wenn Sie Hilfe beim Härten Ihrer IT benötigen
Fazit
Fast immer wenn ich erfolgreich in ein System eindringe, handelt es sich um ein Zusammenspiel der hier genannten Punkte. Bevor man daran denkt, teure zusätzliche Sicherheitssoftware anzuschaffen, müssen die Basis-Punkte dieser Liste erfüllt werden. Spezielle Security-Software kann einen enormen Gewinn darstellen – ist aber nahezu nutzlos wenn die hier genannten Punkte nicht bearbeitet wurden. Wenn Sie die hier genannten Ratschläge befolgen, haben Sie mit einigen einfachen Maßnahmen bereits einen enormen Sicherheitsgewinn. Um Ihre IT hinsichtlich Schwachstellen professionell untersuchen zu lassen, kontaktieren Sie uns einfach: Kontaktmöglichkeiten