Ein Perimetertest – Was geschieht denn da?

Abbildung 1: Das Testmodul IP-RANGE der SySS GmbH – Ausgewählte interne oder über das Internet erreichbare IP-Adressen oder auch ganze IP-Adressbereiche werden auf konkrete Sicherheitsschwächen hin geprüft und die von ihnen ausgehenden Risiken bewertet

 

Bei einem TCP-Portscan werden Pakete zum Server geschickt, anhand derer der Scanner identifizieren kann, ob der Port offen, geschlossen oder gefiltert ist. Der Portscanner schickt ein sogenanntes SYN-Paket zum Server. Dies ist vergleichbar mit einer "Hallo, hier bin ich"-Nachricht. Schickt der Server daraufhin ein SYN-ACK-Paket zurück, so antwortet er mit einem "Hallo" und zeigt somit an, dass der Port offen ist. Schickt er jedoch ein RST-ACK-Paket, so bedeutet seine Antwort: "Hier gibt es nichts zu sehen", womit er zum Ausdruck bringt, dass der Port geschlossen ist. Wenn der Server keine Antwort schickt, kann der Portscanner auf keinen Status schließen und identifiziert den Port als „filtered“.

Zunächst wird bei jedem System – sprich für jede IP-Adresse – nach offenen Ports gesucht. Anschließend wird bei den offenen Ports geprüft, welche Dienste erreichbar sind, indem zum Beispiel der Banner samt Versionsinformationen ausgelesen wird oder man versucht, die richtige Sprache, sprich das richtige Protokoll mit dem Dienst zu sprechen. Ein Werkzeug, das diese Prüfung durchführt, ist unentbehrlich, da die große Anzahl von Ports pro System (65536 TCP- und UDP-Ports) dafür sorgen würde, dass eine manuelle Prüfung extrem lange dauert.

Nach dem Portscan führt die SySS GmbH automatisierte und manuelle Sicherheitsprüfungen durch. Die identifizierten Dienste können nämlich – ähnlich wie bei einer Webapplikation – individuelle Schwächen aufweisen, die die SySS GmbH für den Kunden offenlegen soll. Dazu werden einerseits automatisierte Sicherheitsscans gestartet, beispielsweise mit einem Vulnerability Scanner wie Nessus oder OpenVAS, andererseits werden zusätzliche manuelle Prüfungen durchgeführt, wobei mehrere Werkzeuge mit unterschiedlichen Schwerpunkten zum Einsatz kommen. Diese sowie die langjährige Erfahrung der SySS GmbH ermöglichen es, sowohl zu detaillierten Ergebnissen zu kommen als auch Testergebnisse zu überprüfen. Letzteres ist wichtig, um sogenannte False-Positives, das heißt Funde, die sich bei näherer Betrachtung als falsch herausgestellt haben, auszumachen und False-Negatives, das heißt von einem Werkzeug nicht identifizierte, aber existierende Schwachstellen aufspüren zu können. Ziel dabei ist, Sicherheitslücken eindeutig zu identifizieren, um Vorschläge machen zu können, wie die Sicherheit im Allgemeinen verbessert werden kann.

Die identifizierten Dienste laufen auf verschiedenen Ports, wobei bestimmte Ports oftmals immer dieselbe Art von Dienst beherbergen. Bei den aufgefundenen Diensten wird zwischen solchen unterschieden, die im Internet verfügbar sind und die, die lediglich intern erreichbar sein sollten. Geläufige Ports, die aus dem Internet erreichbare Dienste bereitstellen, sind beispielsweise TCP-Ports 21-23, 25, 53, 80, 110, 143 oder 443 oder UDP-Port 500. So läuft auf TCP-Port 21 üblicherweise ein FTP-Dienst, bei dem der Penetrationstester sich zum Beispiel die folgenden Fragen stellt: Welche Softwareversion wird eingesetzt und ist sie veraltet? Können Standard- bzw. Trivialzugangsdaten Zugang verschaffen? Ist es möglich, sich als anonymer Benutzer anmelden zu können und wenn ja, können Dateien ausgelesen werden? Und, falls eine verschlüsselte Kommunikation möglich ist, weist die TLS-Konfiguration Schwächen auf? Ähnliche Fragen ergeben sich bei weiteren Diensten wie SSH auf Port 22 oder Telnet auf Port 23. Die TCP-Ports 25, 110 und 143 werden oft für die E-Mail-Protokolle SMTP, POP3 und IMAP genutzt. Für die verschlüsselten Varianten, das heißt SMTPS, POP3S und IMAPS, werden meistens die TCP-Ports 465, 995 und 993 genutzt. Für diese Dienste sind vor allem die folgenden Fragen interessant: Können Server als Open Mail Relay verwendet werden? Dies bedeutet, dass von diesem Server aus E-Mails an jegliche Adressaten versandt werden können, was unter Umständen dazu führen kann, dass der Mailserver auf Blacklists landet und andere Mailserver den Empfang von E-Mails nicht mehr gestatten. Können Benutzernamen enumeriert oder kann eine verschlüsselte Kommunikation mit StartTLS genutzt werden und wenn ja, weist die TLS-Konfiguration Schwächen auf? Wird die Identität des Absenders geprüft oder gibt es die Möglichkeit zu Mail-Spoofing? Mail-Spoofing lässt zu, dass ein Angreifer sich beliebige Absenderadressen zuordnen kann. Sowohl auf UDP- als auch TCP-Port 53 läuft üblicherweise ein DNS-Dienst. Hier stellt sich die Frage, ob ein Zonentransfer möglich ist beziehungsweise ob eine große Anzahl von Namensauflösungen beantragt werden (DNS-Reflection-Angriff) und somit für einen Denial-of-Service-Angriff gegen ein Opfer ausgenutzt werden kann.

