"Anti-Viren-Software-Häuser behaupten oft, ihre Programme müssten vor einer kritischen Überprüfung geschützt werden. Wenn bekannt wäre, wie sie arbeiten, könnte das dem Anwender schaden und ein Chaos verursachen. Ich bin definitiv anderer Ansicht: Wenn ein Fehler gefunden wird, hat das System eine Schwachstelle. Und die sollte behoben werden. Unklarheit verhindert Fortschritt."
So Tavis Ormandy. Er sucht für Google's Projekt Zero nach Sicherheitslücken, speziell in Anti-Viren-Software. Dass er so oft fündig wird, liegt vor allem daran, dass moderne Betriebssysteme zwar mächtige Sicherheitstechniken zu Verfügung stellen, diese aber von Anti-Viren-Programmen nur unzulänglich genutzt werden. Beispiel: Die Address Space Layout Randomization – oder eingängiger: Speicherverwürfelung.
"Vor dem Hintergrund, dass es hier um Sicherheitssoftware geht, die ständig mit ungeprüften Objekten in Berührung kommt, muss man sagen, das ist ein Must-have, also das ist eine Technologie, die muss eigentlich bei allem Produkten komplett aktiviert sein."
Erklärt Maik Mogenstern, Cheftechniker beim Magdeburger Unternehmen AV-Test. Speicherverwürfelung bewirkt, dass die verschiedenen Programmteile immer an eine andere Stelle des Arbeitsspeichers geladen werden. Digitale Schädlinge verwirrt das oft. Sie kennen sich nicht mehr aus, kommen nicht an ihr Ziel - die Schwachstelle, die sie ausnutzen wollen - und können deshalb auch kein Unheil anrichten. Die Programmierer müssen dazu beim Kompilieren, also bei der Erstellung des ausführbaren Programmcodes eines Softwaremoduls nur auf einen Button klinken. Das tun sie aber oft nicht.
"Wir haben festgestellt, dass ein Drittel bis die Hälfte der Produkte diese Technik gut einsetzt, was aber auch heißt, dass die andere Hälfte diese Technik gar nicht oder nur unzureichend einsetzt."
Sicherheitstechniken werden oft ignoriert
Das liegt daran, dass für Anti-Viren-Software oft auch alte Programmbibliotheken verwendet werden. Oder alte Compiler, die Speicherverwürfelung nicht unterstützen. Eine andere Sicherheitstechnik, die von Anti-Viren-Software oft ignoriert wird, ist die Data Execution Prevention. Sie verhindert, dass Schadcode ausgeführt werden kann, der sich zwischen reinen Daten eingeschlichen hat.
Gewissenhaft geschriebene Software lässt nur die Ausführung von Code zu, der an der dafür vorgesehenen Stelle im Arbeitsspeicher steht. Speicherstellen, an denen Daten stehen, sind für ausführbaren Code tabu.
Programmierer, die sicherheitskritische Software schreiben, Browserentwickler beispielsweise, schirmen besonders gefährdete Programmteile oft auch zur Vorsicht gegen den Rest des Systems ab. Sie packen sie in eine Sandbox. Anti-Viren-Software-Häuser tun das oft nicht.
Bei gewöhnlichen Anwendungsprogrammen könnte man es durchgehen lassen, wenn gelegentlich mal eine Sicherheitsregel missachtet wird. Nicht aber bei Anti-Viren-Software. Die ist nämlich nicht nur direkt mit Schadsoftware konfrontiert, sondern greift auch noch tief ins System ein. Wenn ein Schädling also die Schutzsoftware selbst befällt, hat das verheerende Folgen. So jedenfalls sieht es Joxean Koret, einer jener Sicherheitsexperte, der die Diskussion über unsichere Sicherheitssoftware mit losgetreten hat.
"Ein typisches Problem ist, dass die meisten, wenn nicht alle Anti-Viren-Programme, mit den höchst möglichen Rechten laufen, Root- oder Systemrechten. Bis auf sehr wenige Ausnahmen wird keine Sandbox eingesetzt. Wenn man also einen Exploit für ein Anti-Viren-Programm schreibt, bekommt man mit höchster Wahrscheinlichkeit auf Anhieb Root- oder Systemrechte."