Exploits Durch eine Schwachstelle im Programm xyz kann ein Angreifer Schadcode einschleusen. Manchmal reicht es schon irgendwo im Internet auf ein präpariertes Jpg-Bildchen zu klicken und schon holt man sich per Drive-by- Download einen Trojaner auf den PC. Wie kann das sein?
Was sind Exploits? to exploit = ausbeuten Was wird ausbeutet? Programmschwachstellen!
Exploits Malware Race-Condition Exploit DLL-Injection Code-Injection Exploits SQL-Injection Format-String Angriff Buffer-Overflows Einfacher Buffer-Overflow Integer-Overflow Null-Byte-Overflow
Exploits Variable wird vom Programmierer reserviert 2 GB Stack Variable (Puffer) Rücksprungadresse Heap Programmcode
Einfacher Buffer-Overflow Function (char *DatenVonWebServer, int anzahl) { char Puffer [256]; // Stack Buffer-Overflow wenn anzahl > 256 memcpy (Puffer,DatenVonWebServer,anzahl); } // Heap Buffer-Overflow char *p; p = (char *) malloc (anzahl); memcpy (p,datenvonwebserver,anzahl); DatenvonWebserver enthält Exploit, der den Puffer vom Überlaufen bringt + Rücksprungadresse auf Payload (Nutzlast)
Integer-Overflow Function () { int16 PufferLaenge; // Beispiel-1 } PufferLaenge = Laenge_Puffer1 + Laenge_Puffer2; // Integer-Overflow PufferGesamt = Reserviere_Speicher (PufferLaenge); KopierePuffer1InPufferGesamt (); // Buffer-Overflow KopierePuffer2InPufferGesamt (); Function ( int16 laenge,char *data) { char *Puffer; // Beispiel-2 Puffer = (char *) malloc (laenge + 1); // 65535 + 1 = 0!! memcpy (Puffer,data);
Typischer Exploit-Angriff 1. Anwender klickt auf infizierten Web-Inhalt 2. Daten, die Exploit + Payload enthalten werden heruntergeladen 3. Payload (Shellcode) wird ausgeführt. 4. Shellcode installiert Dropper 5. Dropper lädt weitere Schadsoftware nach (z.b. Trojaner)
Gefährdete Programme 1. Alle Programme, die Daten aus unsicherer Quelle verarbeiten, sind gefährdet! 2. Je komplexer das zu verarbeitende Datenformat ist, desto größer ist die Wahrscheinlichkeit von Sicherheitslücken! Internet-Browser Plug-Ins von Internet-Browsern Java-Script Flash Actionscript
Gegenmassnahmen Die zwei Binsenweisheiten 1. Mit eingeschränkten Rechten arbeiten! 2.Immer aktuelle Software verwenden (Updates). - unwirksam gegen 0-Exploits
IPS (Intrusion Prevention System) / Proxy-Server + Einzige Möglichkeit Exploits zu erkennen und zu eliminieren - Erkennt Exploits nur, wenn Signatur des Exploits vorliegt. - Kann Exploit nicht erkennen, wenn Datenstrom verschlüsselt oder ungewöhnlich komprimiert ist.
Personal Firewalls + Kann Dropper eventuell blockieren - Personal Firewalls können leicht umgangen werden
Virenscanner + Können Malware erkennen - Aber nur, wenn Signatur vorliegt bzw. der Programmierer der Malware sich keine Mühe gegeben hat, das Behavourial Blocking des Virenscanners zu umgehen.
Sandboxing / Graphische Firewall Sandboxing erschwert Einnistung des Droppers und der Malware - unsicher Graphische Firewall verhindert Komprommitierung des eigentlichen Systems. + sehr sicher - Einschränkungen, z.b. Kein Up/Download möglich
Softwareentwicklung Software zur Ermittlung von Schwachstellen im Quellcode - findet nur einfache Buffer-Overflows Softwareseitige Massnahmen, die Exploits verhindern sollen, lassen sich entweder mehr oder weniger leicht aushebeln oder reduzieren die Performance z.t. drastisch. DEP (Data Execution Prevention) Stack Smashing Proctection Programmiersprachen ADA? Wissen und Bewußtsein um Exploits und andere Schwachstellen
Application-Whitelistening + Starker Schutz - Exe- Blocker sind sehr restriktiv Exe-Blocker Sanctuary Externe Paketfilter: nufw AlcatrazPlus
Penetration-Testing Metasploit (Exploitbaukasten) + Sehr umfangreich und mächtig - Nur etwas für Spezialisten www.metasploit.org
Alcatraz Softwareentwicklungs GmbH Vielen Dank!