Original-URL des Artikels: https://www.golem.de/news/antivirensoftware-die-schlangenoel-branche-1612-125148.html    Veröffentlicht: 21.12.2016 08:27    Kurz-URL: https://glm.io/125148

Antivirensoftware

Die Schlangenöl-Branche

Antivirenprogramme gelten Nutzern und Systemadministratoren als unverzichtbar. Doch viele IT-Sicherheitsexperten sind extrem skeptisch. Antivirensoftware ist oft selbst voller Sicherheitslücken - und hat sehr grundsätzliche Grenzen.

Wie schütze ich meinen Computer am besten? Wie unterschiedlich die Einschätzung von Experten und Computernutzern - Fachleuten sowie Durchschnittsnutzern - ist, zeigt nicht zuletzt eine Studie von Google. Die befragten Nutzer hielten Antivirenprogramme für die wichtigste Maßnahme, um sich vor Gefahren zu schützen. Das halten jedoch nur sieben Prozent der Experten für besonders wichtig. Umgekehrt ergibt sich ein ähnlich kontroverses Bild. Auf Platz eins bei den Experten: regelmäßige Updates. Die schafften es bei den Nutzern nicht einmal in die Top fünf.

Diese Ergebnisse überraschen kaum einen, der sich in der IT-Security-Szene umhört. Viele Sicherheitsforscher haben keine sehr hohe Meinung von der Antivirenbranche. Als "Schlangenöl" werden solche Programme oft bezeichnet, vergleichbar mit Heilsversprechen von Wundermitteln, die keinerlei nachweisbaren Effekt haben.

Antivirensoftware und andere Sicherheitssoftware sind selbst oft voller Sicherheitslücken. Tavis Ormandy, der für Googles Project Zero arbeitet, hat in jüngerer Zeit eine ganze Reihe von extrem gravierenden Sicherheitslücken in nahezu allen bekannten Antivirenprogrammen entdeckt. Bemerkenswert ist dabei nicht, dass auch Antivirenprogramme Sicherheitslücken haben, sondern, dass es sich oft um besonders peinliche und absolut vermeidbare Lücken handelt. In Sachen Verteidigung stehen die Antivirenprogramme wiederum oft sehr schlecht da: Kein einziges der Programme nutzt eine Sandbox, Exploit-Mitigation-Mechanismen wie Speicherrandomisierung (ASLR) oder Stack Cookies werden oft abgeschaltet.

Chrome-Entwickler sieht Antiviren als Problem für sichere Browser

Der Chrome-Entwickler Justin Schuh hat kürzlich in einer hitzigen Twitter-Diskussion Antivirensoftware als größtes Hindernis bei der Entwicklung sicherer Browser bezeichnet und seine Kritik später in einem Blogeintrag ausgeführt. Auf Twitter stimmte die Mozilla-Sicherheitsexpertin King zu und schrieb, dass Antivirensoftware oft Sicherheitsprobleme in Firefox verursache.

Was Browserentwickler verärgert: Um neue Dateien möglichst früh scannen zu können, versuchen Antivirenprogramme oft, direkt in den Browserprozess einzugreifen. Das ist fehleranfällig und kann zu schwer zu analysierenden Bugs führen. Es führt außerdem dazu, dass Sicherheitslücken in Antivirensoftware plötzlich Browser unsicher machen können.

Nicht selten gibt es zudem Konflikte zwischen der Arbeitsweise von Antivirenprogrammen und anderen Sicherheitsmechanismen. Besonders deutlich ist das bei der weit verbreiteten Praxis, im Browser ein zusätzliches Root-Zertifikat zu installieren und damit verschlüsselte TLS-Verbindungen mittels Man-in-the-Middle-Angriffen aufzubrechen. Das führt nahezu immer dazu, dass die Sicherheit der TLS-Implementierung beeinträchtigt wird. Oft hebelt es bei schlechten Implementierungen den gesamten Schutz von TLS aus.

Vor allem Antivirenlösungen, die auf Netzwerkebene arbeiten, nutzen Man-in-the-Middle-Proxys, um TLS-Verbindungen mitzulesen. Teilweise nutzt aber auch auf dem Client installierte Software ähnliche Mechanismen. Über Sicherheitslücken in der TLS-Interception von Kaspersky und anderen Antivirenprogrammen hat Golem.de vor einiger Zeit berichtet.

