CEH MASTER: Modul 13 Angriffe auf Webanwendungen
Aktie
Modul 13 – Angriffe auf Webanwendungen
Themen in diesem Kapitel:
- GUI-Web-Hacking
- URL-basierte Angriffe
- Häufige Sicherheitslücken in Webanwendungen
- Angriffstools für Webanwendungen
- Google Hacking
- Methoden zur Verbesserung der Websicherheit
- Techniken zum Knacken von Web-Passwörtern
Webanwendungen sind Programme, die auf Webservern wie http://vncert.gov.v/ ausgeführt werden und nach ihren Funktionen kategorisiert werden, beispielsweise Foren zum Informationsaustausch, CMS/Blogs zur Inhaltsverwaltung, Websites für soziale Netzwerke, Geschäftsverwaltungsanwendungen, Kundenbeziehungsmanagement oder E-Commerce.
Hacker interessieren sich besonders für Websites großer Organisationen oder Regierungsbehörden, wie etwa .gov.vn-Domains in Vietnam. Darüber hinaus handeln moderne Hacker nicht nur aus dem Grund, um ihre Fähigkeiten zur Schau zu stellen, sondern auch aus wirtschaftlichen Motiven. Daher bevorzugen sie E-Commerce-Websites, auf denen wichtige Informationen wie Kreditkartendaten und Online-Banking-Konten von Kunden zu finden sind.
Nach Angriffen stellen Hacker ihre Erfolge häufig auf der Zone-H-Website unter http://www.zone-h.org/ zur Schau, die als „Hall of Fame“ für gehackte Websites gilt. Das folgende Bild zeigt eine Liste von Websites mit .vn-Domänen, die angegriffen wurden und für die möglicherweise noch kein Patch installiert oder die noch nicht erkannt wurden.
[Bild 13.1 – Angegriffene und auf zone-h.org veröffentlichte vietnamesische Websites]
Die meisten Webanwendungen arbeiten heute nach einem Client/Server-Modell mit Webbrowsern wie Firefox, IE, Chrome als Webclients und Webservern wie Apache, IIS, TomCat auf der Serverseite. Gängige Technologien zum Erstellen von Websites sind ASP, PHP, JavaScript … Jede Technik hat ihre eigenen Stärken und Schwächen. Daher müssen Hacker bei einem Angriff sorgfältig recherchieren, um die Betriebssysteme, Webserver und Technologien zur Website-Bereitstellung genau zu identifizieren und einen effektiven Angriffsplan zu entwickeln.
Die häufigsten Formen von Angriffen auf Webanwendungen, die wir kennen müssen, sind:
- Direkte Manipulation der Anwendung über ihre visuelle Weboberfläche (GUI) wird als GUI Web Hacking bezeichnet.
- Ausnutzung mithilfe des Uniform Resource Identifier oder der URL (URL-Hacking)
- Ausnutzen von HTTP-Komponenten, die nicht in der URL enthalten sind
GUI-Web-Hacking:
Dazu gehört die direkte Manipulation der Webanwendungsoberfläche oder die Verwendung von Website-Auditing-Tools wie Havji, WebAcunetix …, die wir in späteren Lektionen vorstellen werden. Im folgenden Bild sehen Sie eine Illustration eines Exploits zum Auffinden von SQL-Injection-Schwachstellen auf der Beispielwebsite von FoundStone …
[Bild 13.2 – GUI-Web-Hacking]
In der Abbildung geben Angreifer direkt den Wert „OR 1=1“ ein, um den Kontrollmechanismus der Anwendung zu umgehen, wenn die Validierung der INPUT-Werte nicht vollständig implementiert ist. Dies ist eine der häufigsten Schwachstellen, die Websites häufig aufweisen und an der Angreifer sehr interessiert sind.
Beispielszenario mit dem Labormodell:
Auf der Kali Linux-Maschine (CEH-Master) könnte ein Angreifer ein Tool wie sqlmap verwenden, um GUI-basierte SQL-Injection gegen eine anfällige Webanwendung durchzuführen, die auf dem Metasploitable 2-Ziel ausgeführt wird. Der Befehl könnte folgendermaßen aussehen:
sqlmap -u "http://[Metasploitable 2 IP]/mutillidae/index.php?page=user-info.php&username=admin&password=password&user-info-php-submit-button=View+Account+Details" --dbs
Dabei würde versucht, die Datenbanken auf dem Zielsystem über die anfällige Weboberfläche aufzuzählen.
URL-basierte Angriffe:
HTTP-Methoden sind Aktionen, die in der Webanwendung und im Webclient ausgeführt werden. Der HTTP RFC definiert diese Aktionen und die WEBDAV-Anwendung auf Windows IIS-Servern fügt einige zusätzliche Methoden hinzu, aber im Allgemeinen verwenden Webanwendungen zwei Hauptfunktionen: GET und POST. GET wird zum Anfordern von Informationen verwendet, während POST zum Senden von Informationen verwendet wird. Sowohl POST als auch GET können Informationen an den Server senden, mit einem wichtigen Unterschied: GET fügt Daten in die URL ein, während POST Daten in den Textkörper der Anforderung einfügt und sie nicht in der URL anzeigt. Daher wird POST verwendet, um Daten an Webanwendungen zu senden, beispielsweise wenn wir bei der Registrierung für Online-Käufe Name und Adresse angeben. Die Nichtanzeige von POST-Informationen schützt die Daten jedoch nicht unbedingt besser als GET, was für Benutzer oft verwirrend ist, da es für Hacker nicht allzu schwierig ist, durch POST versteckte Informationen zu finden.
[Bild 13.3 – Illustration eines URL-basierten Angriffs]
HTTP-Header werden häufig zum Speichern erweiterter Informationen wie Transportprotokolle oder zugehöriger Sicherheitselemente verwendet, darunter:
- Die Autorisierung legt fest, ob die Anforderung mit Sicherheitsmechanismen wie einer Basisauthentifizierung, einem Zertifikat usw. begleitet wird oder nicht.
- Die Cache-Steuerung bestimmt, ob diese Anfragen auf einem Zwischenserver zwischengespeichert werden oder nicht.
- Referrer: Listet die Quell-URI auf.
- Cookies werden zum Speichern von Token bei der clientsitzungsbasierten Authentifizierung verwendet.
Hier ist ein Beispiel für Funktionen, die vom Netcat-Tool verwendet werden, das eine Verbindung zum Server www.test.com über TCP-Port 80 herstellt (Standardport für HTTP-Protokoll; HTTPS ist TCP 443). Die Anforderung dieser Verbindung besteht darin, die Datei /test.html abzurufen. Der vollständige Pfad dieser Anforderung lautet http://www.test.foo/test.html.
www.test.foo [10.124.72.30] 80 (http) open
GET /test.html HTTP/1.0
HTTP/1.1 200 OK
Date: Mon, 04 Feb 2002 01:33:20 GMT
Server: Apache/1.3.22 (Unix)
Connection: close
Content-Type: text/html
<HTML><HEAD><TITLE>TEST.FOO</TITLE>etc.
In diesem Beispiel sehen Sie die GET-Funktion in der von netcat verwendeten Client-Anforderung. Die im Server-Header zurückgegebene Antwort lautet „Server: Apache/1.3.22 (Unix)“, während sich die Daten des Antworttexts im Frame TEST.FOO befinden.
Beispielszenario mit dem Labormodell:
Ein Angreifer auf der Kali Linux-Maschine könnte curl verwenden, um einen URL-basierten Angriff auf einen anfälligen Parameter auf dem Metasploitable 3-Ziel (Windows Server) durchzuführen:
curl "http://[Metasploitable 3 IP]/vulnerable.php?file=../../../../windows/system32/drivers/etc/hosts"
Dies ist ein Versuch eines Directory-Traversal-Angriffs, um die Hosts-Datei auf dem Windows-Ziel zu lesen.
Unabhängig von den Angriffsmethoden, die Hacker verwenden, sind ihr Hauptziel jedoch, wie erwähnt, immer noch die auf diesen Webseiten enthaltenen Informationen, bei denen es sich um wichtige Dokumente oder Kundeninformationen wie E-Mail-Listen oder Kreditkartennummern handeln kann. Und um dieses Ziel zu erreichen, müssen Hacker den Angriffsprozess in der richtigen Reihenfolge wie folgt durchführen:
- Scannen: Scannen Sie nach Schwachstellen der Website und suchen Sie nach nützlichen Informationen zum Server.
- Informationsbeschaffung: Konzentrieren Sie sich auf die wichtigsten Informationen.
- Test: Probieren Sie einige Optionen aus.
- Angriff planen: Planen Sie die Angriffsmethode, beispielsweise welcher Proxy verwendet werden soll und welche Tools für den Angriff verwendet werden sollen.
- Angriff starten: Starten Sie den Angriff
[Bild 13.4 – Website mit W3AF prüfen]
Beachten Sie, dass dieses illustrative Video nur für Schulungs- und Forschungszwecke dient. Nicht in der Praxis anwenden. Sehen Sie sich die Demo hier an: http://www.youtube.com/watch?v=ugIxUtbFH-o&feature=youtu.be
Häufige Schwachstellen in Webanwendungen:
Websites können zahlreichen Gefahren ausgesetzt sein. Die größten Bedrohungen, von denen wir häufig hören, sind SQL-Injection, XSS, Authentication Hijacking … In der Rolle des CEH müssen wir die Bedeutung dieser Schwachstellen und einiger beliebter Ausnutzungstools verstehen:
- Cross-Site-Scripting: Diese Sicherheitslücke ermöglicht es Hackern, schädliche Codefragmente über Website-Eingabefelder wie Suchfelder auszuführen.
- SQL-Injection: Eine Schwachstelle, die von Hackern sehr häufig ausgenutzt wird. Sie ermöglicht es Hackern, SQL-Anweisungen vom Browser aus auszuführen und den Inhalt von Tabellen und Spalten mit wichtigen Informationen anzuzeigen. Sie können sich das im obigen Abschnitt angehängte Erläuterungsvideo ansehen.
- Pufferüberlauf: Eine große Datenmenge, die über Formulare an die Webanwendung gesendet wird, verursacht einen Pufferüberlauf.
- Cookie-Poisoning und Authentication Hijacking: Hacker stehlen Cookies aus einer Sitzung zwischen Webclient und Webserver und greifen dann auf den privaten Bereich des Benutzers zu. Demo: http://www.youtube.com/watch?v=zLdB3UgDi_I
- Directory Traversal/Unicode: Hacker fragen das Dateisystem und die Systemverzeichnisse über Webbrowser oder den Windows Explorer ab.
Hier ist eine Liste der Sicherheitslücken in Webanwendungen, die Hacker häufig ausnutzen (wie im CEH-Dokument veröffentlicht). Angeführt werden sie von XSS-bezogenen (Cross-Site Scripting) Sicherheitslücken, gefolgt von SQL-Injection, Parameter Tampering, Cookie Poisoning …
[Bild 13.4 – Häufig angegriffene Schwachstellen in Webanwendungen]
Zusätzlich zur obigen Liste können Sie unter https://www.owasp.org/index.php/Vietnam weitere Informationen zu den 10 häufigsten Sicherheitslücken finden, die von OWASP zusammengestellt wurden. In dieser zuverlässigen Liste sehen wir einige Unterschiede in den Raten der wahrscheinlich betroffenen Schwachstellen, wie z. B. SQL-Injection (Code-Injection genannt), die ganz oben steht, aber im Allgemeinen sind Schwachstellen im Zusammenhang mit SQL-Injection, XSS, Beschädigung des Authentifizierungsmechanismus und Sitzungsverwaltung Bedenken, denen Sie Priorität einräumen sollten.
[Bild 13.5 – Liste der 10 größten Schwachstellen bei Webanwendungen]
Angriffstools für Webanwendungen:
- Acunetix Web Security Scanner: Die wichtigste Anwendung ist Acunetix Web Scanner, ein kommerzielles Programm zum Auffinden von Sicherheitslücken auf Websites wie XSS, SQL-Injection, Directory Traversal usw.
- Havji: Ein automatisiertes SQL-Injection-Exploitation-Programm, das wir anhand von Lehrvideos veranschaulicht haben. Dies ist ein kostenloses Tool, das heute von den meisten Hackern verwendet wird, um Datenbanken anzugreifen und Informationen darin anzuzeigen.
- Burpsuite: Enthält viele leistungsstarke Tools vom Scannen auf Website-Schwachstellen bis hin zu Proxy-Funktionen, die Daten während der Übertragung abfangen, ändern und an den Server zurücksenden.
- BlackWidow: Kann Website-Diagramme scannen und erstellen.
- Teleport Pro: Bietet die Möglichkeit, den gesamten Inhalt einer Website für die Offline-Anzeige herunterzuladen.
Beispielszenario mit dem Labormodell:
Auf der Kali Linux-Maschine könnte ein Angreifer Burp Suite verwenden, um Anfragen an eine anfällige Webanwendung auf Metasploitable 2 abzufangen und zu ändern:
- Konfigurieren Sie Burp Suite als Proxy (z. B. 127.0.0.1:8080).
- Stellen Sie den Browser so ein, dass er diesen Proxy verwendet
- Navigieren Sie zu einer anfälligen Seite auf Metasploitable 2
- Abfangen der Anforderung in Burp Suite
- Ändern Sie Parameter, um schädliche Nutzdaten einzuschleusen
- Leiten Sie die geänderte Anfrage weiter, um sie auf Schwachstellen zu testen.
Google-Hacking:
Google Hacking ist eine erweiterte Suchfunktion der Google-Suchmaschine, um vertrauliche Informationen des Ziels zu identifizieren. Wenn die Suchfunktion nicht streng konfiguriert ist, können Hacker Informationen wie Anmeldekennwörter und private Dokumente einfach mit der Google-Suchanwendung stehlen. Auf der Website http://johny.ihackstuff.com oder der speziellen Seite http://www.exploit-db.com/google-dorks/ sind viele Dokumente zu diesem Thema aufgeführt, die Suchbegriffe zum Identifizieren vertraulicher Punkte der Website enthalten.
[Bild 13.6 – Website mit Suchbegriffen, die zur Ausbeutung verwendet werden]
Methoden zur Verbesserung der Websicherheit:
Microsoft hatte zuvor einen Wettbewerb organisiert, bei dem Hacker auf die Anwendungssysteme und Webserver der Unternehmensplattformen wie SQL Server-Datenbanken, Windows-Betriebssysteme und ASP-Programmierplattformen zugreifen konnten. Dieser Wettbewerb hieß „Open Hack“ und kurz nach dem Start des Wettbewerbs verzeichneten die Veranstalter über 40.000 Angriffe. Doch den Hackern gelang es nicht, in das Serversystem einzudringen oder die von den Veranstaltern eingerichteten Zielwebsites zu beschädigen. Wie also haben sie den Prozess der Verbesserung der Sicherheit für Webanwendungen genutzt, um eine solche Stabilität zu erreichen? All dies wurde von den Microsoft-Ingenieuren in einem Leitfaden zur Verbesserung der Sicherheit für Webanwendungen mit dem Titel „Verbesserung der Sicherheit von Webanwendungen: Bedrohungen und Gegenmaßnahmen“ unter http://msdn.microsoft.com/en-us/library/ff649874.aspx dargelegt. Dieses Dokument habe ich auch als Leitfaden für das Webanwendungssicherheitsprogramm für die EVN Group in Do Son, Hai Phong, Ende 2011 verwendet.
Hier sind einige Richtlinien zur Verbesserung der Sicherheit von Webanwendungen, die wir beachten müssen:
- Cross-Site-Scripting: Um diese Art von Angriffen zu verhindern, müssen wir die Gültigkeit von Eingabedaten, Cookies, Abfrageanforderungen oder versteckten Informationen sorgfältig prüfen. Verwenden Sie spezielle Website-Scan-Tools wie Web Acunetix Scanner, um XSS-Schwachstellen auf der Website zu erkennen.
- SQL-Injection/Befehlsinjection: Spielen Sie die Rolle eines Hackers, um mit Tools wie W3AF (Web Application Attack and Audit Framework, Download unter http://w3af.sourceforge.net/) auf SQL-Injection-Schwachstellen auf der Website zu scannen. Und überprüfen Sie Benutzervariablen streng, wenden Sie Sonderzeichen-Filtermechanismen über .htaccess-Dateien oder spezielle Module zur Verhinderung von SQL-Injection an.
- Cookie-Poisoning: Speichern Sie keine Passwörter in Cookies, legen Sie entsprechende Ablaufzeiten und Authentifizierungsmechanismen für Cookies fest.
- Pufferüberlauf: Überprüfen Sie die Größe der vom Benutzer bereitgestellten Variablen, damit das Programm die Kontrollmöglichkeiten nicht überschreitet. Sorgen Sie für eine vollständige Ausnahmebehandlung, um zu verhindern, dass Hacker böswillige Anweisungen einfügen.
- Authentifizierungs-Hijacking: Verwenden Sie SSL, um übertragene Daten zu verschlüsseln.
- Verzeichnisnavigation/Unicode: Patches und vollständige Updates müssen installiert werden, strenge Verzeichnis- und Dateizugriffsberechtigungen müssen nach dem Prinzip der geringsten Privilegien festgelegt werden (Benutzern nur nach Bedarf ausreichende Berechtigungen erteilen)
Beispielszenario mit dem Labormodell:
So verbessern Sie die Sicherheit auf dem Metasploitable 3-Ziel (Windows Server):
- Installieren Sie die neuesten Sicherheitsupdates
- Aktivieren Sie die Windows-Firewall und konfigurieren Sie strenge Regeln für eingehenden/ausgehenden Datenverkehr
- Verwenden Sie das IIS-URL-Rewrite-Modul, um bösartige Anfragen zu filtern
- Implementieren Sie eine ordnungsgemäße Eingabevalidierung in allen Webanwendungen
- Verwenden Sie nach Möglichkeit die Windows-Authentifizierung anstelle der Standardauthentifizierung
- Aktivieren Sie die Protokollierung und überprüfen Sie die Protokolle regelmäßig auf verdächtige Aktivitäten.
Techniken zum Knacken von Web-Passwörtern:
Als CEH müssen wir einige Techniken verstehen, die Hacker häufig verwenden, um Passwörter von Webanwendungen zu knacken. Dazu gehören die von Webanwendungen verwendeten Authentifizierungsmethoden, was ein Passwort-Cracker ist sowie das Identifizieren und Klassifizieren von Passwort-Cracking-Techniken, um geeignete Präventivmaßnahmen ergreifen zu können. Wir werden diese Konzepte im folgenden Abschnitt besprechen.
Authentifizierungstypen für Webserver und Webanwendungen:
Webserver und Webanwendungen unterstützen viele verschiedene Authentifizierungsmethoden. Am gebräuchlichsten ist die HTTP-basierte Authentifizierung mit zwei Formen der HTTP-Authentifizierung: Basic und Digest. Beim Basic-Authentifizierungsmodell sendet der HTTP-Authentifizierungsprozess Konto- und Kennwortinformationen im Klartext (unverschlüsselt), während bei der Digest-Authentifizierung das HTTP-Authentifizierungsmodell die Kontoinformationen hasht. Darüber hinaus muss zwischen Client und Server ein Challenge-Response-Schritt ausgeführt werden, um die Sicherheit der Transaktion zu erhöhen.
Wenn Informationen im Klartext gesendet werden, ist die Sicherheit eindeutig sehr gering und Hacker können mithilfe von Sniffer-Tools problemlos Passwörter und Benutzernamen stehlen.
Neben diesen beiden Methoden unterstützt das Authentifizierungsmodell von Webservern und Anwendungen auch NTLM (Authentifizierungsmodell basierend auf dem Windows-Betriebssystem) unter Verwendung digitaler Zertifikate, wie wenn wir das https://-Protokoll verwenden, oder unter Verwendung von Tokens. Am fortschrittlichsten ist der biometrische Authentifizierungsmechanismus, der auf Benutzeridentifikationsmerkmalen wie Fingerabdruck, Stimme, Netzhaut usw. basiert.
Unter diesen Authentifizierungsmechanismen verwendet NTLM Internet Explorer und den IIS-Webserver. Da dieser Mechanismus auf der Windows-Plattform ausgeführt wird, eignet er sich sehr gut zum Überprüfen von Prozessen in internen Systemen oder Intranets mit Windows-Betriebssystemen. Für Serversysteme wie Windows Server 2000/2003/2008 kann Kerberos verwendet werden, um die Sicherheit des Authentifizierungsprozesses von Anwendungen oder Webservern zu verbessern. Bei der Authentifizierung auf der Grundlage digitaler Zertifikate oder Zertifikate werden x.509-Zertifikate verwendet, um öffentliche und private Schlüsselpaare zu implementieren. Wir gehen hier nicht näher auf diese Technologie ein, aber Sie sollten beachten, dass dies eine der beliebtesten Technologien zur Authentifizierung von Benutzern bei Servern oder Webanwendungen ist.
Bei der tokenbasierten Authentifizierung wie SecureID, die wir häufig bei Banken im Online-Überweisungsprozess einsetzen, wird uns jedes Mal, wenn wir uns anmelden oder eine Transaktion durchführen müssen, ein Code gesendet oder zufällig auf einem Hardwaregerät generiert. Nur wenn wir diese Informationen korrekt eingeben, können wir uns anmelden oder die Transaktion durchführen. Ein Beispiel hierfür ist das SecureID-Gerät von TechComBank.
Was ist ein Passwort-Cracker?
Passwort-Cracker sind Programme, die darauf ausgelegt sind, Passwörter zu knacken oder den Prüfmechanismus der Anwendung zu deaktivieren. Diese Tools verwenden häufig wörterbuchbasierte Techniken zum Erraten von Passwörtern oder Brute-Force-Techniken, um Passwörter zu knacken.
Beim Knacken von Passwörtern durch Wörterbuch-Cracker (wir verwenden diesen Begriff anstelle von Hackern) wird in den Wörterbuchdaten eine Liste potenzieller Passwörter erstellt, und zwar mithilfe von Programmen zur Erstellung von Passwortwörterbüchern oder durch Herunterladen vorgefertigter Wörterbücher aus dem Internet. Anschließend werden diese Passwörter mit Hash-Algorithmen verschlüsselt oder gehasht, die häufig zum Hashen von Passwörtern verwendet werden, wie etwa MD5. Und um das Passwort der Anwendung zu knacken, werden die verarbeiteten Passwörter im Wörterbuch mit dem tatsächlichen Passwort verglichen, bis eine Übereinstimmung auftritt (Server oder Anwendung authentifiziert sich erfolgreich); dann ist der Knackvorgang abgeschlossen. Geknackte Passwörter stammen häufig aus der SAM-Datei (Security Account Manager) oder der Datei /etc/passwd auf Webservern mit dem Linux-Betriebssystem (wenn Hacker Websites angreifen, laden sie Trojaner wie c99 oder rv57 hoch, um diese Datei herunterzuladen).
Diese Methode zum Erraten per Wörterbuch ist bei starken Passwörtern jedoch kaum erfolgreich, da es unmöglich ist, genügend notwendige Daten zu sammeln und der Zeitaufwand dafür nicht praktikabel ist. In diesen Fällen wird zum Erraten von Passwörtern die Brute-Force-Technik angewendet. Bei der Brute-Force-Technik werden alle möglichen Zeichenkombinationen ausprobiert, um Passwörter zu erstellen. Ein einfaches Beispiel: Wenn das Passwort nur aus 3 Zeichen (1, 2, 3) besteht, gibt es maximal 8 Ergebnisse und das Tool muss daher nur maximal 8 Mal vergleichen, um das ursprüngliche Passwort zu finden. In Wirklichkeit sind Passwörter jedoch viel komplexer, sodass das Knacken je nach Stärke des Algorithmus und Hardwarekonfiguration des zum Knacken verwendeten Servers länger oder kürzer dauert. Gängige Programme in diesem Bereich, die in CEH oft erwähnt werden, sind L0phtCrack, John the Ripper, Ophcrack … Leistungsstarke Anwendungen kombinieren oft beide oben genannten Methoden zum Erraten von Passwörtern, und diese Technik wird als Hybrid bezeichnet.
Beispielszenario mit dem Labormodell:
Ein Angreifer auf der Kali Linux-Maschine könnte „John the Ripper“ verwenden, um Passwörter des Metasploitable 2-Ziels zu knacken:
- Extrahieren Sie Passwort-Hashes aus Metasploitable 2:
ssh user@[Metasploitable 2 IP] "sudo cat /etc/shadow" > shadow.txt
- Verwenden Sie John the Ripper, um die Hashes zu knacken:
john shadow.txt
Dabei würde versucht, die Kennwort-Hashes sowohl mit Wörterbuch- als auch mit Brute-Force-Methoden zu knacken.
Zusammenfassung:
In diesem Kapitel haben wir die größten Bedrohungen für die Sicherheit von Webanwendungen anhand von Statistiken aus CEH-Dokumenten und der Top-10-Liste der Gefahren von OWASP besprochen. Für jede gefährliche Bedrohung oder Angriffsart müssen spezifische Abhilfemaßnahmen vorhanden sein, aber zuerst müssen wir die Serversysteme härten, um die Sicherheit der Webanwendungen zu perfektionieren.
Bei den Techniken zum Knacken von Passwörtern müssen Sie zwischen zwei Hauptszenarien unterscheiden: wörterbuchbasiertes Knacken und Brute-Force-Knacken. Und um das Knacken von Passwörtern zu verhindern, müssen Administratoren strenge Passwortrichtlinien mit einer Mindestlänge von 8 Zeichen anwenden, die Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten. Darüber hinaus müssen geeignete Prüfmodi und Protokollierungen aktiviert werden, um Angriffssituationen zu erkennen. Insbesondere sollten Sie sorgfältig Backups anlegen, um sicherzustellen, dass im Risikofall Daten noch wiederhergestellt werden können und das System schnell wieder betriebsbereit ist.
Weitere Überlegungen zur Laborumgebung:
- Schwachstellenscan:
Verwenden Sie Tools wie Nmap und OpenVAS auf der Kali Linux-Maschine, um beide Metasploitable-Ziele auf offene Ports und bekannte Schwachstellen zu scannen. Dies hilft dabei, potenzielle Angriffsmethoden zu identifizieren. Beispiel:
nmap -sV -sC -O [Metasploitable IP]
- Web Application Firewall (WAF):
Während Metasploitable-Systeme absichtlich anfällig sind, kann die Implementierung einer WAF wie ModSecurity auf dem Webserver in einem realen Szenario dazu beitragen, viele gängige Webangriffe abzuschwächen. - Überwachung der Dateiintegrität:
Verwenden Sie Tools wie OSSEC auf den Metasploitable-Systemen, um nicht autorisierte Dateiänderungen zu erkennen und davor zu warnen, die auf einen erfolgreichen Angriff hinweisen könnten. - Netzwerksegmentierung:
In einer Produktionsumgebung möchten Sie Ihr Netzwerk segmentieren, um webbasierte Server von internen Ressourcen zu isolieren. Dadurch werden die Auswirkungen begrenzt, wenn ein Webserver kompromittiert wird. - Regelmäßige Penetrationstests:
Verwenden Sie das Kali Linux-System, um regelmäßig Penetrationstests für die Metasploitable-Ziele durchzuführen. Dies hilft dabei, neue Schwachstellen zu identifizieren, die aufgrund von Konfigurationsänderungen oder neu entdeckten Exploits entstehen können. - Sichere Codierungspraktiken:
Obwohl dies nicht direkt auf die Metasploitable-Ziele anwendbar ist (die absichtlich anfällig sind), ist die Implementierung sicherer Codierungspraktiken in realen Szenarien von entscheidender Bedeutung. Dazu gehören die Eingabevalidierung, die Ausgabecodierung und die ordnungsgemäße Fehlerbehandlung. - Kontinuierliche Überwachung:
Richten Sie auf allen Systemen Protokollierungs- und Überwachungslösungen ein. Sie könnten beispielsweise den ELK-Stack (Elasticsearch, Logstash, Kibana) verwenden, um Protokolle von beiden Metasploitable-Zielen zu zentralisieren und auf Sicherheitsereignisse zu analysieren. - Vorfallreaktionsplan:
Entwickeln und testen Sie regelmäßig einen Vorfallreaktionsplan. Verwenden Sie die Laborumgebung, um verschiedene Angriffsszenarien zu simulieren und Ihre Reaktionsverfahren zu üben. - Sicherheitstraining:
Nutzen Sie die Laborumgebung, um IT-Mitarbeiter im Erkennen und Reagieren auf verschiedene Angriffe auf Webanwendungen zu schulen. Diese praktische Erfahrung ist für den Aufbau einer sicherheitsbewussten Kultur von unschätzbarem Wert.
Denken Sie daran, dass die Metasploitable-Ziele zwar so konzipiert sind, dass sie zu Lernzwecken angreifbar sind, in einer realen Umgebung jedoch das Ziel darin besteht, diese Systeme so weit wie möglich abzusichern und gleichzeitig die Funktionalität aufrechtzuerhalten. Das Kali Linux-System dient sowohl als Testplattform für Angreifer als auch als Toolkit für Verteidiger zum Identifizieren und Mindern von Schwachstellen.
Durch regelmäßiges Üben in dieser Laborumgebung können Sicherheitsexperten über die neuesten Angriffstechniken und Verteidigungsstrategien auf dem Laufenden bleiben und so letztendlich ihre Fähigkeit verbessern, reale Webanwendungen und -infrastrukturen zu schützen.