Report: Viren unter Linux

Angriffspunkt Buffer Overflow

Angenommen zur Aufnahme des eingegebenen Benutzernamens für einen Netzwerkdienst wird ein Puffer von 100 Bytes eingerichtet. Werden nun mehr als 100 Bytes an das Programm geschickt und es achtet nicht darauf, kommt es zu einem Buffer Overflow. Der zuständige Daemon, zum Beispiel sendmail, stürtzt darauf hin ab. Ein klassischer "Denial of Service"-Angriff (DoS).

Was hat das mit Viren zu tun? - Daemons wie sendmail werden als "root" ausgeführt. Statt den Puffer mit unsinnigen Daten (zum Beispiel 1000-mal X) überlaufen zu lassen, kann der Hacker auch ein "Ei" ins System legen. Dabei ist ein feindseliges Assembler-Programm in die Zeichenkette, die den Buffer Overflow auslöst, eingebettet. Sowie das Programm abstürzt, tritt dieses Programm in Aktion und manipuliert das System so, dass eine Shell mit root-Privilegien gestartet wird. Der Angreifer kann so auf das System als "root" zugreifen.

Dieser Mechanismus ist natürlich für Virenprogrammierer wie für Hacker gleichermaßen interessant. root-Rechte sind für einen Virus Gold wert. Für ELF-Binaries sind sie die Grundvoraussetzung, um andere Dateien im System zu patchen und so zu infizieren.

Doch gerade das egg/sendmail-Beispiel zeigt noch etwas anderes. Die Grenze zwischen Hacker- und Virenangriff ist hier fließend. Es genügt in diesem Fall voll und ganz eine E-Mail zu empfangen, um das System zu infizieren. Der Anwender muss nicht auf etwas klicken, um den Virus ins System zu bringen. Es reicht vollkommen aus, dass er seine E-Mails abruft.