-
Wenn Sie nur Wenn Sie alle Viren ohne weitere Einschränkungen erkennen möchten, markieren Sie einfach alles und jeden als Virus, und schon sind Sie fertig.
-
Wenn Sie alle Programme ordnungsgemäß als a identifizieren möchten Virus oder nicht, dann ist es im ungebundenen Fall unmöglich, da sich das Klassifizierungsproblem auf das Problem des Anhaltens reduziert.
-
Wenn Sie alle Programme ordnungsgemäß als Virus identifizieren möchten oder nicht, Wenn Sie eine endliche Maschine in Betracht ziehen, ist dies theoretisch möglich, in der Praxis jedoch im Allgemeinen nicht möglich.
-
Wenn Sie zulassen, dass der Computer zufällige Fehler erzeugen kann, kann jedes Programm dies sein ein Virus.
ol> Fall 1: Vollständige Virenerkennung
Wenn Sie alle Programme als Viren kennzeichnen, werden sie alle abgefangen. ( Pok'e'mon! )
Beginnen Sie mit diesem Fall, um darauf hinzuweisen, dass es nicht schwer ist, alle Viren zu erkennen. Das spezifische theoretische Problem besteht vielmehr darin, iff -Programme korrekt zu klassifizieren.
Fall 2: In einem allgemeinen, unbegrenzten Szenario kann keine korrekte Klassifizierung vorgenommen werden.
Betrachten Sie die Programm:
doHaltingProblem (); // Keine Virenoperation selbstinstallEveryVirusEver (); // Auf jeden Fall eine Virenoperation, aber wird es passieren?
In diesem Fall ist das Programm nur dann ein Virus, wenn das Stoppproblem angehalten wird und zulässig ist installEveryVirusEver ()
soll auftreten. Die Viruserkennung reduziert sich also auf das Problem des Anhaltens im allgemeinen, ungebundenen Fall.
Fall 3: Möglich durch Brute-Force-Suche in begrenzten Szenarien
Wenn Programme als Viren klassifiziert werden sollen -oder-nicht auf einer endlichen Maschine arbeiten sollen, dann können Sie einfach die Maschine simulieren, die aus jedem möglichen Startzustand läuft. Endliche Maschinen werden irgendwann zu einem früheren Zustand zurückkehren, daher ist es notwendigerweise eine endliche (wenn auch langwierige) Analyse.
Fall 4: Auf Computern, auf denen Fehler auftreten können, können spontan Viren auftreten.
Angenommen, auf einem Computer kann ein Programm ausgeführt werden, das als Virus betrachtet wird, und es besteht eine Wahrscheinlichkeit ungleich Null, dass sich eine zufällige Mutation verschiebt Wenn es sich in diesem Zustand befindet, sollte es schließlich zu einem Viruszustand gelangen.
Das ist eine Art langweiliger Punkt, aber der Vollständigkeit halber.
Diskussion über die Zitat in der Frage
Viren haben keine "Heilung". Es ist mathematisch erwiesen, dass es immer möglich ist, einen Virus zu schreiben, den jedes vorhandene Antivirenprogramm nicht stoppen kann.
- " Secrets & Lies " , Bruce Schneier, Seite 154
Wie in Fall (1) oben ausgeführt, ist es möglich, alle Viren zu kennzeichnen, indem einfach alles als Virus gekennzeichnet wird. das ist einfach. Was unmöglich ist, ist in einem ungebundenen Fall festzustellen, ob jedes mögliche Programm ein Virus ist oder nicht.
Außerdem ist es schwierig festzustellen, ob bestimmte Programme in gebundenen Fällen Viren sind. Betrachten Sie beispielsweise das Programm:
var toExecute = decryptByBruteForce ([Chiffretext]); // Entschlüssele den nächsten Teil des Programms mit brute-forcerun (toExecute); // Den jetzt entschlüsselten Teil des Programms ausführen
Wie in Fall (3) erläutert, kann dieses Programm als Virus klassifiziert werden, wenn es auf einem endlichen Computer ausgeführt wird Da dies das brutale Erzwingen einer verschlüsselten Nachricht erfordern würde, ist dies in praktischen Szenarien wahrscheinlich nicht möglich.
In realen Anwendungen reduziert sich dies auf ein Problem der Heuristik: Antivirenprogramme raten, was ein Virus ist oder nicht. Wenn Sie eine zuverlässigere Sicherheit wünschen, kann ein Antivirenprogramm alles markieren, was sich nicht als sicher erweisen kann, und das Problem umgehen, dass jedes mögliche Programm klassifiziert werden muss.
Leider gibt die Verwendung von Heuristiken sachkundigen Angreifern Sicherheitslücken zum Zielen. Ohne die Quelle des Zitats zu lesen, vermute ich, dass dieses Problem das ist, worauf sie sich beziehen wollten.