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.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Komplexe Parser mit wenig Schutz | Regelmäßige Updates sind die wichtigste Verteidigung |
Wo kann man so n Glas voll Öl mit 'ner Schlange kaufen? Das würd' ich mir auf den...
Als Ausnahme definieren?
Nein, sind sie nicht. Verschlüsselung hat auf einem kompromittierten System absolut...
Die Browserhersteller haben es doch auch gelernt. Bei wirklich komischen Situationen...
Ich habe noch nie einen Online-Virenscanner benutzt (sondern nur c't desinfec't Scanner...