Um zu verstehen, warum Sicherheitsexperten so wenig von Antivirensoftware halten, hilft es, sich anzuschauen, wie diese eigentlich funktioniert.

Komplexe Parser mit wenig Schutz

Dass Antivirensoftware nicht den besten Ruf genießt, hat sich inzwischen herumgesprochen, und einige Hersteller nutzen andere Bezeichnungen dafür. Doch die Probleme sind grundsätzlich für alle Ansätze, die versuchen, bösartige Software oder bösartigen Code zu erkennen, dieselben - die Umbenennung löst keine Probleme. Ob Endpoint Protection, Intrusion-Detection- und Intrusion-Prevention-Systeme oder Web Application Firewalls - hinter vielen Begriffen verbirgt sich nichts anderes als eine Antivirensoftware.

Die grundsätzlichen Probleme bestehen weitgehend unabhängig davon, ob die Antivirensoftware auf dem Client oder auf Netzwerkebene arbeitet. In beiden Fällen können Sicherheitslücken in der Sicherheitssoftware selbst zu katastrophalen Folgen führen.

Signaturansatz überholt

Antivirenprogramme gab es bereits auf Amiga-Computern und in der Zeit von MS-DOS. Doch die Situation damals war eine grundsätzlich andere. Es gab Listen mit allen bekannten Viren und Trojanern, die einige Tausend Einträge umfassten. Die wenigsten davon waren jedoch tatsächlich aktiv, viele fand man nur in den Sammlungen von Antivirenherstellern. Antivirenprogramme arbeiteten überwiegend mit Signaturen, beispielsweise, indem Prüfsummen von bösartigen Programmen verglichen wurden, oder direkt durch die Erkennung von entsprechenden Codeteilen.

Dieser Ansatz hat sehr naheliegende Grenzen: Während früher einige Tausend Varianten von Schadsoftware bekannt waren, gibt es heutzutage jeden Tag neue Malware. Der Ansatz, nur bekannte Malware zu erkennen, ist längst nicht mehr praktikabel. Davon kann man sich auch leicht überzeugen: Wenn man eine aktuelle Malware, die man per E-Mail bekommt, über den Service Virustotal prüft, ist es absolut üblich, dass nur ein kleiner Bruchteil der dort getesteten Programme diese erkennt. Die Signaturen können schlicht nicht schnell genug aktualisiert werden.

Mehr Komplexität bedeutet mehr Angriffsfläche

Moderne Antivirensoftware versucht daher, intelligent zu arbeiten und das Verhalten von bösartigen Programmen mit zahlreichen Methoden zu erkennen. Das führt zu einer enormen Komplexität und damit naheliegenderweise zu Risiken. Antivirensoftware enthält unzählige Parser für viele sehr komplexe Dateiformate. Genau das Parsen von komplexen Formaten ist aber die häufigste Quelle für Sicherheitslücken.

Die Beispiele dafür sind praktisch endlos. Für einige Schlagzeilen sorgten mehrere Lücken in Geräten des Herstellers Fireeye. Dessen Geräte nutzten eine Reihe von schlecht gemaintainten Open-Source-Tools, um Dateien zu analysieren. Fireeye machte sich zudem wenig Freunde damit, dass die Firma die Veröffentlichung der Details von Sicherheitslücken juristisch verhinderte.

Das Dilemma: Je intelligenter die Antivirensoftware versucht zu arbeiten, umso größer wird die Angriffsfläche. Deutlich wird das an einer Lücke, die Tavis Ormandy in Comodos Antivirus entdeckte: Dieses Programm startete verdächtige Software zunächst in einer emulierten Umgebung und implementierte Teile des Windows-APIs. Doch eine solche Emulationsumgebung kann von Malware unter Umständen erkannt werden. Um das zu verhindern, leitete Kaspersky Systembefehle, die die Emulationsumgebung nicht unterstützte, zu den echten Systembefehlen unter Windows um. Dass das dazu führte, dass Malware aus ihrer Emulationsumgebung ausbrechen kann, ist wenig überraschend.

Oft widerspricht Sicherheitssoftware guter IT-Sicherheitspraxis in einem grundlegenden Punkt: Mehr Sicherheit lässt sich oft am besten durch weniger Komplexität erreichen. Zusätzliche Software bedeutet mehr Angriffsfläche und mehr Potenzial für Fehler.

Ein sehr viel grundsätzlicherer Einwand gegen Antivirenprogramme hat mit einem sehr zentralen Satz aus der theoretischen Informatik zu tun, dem sogenannten Halteproblem.

Niemand löst das Halteproblem

Das Halteproblem geht auf den Mathematiker Alan Turing zurück. Turing beschrieb es anhand eines theoretischen Modells, der Turing-Maschine. Die Turing-Maschine ist unter bestimmten Annahmen äquivalent mit praktisch allen Programmiersprachen und modernen Computersystemen. Jede Programmiersprache lässt sich auf einer Turing-Maschine emulieren. Andersherum lässt sich in jeder Turing-vollständigen Sprache eine Turing-Maschine darstellen. Praktisch jede gängige Programmiersprache ist Turing-vollständig.

Software automatisiert zu analysieren, hat Grenzen

Alan Turing konnte beweisen, dass es unmöglich ist, mit Hilfe einer Turing-Maschine zuverlässig festzustellen, ob eine andere Turing-Maschine jemals anhalten oder für immer weiterlaufen wird. Diese Aussage lässt sich auf Software übertragen: Eine Software, die versucht, eine andere Software zu analysieren, stößt dabei immer an Limits. Sie kann nicht einmal feststellen, ob diese Software sich wieder beendet oder für immer läuft. Von einer Software generisch feststellen zu lassen, ob sich eine andere bösartig verhält - allein die entsprechende Definition dürfte in vielen Fällen schon schwierig sein -, ist damit außerhalb der Leistungsfähigkeit einer Software.

Letztendlich ist damit klar, dass es eine perfekte Antivirensoftware niemals geben kann. Ebenfalls klar ist, dass Werbeaussagen, die vollständigen Schutz vor Schadsoftware versprechen, absolut unseriös und auch schlicht wissenschaftlich falsch sind.

Nun könnte man argumentieren, dass ein bisschen Malware-Erkennung immer noch besser ist als gar keine. Doch darum geht es nicht: Die entscheidende Frage ist, ob Antivirensoftware angesichts der Masse an Sicherheitslücken, die sie selbst mitbringt, mehr schadet als sie nützt.

Es ist leicht, an dieser Stelle in undifferenzierten Nihilismus zu verfallen, à la "perfekte Sicherheit gibt es sowieso nicht". Doch es ist wichtig zu verstehen, dass die Begrenzungen des Halteproblems für die Erkennung von Schadsoftware gelten, es gibt aber keine vergleichbaren theoretischen Limits für viele andere Ansätze in der IT-Sicherheit.

Fehlerfreie Software ist nicht grundsätzlich unmöglich

Zwar dürfte jeder moderne Browser und jedes größere Softwareprojekt, das Anwender heutzutage nutzen, Sicherheitslücken haben. Doch es ist zumindest theoretisch denkbar, Software zu entwickeln, die frei von bestimmten Klassen von Lücken ist oder deren Funktionalität mathematisch beschrieben und beweisbar ist. Ein Browser ohne Sicherheitslücken ist zwar eine enorme Herausforderung, aber er ist zumindest theoretisch möglich. Ein Antivirenprogramm, das alle Malware erkennt, ist schlicht unmöglich.

Formale Verifikation von Software, sicherere Programmiersprachen und die Ansätze der Langsec-Community sind vielversprechende Ansätze, die eines Tages zu nahezu perfekter Softwaresicherheit führen könnten. Antivirenprogramme werden das niemals leisten können.

Bei aller Kritik an Antivirenprogrammen: Dass Malware grundsätzlich ein Problem ist, dürfte niemand bestreiten wollen. Ganz praktisch stellt sich daher die Frage, was mögliche Alternativen zu Antivirenprogrammen sind.

Regelmäßige Updates sind die wichtigste Verteidigung

Die Möglichkeiten, wie Malware auf ein System kommt, sind begrenzt: Entweder die Schadsoftware gelangt über eine Sicherheitslücke in bereits installierter Software auf das System, oder sie wird vom Nutzer selbst unbewusst installiert. Ein Sonderfall ist auf Systemen bereits vorinstallierte Malware, was leider auch immer wieder vorkommt. Die Grenzen zwischen Schadsoftware, Adware und sogenannten "unerwünschten" Applikationen sind dabei oft fließend.

Angriffe mit Zero-Days sind selten

Der beste Schutz gegen Sicherheitslücken sind regelmäßige Updates. Am wichtigsten ist dabei der Webbrowser, aber auch für alle andere Software gilt: immer die aktuelle Version nutzen! Nahezu in allen Fällen, in denen sich Malware über verseuchte Werbebanner im Netz oder auf gehackten Seiten verbreitet, werden bekannte Sicherheitslücken im Browser oder in Plugins ausgenutzt. Es ist extrem selten, dass Malware über sogenannte Zero-Day-Lücken installiert wird, also über Lücken, für die noch kein Fix bereitsteht.

Ein Dilemma bei Updates ist natürlich, dass es häufig bei Android-Smartphones - und noch häufiger bei IoT-Geräten - keine Sicherheitsaktualisierungen gibt. Das ist eine sehr bedenkliche Entwicklung, für die bislang noch niemand eine gute Lösung präsentiert hat.

Um die Ausnutzung bisher unbekannter Sicherheitslücken zu erschweren, gibt es diverse Exploit-Mitigation-Mechanismen. Dazu gehören neben Sandboxing-Mechanismen die Speicherrandomisierung ASLR, Stack Cookies und nicht ausführbare Speicherbereiche. Nicht alle Applikationen nutzen diese Mechanismen, doch zumindest moderne Webbrowser stehen hier relativ gut da. Zusätzliche Mechanismen werden zurzeit unter dem Stichwort "Control-Flow Integrity" diskutiert, sind aber bislang noch selten im Einsatz.

Doch die Ausnutzung von Sicherheitslücken ist in vielen Fällen überhaupt nicht das größte Problem. Ransomware wird zurzeit sehr häufig über E-Mails verbreitet. Viele Nutzer installieren sich ihre Schadsoftware also schlicht selbst, indem sie auf Mailanhänge klicken.

Application Whitelisting als Alternative

Man mag geneigt sein, hier dem Nutzer die Schuld zu geben und auf bessere Nutzerbildung und Schulungen zu setzen. Doch auch das sehen viele Sicherheitsfachleute nicht ohne Grund kritisch. Bruce Schneier hat hierzu kürzlich einen bemerkenswerten Blogkommentar mit dem Titel "Stop Trying to Fix the User" ("Hört auf zu versuchen, die Nutzer zu reparieren") geschrieben.

Viel besser wäre es, Systeme zu entwickeln, bei denen ein Nutzer schlicht nicht versehentlich auf einen Mailanhang klicken und diesen ausführen kann. Eine mögliche Alternative zu Antivirenprogrammen ist das sogenannte Application Whitelisting. Die Idee dabei: Das System kennt eine begrenzte Zahl von Applikationen, die auf einem System ausgeführt werden dürfen. Bei einem Klick auf eine Applikation, die nicht erlaubt ist, blockiert das System die Ausführung.

Microsofts Applocker bisher nur für Enterprise-Kunden

Das mag sich zunächst ähnlich wie ein Antivirenprogramm mit Signaturen anhören, es gibt aber einen wichtigen Unterschied: Statt eine potenziell unendlich große Liste von bösartigen Programmen zu identifizieren, nutzt man kleine Whitelists von guten Programmen, die auf einem System legitim installiert sind. Alles, was nicht in der Whitelist ist, darf nicht gestartet werden. Ganz praktisch kann man Application Whitelisting in Firmenumgebungen bei Windows-Rechnern als Administrator netzwerkweit mittels der Funktion Applocker konfigurieren.

Leider ist Applocker in den Windows-Versionen für Endanwender nicht vorgesehen. Als Workaround lässt sich jedoch die Family-Safety-Funktion nutzen. Die ist eigentlich als Kindersicherungsfunktion vorgesehen, macht im Grunde nichts anderes und ermöglicht es, eine Liste von erlaubten Programmen zu definieren. Sie kann auch Erwachsene davor schützen, versehentlich bösartige Software auszuführen, indem man alltägliche Aufgaben wie E-Mails lesen und im Netz browsen in einem eingeschränkten Account durchführt.

Ideal ist das alles bisher nicht und es wäre sicher wünschenswert, Application Whitelisting auf Systemen einfacher verfügbar zu machen und nicht nur als Enterprise-Feature anzubieten. Solange keine Zero-Day-Lücken zum Einsatz kommen, ist der Schutz in Kombination mit regelmäßigen Updates komplett: Application Whitelisting verhindert die Ausführung von bösartiger fremder Software, und regelmäßige Updates sorgen dafür, dass bekannte Sicherheitslücken geschlossen werden.

Für Anwender, für die Application Whitelisting nicht praktikabel ist, übrigens noch ein Tipp: Das bei Windows selbst mitgelieferte Windows Defender gilt generell als weniger schlimm in Sachen Sicherheitslücken als andere Antivirenlösungen.

Ansätze in Richtung Application Whitelisting bergen eine ganz anders gelagerte Gefahr, die nur indirekt etwas mit Sicherheit zu tun hat: geschlossene Systeme, in denen der Nutzer nicht mehr die Hoheit hat. Ein typisches Beispiel sind etwa die iPhones und iPads von Apple. In gewisser Weise nutzen die ebenfalls eine Form von Application Whitelisting: Apps dürfen nur aus dem offiziellen Apple Store installiert werden. Der Nutzer wird entmündigt und darf nicht mehr selbst entscheiden, was er auf seinem System installiert.

Doch so problematisch diese Entwicklungen sind: Sie sprechen nicht grundsätzlich gegen Application Whitelisting. Es spricht nichts dagegen, dass Nutzer im Normalfall nur bestimmte Anwendungen ausführen können, es aber immer für den Besitzer eines Geräts - jedoch nicht notwendigerweise für den Benutzer - einen Mechanismus gibt, dies auch zu umgehen und andere Software zu installieren.

Fazit

Antivirenprogramme gelten für viele unbedarfte Nutzer als unverzichtbares Sicherheitsfeature. Doch die Antivirenbranche produziert selbst einen ganzen Haufen an Sicherheitsproblemen. Dass es bislang keine größeren Malware-Fluten gab, die diese Sicherheitslücken ausnutzen, ist fast schon eine Überraschung.

Im Vergleich zu Browsern betreiben Hersteller von Antivirensoftware oft ein geradezu katastrophales Sicherheitsmanagement. Beim Einsatz von Sicherheitsmechanismen ist die Antivirenbranche weit hinterher. Tavis Ormandy wies immer wieder darauf hin, dass bislang kein einziges Antivirenprogramm eine Sandbox nutzt. Es gibt oft von Antivirenherstellern keine Bug Bounties für Sicherheitsforscher - dafür aber manchmal juristische Klagen. Das Parsen von komplexen Dateiformaten ist fehleranfällig und die Malware-Erkennung oft in Konflikt mit anderen, vielversprechenderen Sicherheitsmechanismen. Generell hat der Ansatz, Malware automatisiert zu erkennen, theoretische Grenzen und ist angesichts der Fülle an neuer Malware eigentlich längst überholt.

Auf der vergangenen Black-Hat-Konferenz warb Palo Alto Networks mit dem interessanten Motto "Protect yourself from Antivirus". Allerdings handelt es sich auch dabei weniger um eine echte Abkehr, sondern eher um kreative Umbenennung und Werbung für "bessere" Antivirensoftware. Wie sicher die Produkte von Palo Alto Networks sind, dazu hat - wie üblich - Ormandy etwas beizutragen. "Antivirensoftware ist tot", erklärte ausgerechnet Symantec bereits vor zwei Jahren. Die darauf folgende Einstellung des Verkaufs von Norton Antivirus hat bislang nicht stattgefunden.

Kevin Walker von der Firma Juniper sagte auf der vergangenen IETF-Konferenz: "Antiviren sind tot, sie haben es nur noch nicht bemerkt". Von Junipers ganz eigenen Sicherheitsproblemen abgesehen - solche und ähnliche Äußerungen zeigen, dass viele in der Branche eigentlich wissen, dass sie falsche Lösungen verkaufen. Allerdings verkaufen sie sich wohl zu gut, um damit aufzuhören.  (hab)


Verwandte Artikel:
Microsoft: Windows Defender ATP kommt auch für Windows 7 und 8.1   
(13.02.2018, https://glm.io/132732 )
Incident Response: Social Engineering funktioniert als Angriffsvektor weiterhin   
(25.02.2018, https://glm.io/132972 )
Skygofree: Kaspersky findet mutmaßlichen Staatstrojaner   
(16.01.2018, https://glm.io/132197 )
Zertifikate: Trustico verwundbar für Root-Code-Injection   
(01.03.2018, https://glm.io/133089 )
Virenscanner: McAfee lässt nur noch die USA an den Quellcode   
(27.10.2017, https://glm.io/130857 )

© 1997–2019 Golem.de, https://www.golem.de/