Fred Cohen ist eine Autorität und ein früher Forscher auf dem Gebiet der Theorie von Computerviren. Referenzen finden Sie auf dieser Wikipedia-Seite. Sein Artikel von 1987 wird als vielleicht erste Analogie des Virusprüfungsproblems zum Stoppproblem angesehen.
Die Grundidee besteht darin, ein Programm X zu erstellen, das eine Unterroutine zur Virenprüfung mit einem Programmcode als Parameter aufruft. Wenn das Unterprogramm "ist ein Virus" zurückgibt, beenden Sie das Programm. Wenn "ist kein Virus" zurückgegeben wird, infizieren Sie das System. Ein solches Programm kann nicht durch Diagonalisierung / Widerspruch existieren und seinen eigenen Code als Parameter übergeben. Daher gibt es keinen perfekten Virenprüfer.
Es scheint jedoch ein leichtes Gegenargument zu dieser Aussage zu sein, dass Programm X einen schädlichen Codeabschnitt enthält und dass es irrelevant ist, ob es aufgerufen wird oder nicht - das Programm ist möglicherweise schädlich, wenn es einen "schädlichen Codeabschnitt" enthält.
Soweit ich mich erinnere, wurde dieses Ergebnis separat in einem mathematischen Journal veröffentlicht, kann aber die Referenz derzeit nicht finden.
Ein neueres / fortgeschrittenes Thema ist die Erkennung polymorpher Viren, die ihren Code auf äquivalente, aber zufällige Weise ändern.
Ein weiterer vielversprechender Ansatz, der das Problem des Stillstands zu vermeiden scheint (auf eine Weise, die abstrakte theoretische "No-Go-Theoreme" demonstriert, die irreführend oder in der Praxis sogar nicht anwendbar sein können), besteht darin, eine sichere "Sandbox" zu erstellen, in der ein Programm ausgeführt werden kann, aber nicht etwas schädliches tun.
Der moderne Webbrowser kann als Versuch angesehen werden, ein solches System aufzubauen. Die Komplexität der Sicherung ergibt sich hauptsächlich aus Javascript.
Google baut das NaCL [3] -Framework auf, das teilweise aus der Wissenschaft stammt und derzeit der führende Anwärter auf ein hochfunktionelles Sandbox-System ist, das in den modernen Browser integriert ist und weiterhin Maschinencode zulässt. Ein nachweislich sicherer Softwareprüfer validiert Kandidatenprogramme. Es wurden kürzlich dramatische Verbesserungen angekündigt [4].
Eine neuartige Idee aus jüngster Zeit ist die Verwendung einer graphbasierten Analyse von Ausführungsspuren [5].
Ein neueres Thema der Virtualisierung hat verschiedene Auswirkungen auf die Sicherheit / Anwendungen, z. B. Virenanbieter, die Virtualisierungssysteme erstellen, um Viren usw. zu finden / zu erkennen. [6]
Die Weiterentwicklung des jüngsten Stuxnet-Virus , anscheinend des weltweit ersten staatlich / staatlich geförderten, von der Militärbehörde entwickelten Virus für Cyber- / Spionage- / Sabotagezwecke, hat zu ernsthaften / intensiven akademischen Studien geführt, siehe die ausführlichen Referenzen auf Wikipedia. Es wurde eine neue Variante entdeckt, die auf die Finanzindustrie abzielt und Flamme heißt .
[1] Ein nicht nachweisbarer Computervirus David M. Chess und Steve R. White
[2] Trends in der Computervirusforschung Cohen, 1991
[3] Native Client: Eine Sandbox für tragbaren, nicht vertrauenswürdigen x86-Native-Code von Yee et al. 2009
[4] NaCl soll RockSalt weichen: Informatiker entwickeln ein Tool zur Verbesserung der Softwarefehlerisolierung 2012
[5] Graphbasierte Malware-Erkennung mittels dynamischer Analyse von Anderson et al
[6] Erkennung von metamorpher und virtualisierungsbasierter Malware mithilfe der algebraischen Spezifikation von Webster, Malcolm