TCP-Port 80 bzw. 8080 wird häufig von Webservern verwendet, um eine Webapplikation – oft über das unverschlüsselte Protokoll HTTP – bereitzustellen. Wenn eine reine Perimeteranalyse durchgeführt wird, beschränken sich die weiteren Tests – je nach zeitlichem Rahmen – auf einige wenige Aspekte, wie zum Beispiel, ob Versionsinformationen im Header preisgegeben werden. Wird für die Applikation jedoch eine verschlüsselte Verbindung genutzt (HTTPS im Gegensatz zu HTTP auf TCP-Port 80), dann läuft sie auf TCP-Port 443. Zusätzlich zu denselben Fragen, die sich schon angesichts eines nicht verschlüsselten Dienstes auf Port 80 ergeben, sollte geprüft werden, ob zum Beispiel der HTTP Strict Transport Security (HSTS)-Header gesetzt ist, um eine konsequente verschlüsselte Übertragung zu gewährleisten, sowie die Frage nach Schwächen in der TLS-Konfiguration oder nach Möglichkeiten zu einer clientseitigen Neuaushandlung des Schlüsselmaterials.

Der UDP-Port 500 wiederum wird meistens für IPSec-VPN in Kombination mit dem ISAKMP-Protokoll genutzt. Hier gilt es zu prüfen, ob der Main oder der Aggressive Mode aktiviert ist. Wenn Letzterer aktiviert ist, kann ein Angreifer unter Umständen den vorher vereinbarten Schlüssel eines ihm bekannten Nutzeraccounts erlangen. Diesen kann er später offline versuchen zu brechen, um das Passwort herauszufinden.

Neben einigen Diensten, die dafür gedacht sind, über das Internet erreichbar zu sein, werden bei einer Perimeteranalyse häufig auch Dienste vorgefunden, die ausschließlich im internen Netzwerk verfügbar sein sollten, trotzdem aber oft von außen erreichbar sind. Es handelt sich dabei meistens um die Dienste auf UDP-Port 161 oder auf den TCP-Ports 137, 445, 3389, 5500, 5900, 6000 oder 6001. So wird UDP-Port 161 meist für SNMP genutzt, wobei hier zu prüfen gilt, ob bekannte Community Strings genutzt werden können, die einen Zugriff auf die Konfiguration des Systems ermöglichen. Die TCP-Ports 139, 445 und 3389 stellen oft die SMB- und RDP-Dienste bereit, die einem Angreifer eventuell eine anonyme Anmeldung erlauben könnten, falls triviale Logindaten vorliegen, und TCP-Ports 5500 und 5900 normalerweise VNC-Dienste, worüber ebenso direkt auf das System zugegriffen werden kann.

Bei allen Schwachstellen, die während dieser Analyse identifiziert werden können, spricht die SySS GmbH Empfehlungen aus, wie die Sicherheit des Systems beziehungsweise der Systeme nachhaltig verbessert werden kann. Auch wenn jedes geprüfte System sich unterschiedlich darstellt und verschiedene Sicherheitslücken aufweist, so kann ganz grundsätzlich zu folgenden allgemeinen Empfehlungen geraten werden: 

  • Dienste, die nicht genutzt werden, sollten deaktiviert werden;
  • Dienste, die genutzt werden, sollten durch ein Patchmanagement stets auf aktuellem Stand gehalten werden;
  • bei Diensten, die eine Authentisierung erfordern, sollten nur starke Passwörter verwendet, ein zertifikat- oder schlüsselbasiertes Verfahren eingesetzt oder eine 2-Faktor-Authentifizierung implementiert werden;
  • Dienste, die genutzt werden, aber nicht von außerhalb erreichbar sein sollten, sollten beispielsweise durch eine Firewall gar nicht oder mittels Whitelisting nur für ausgewählte IP-Adressen freigegeben werden;
  • Dienste, die eine verschlüsselte Kommunikation ermöglichen, sollten eine (TLS)-Konfiguration ohne bekannte Schwächen verwenden und
  • Informationspreisgaben, beispielsweise von Versionsinformationen, sollten grundsätzlich unterbunden werden.

Wenn diese Maßnahmen ergriffen werden, dann sorgen sie dafür, dass die Angriffsoberfläche der Infrastruktur so gering wie möglich gehalten wird und es Angreifer schwer haben, irgendwelche Einstiegspunkte für Angriffe zu finden, die unter Umständen für die Betroffenen schwerwiegende Folgen haben könnten.   

Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer

Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de

IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer

Direkter Kontakt

+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de

IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN

+49 (0)7071 - 40 78 56-99

Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer