Mittels Authentifizierung kann ein Benutzer seine Identität gegenüber einem System nachweisen. Hierzu legt der Benutzer dem System einen Nachweis vor, der für das System verifizierbar ist. Das heißt, das System muss, über die nötigen Informationen verfügen, um die Identität zweifelsfrei bestätigen zu können.
Die gängigste Methode zur Authentifizierung stellt die Kombination aus Benutzernamen und Passwort dar, die der Benutzer eingeben muss und die vom System auf ihre Richtigkeit überprüft werden. System wie Benutzer haben so ein gemeinsames Geheimnis.
Authentifizierungsverfahren stellen sicher, dass nur berechtigte Personen bzw. Systeme auf die entsprechenden Daten und Funktionen zugreifen können. Gelingt es einem Hacker, die Authentifizierung auszuhebeln, kann er daher häufig großen Schaden anrichten. Nicht selten wird es Hackern aber sehr einfach gemacht, da geeignete Authentifizierungsverfahren vollständig fehlen oder schlecht konfiguriert sind. In der Folge liegen sensible Daten für jeden erreichbar auf Servern. So geschehen mit Millionen von Patientendaten von Patienten unter anderem aus Deutschland und den USA, wie 2019 aufgedeckt wurde.
In der Discovery-Phase des automatisierten Penetrationstest von Enginsight werden die eingesetzten Authentifizierungsverfahren geprüft. Dabei werden die Services FTP, MySQL, MongoDB und telnet unter die Lupe genommen. Was genau die Pentest-Komponente Hacktor dabei einem Checking unterzieht, erfahren Sie im Folgenden.
FTP auf Schwachstellen prüfen
Das File Transfer Protocol (FTP) ist ein Protokoll zur Übertragung von Dateien über IP-Netzwerke. Mit ihm können Dateien vom Client zu Server, vom Server zum Client oder clientgesteuert zwischen zwei FTP-Servern übertragen werden. Es können Verzeichnisse angelegt, ausgelesen und Dateien wie Verzeichnisse umbenannt oder gelöscht werden.
FTP erlaubt es einen Anonymous-Zugang einzurichten, der es allen Benutzern, auch ganz ohne Authentifizierung, ermöglicht, auf den FTP-Server zuzugreifen. Ob Anonymous FTP Sessions erlaubt werden sollten, hängt von den auf dem Server gelagerten Daten ab. Viele Universitäten setzen beispielsweise auf anonyme FTP-Server, um Daten, etwa freie Software, zum Download anzubieten. Ein anonymer Zugang zu FTP-Netzen kann also gewollt sein. Diese Entscheidung sollte aber stets bewusst gefällt werden. Zudem muss ein besonderes Augenmerk auf die Ausführungs- und Zugriffsrechte gelegt werden.
Hacktor prüft daher, ob ein Anonymous-Zugang möglich ist:
ftp | Anonymous FTP Session | Anonymous FTP erlaubt einen freien Zugriff für alle Besucher auf die FTP-Verzeichnisse. Prüfen Sie, ob das notwendig ist und die Lese- und Schreibrechte korrekt konfiguriert sind. |
MongoDB pentesten
MongoDB ist die am weitesten verbreitete NoSQL-Datenbank. Sie ist auf hohe Leistung, große Datenmengen, hohe Flexibilität sowie einfache Skalierbarkeit ausgelegt. Möglich wird dies, da (im Gegensatz zu beispielsweise MySQL) die Dokumente über kein festes Schema verfügen und auf die Abfragesprache SQL verzichtet wird.
Bei der Installation von MongoDB wird häufig auf die Etablierung von Authentifizierungs-Verfahren verzichtet. Deshalb sind viele Mongo-Datenbanken im Einsatz, die einen anonymen Zugriff erlauben. Besonders kritisch ist dies, da der Benutzer über alle Privilegien verfügt.
Hackor prüft MongoDB deshalb auf einen anonymen Login:
mongodb | Allows anonymous login | Wenn eine MongoDB erstellt wird, sind keine Authentifizierungs-Mechanismen aktiv und der Nutzer hat alle Privilegien. Um die Sicherheit der mongodb zu erhöhen, sollte ein anonymer Zugang deaktiviert sein. |
MySQL auf Sicherheitslücken prüfen
MySQL ist eines meistgenutzten relationalen Datenbankverwaltungssysteme und findet insbesondere bei dynamischen Webseiten Verwendung. Auch große Webangebote wie YouTube, Facebook oder Twitter setzen auf MySQL, um ihre großen Datenmengen zu speichern.
In MySQL-Datenbanken liegen häufig wertvolle Daten und ihr reibungsloser Betrieb ist Voraussetzung dafür, dass die Webseiten funktionieren. Es sollte daher gründlich darauf geachtet werden, dass Unbefugte keinen Zugriff auf die Datenbank besitzen.
Es lassen sich bei MySQL anonyme Benutzer zulassen sowie Nutzer anlegen, die über kein Passwort verfügen. Diese Funktionen können zwar hilfreich für Tests oder das Einrichten der Datenbank sein, sollten in produktiven Umgebungen aber tunlichst vermieden werden. Auch ein öffentlicher Remote-Zugriff sollte nur eingeschränkt möglich sein.
Hacktor unterzieht MySQL-Datenbanken mehreren Checks:
mysql | Anonymous connection from root user | Eine nicht passwortgeschützte Verbindung als Administrator (mit Root-Rechten) ist möglich. Vergeben Sie ein Passwort. |
mysql | Anonymous User found | Mit einem anonymen Benutzer kann sich jeder in MySQL einloggen, ohne dass für ihn ein Benutzerkonto angelegt werden muss. Ein solcher Benutzer wird manchmal standardmäßig für Testzwecke bei der Installation angelegt und sollte entfernt werden, sobald Sie die Datenbank produktiv einsetzen. |
mysql | User found without password | Für jeden Benutzer der MySQL-Datenbank sollte ein sicheres Passwort festgelegt werden. |
mysql | User found with remote access from any host | Standardmäßig ist ein öffentlicher Remote-Zugriff auf MySQL aus Sicherheitsgründen deaktiviert. Falls nötig, können Sie einen Remote-Zugriff einrichten. Dieser sollte jedoch auf bestimmte IP-Adressen eingeschränkt sein. |
Telnet Pentest
Telnet war lange Zeit der Standard, um einen Remote-Zugriff auf entfernte Server oder Clients zu ermöglichen. Da telnet über keine verschlüsselte Verbindung nutzt, wird es heute dafür kaum noch eingesetzt. Eine sichere Alternative stellt SSH dar. Sollte telnet dennoch verwendet werden, muss zumindest ein Verfahren zur Authentifizierung eingesetzt werden:
telnet | No Authentication Required | Telnet ist aufgrund seiner nicht fehlender Verschlüsselung nicht mehr zeitgemäß und sollte möglichst nicht mehr verwendet werden. Sollten Sie dennoch Telnet einsetzen, muss in jedem Fall eine Authenfizierungs-Methode genutzt werden. |
Ein umfangreicher Härtetest für Ihre gesamte IT – Pentest mit Enginsight
Der Funktionsumfang des automatisierten Pentests von Enginsight geht weit über den Test von Systemprivilegien hinaus. Er beinhaltet Bruteforce-Attacken (bspw. auf FTP, MySQL, Mongo DB…) und einen netzwerkseitigen Schwachstellenscan nach CVEs. Außerdem prüft er verschlüsselte Verbindungen, falsche Privilegien-Zuordnungen, geöffnete Ports und vieles mehr.
Sie möchten wissen, wie ein automatisierter Pentest konkret abläuft?
Das zeigen wir Ihnen gerne. Vereinbaren Sie einfach einen persönlichen und unverbindlichen Demo-Termin!
Mehr zu Pentests mit Enginsight: