Schadensprogramme und ihre Bekämpfung
Abwehr von Schadensprogrammen
- Im allgemeinen sind Algorithmen von anderen Algorithmen nicht überprüfbar
wegen der Unlösbarkeit des Halteproblems
- man kann prüfen, ob gewisse Operationen vorkommen (die z.B. etwas aus dem Dateisystem lesen)
- man kann die Dateien nach Mustern schon bekannter Viren durchsuchen
- man kann (kryptographische) Checksummen von Dateien machen
Falls man eine Änderung entdeckt, kann man ein Muster für 3. finden
Zu 1: in [SHN] wird berichtet, daß Fred Cohen schon gleich die allgemeine Unentscheidbarkeit festgestellt hat:
Es ist im allgemeinen unmöglich,mittels eines Programmes ein Virus
- an seiner Funktionsweise zu erkennen
- an seinem Auslösemechanismus zu erkennen
- die Mutationen zu erkennen.
Der Beweis der Unentscheidbarkeit geht wie die des Halteproblems:
Angenommen, wir hätten eine Routine
V(P) = 1, falls P virus ausführt
= 0 nicht.
Betrachten wir das Programm G(P):
if(V(P)==1) then return 0
else virusfunktion();
Man betrachte G(G):
Falls G(G) nun die virusfunktion() ausführt, führt es sich nicht aus
und umgekehrt.
⇒ Ein solches Programm kann es also gar nicht geben !!!
Natürlich, wie bei anderen allgemein unentscheidbaren Problemen in der Informatik kann es Unterkategorien geben, die entscheidbar sind.
Virenscanner
konkrete Virenscanner
- ClamAV
- OpenSource Virenscanner für Mailgateways usw.
Beschreibung von Wikipedia
Es gibt unoffizielle Signaturen die die Erkennungsrate verbessern.
- Virustotal.com
- hier kann man verdächtige Dateien hochladen, die dann analysiert werden.
Mit diesem Dienst kann man auch bösen Code verbessern, siehe Cyberkriminelle nutzen Antiviren-Webdienst VirusTotal, um Schadcode zu verfeinern 3.9.2014
Virenscanner können auch Spionagetools sein, die gleichzeitig nch interesanten Informationen suchen, deshalb ist dies auch eine Sache des Vertrauens.
Schutzumgebung und priviligierte Befehle
Algorithmen laufen auf (virtuellen) Maschinen, die die Elementaroperationen
bereitstellen. Man weiß vorher, welche Elementaroperationen gefährlich
werden können und diese kann die Maschine kontrollieren.
Beispiele:
- CPU mit Betriebssystemkern
- Moderne Prozessoren können Instruktionen priviligieren, so daß
nur der Betriebssystemkern diese ausführen darf.
Moderene Prozessoren unterstützen Speichersegmente hardwareseitig
so daß ein Betriebssystem Betriebsmittelumgebungen implementieren
kann, so daß die Auswirkungen beschränkt werden können.
Damit kann ein Betriebssystem die Sicherheitskonzepte wie Nutzer,Objekte
und Rechte implementieren, deren Einhaltung vom Betriebssystemkern
und von der Hardware überprüft werden können.
(Dann kommt es noch auf die Sicherheitspolitik an).
Ein einfaches Beispiel ist das UNIX-Betriebssystem.
- Java Virtual Machine
- Die JVM hat ein ausgefeiltes Sicherheitskonzept. Neben dem
Sandkastenparadigma tragen auch Sprachmechanismen, die effizient beim
Laden einer Klasse vom Laufzeitsystem überprüft werden können, zur
Sicherheit bei.
Dieses ist ein Vorbild für andere Interpreter.
Eigentümer von Objekten wollen anderen Rechte an ihren Objekten gewähren.
Das Sicherheitsproblem besteht darin, zu gewährleisten, daß Rechte nicht
an Unbefugte durchsickern können.
Dieses Problem ist in der Allgemeinheit wieder unentscheidbar.
Man kennt in der Literatur Einschränkungen, die entscheidbar sind.
Militärs und Geheimdienste nutzen solche ...
PC-Konzept
Mitte der 80er Jahre kam das Konzept des Persönlichen Computers auf.
Damals konnte man noch keinen Prozessor mit obigen Mechanismen auf
einem IC herstellen. Da dieser nicht sehr leistungsfähig war, verzichtete
man auf fast alle Mechanismen im Betriebssystem. Das Sicherheitskonzept
bestand darin, seinen PC einzuschließen.
Obwohl die Prozessoren sehr bald leistungsfähiger wurden, wurde die Betriebssysteme nicht angepasst und seine Nachfolger machen bis heute Sicherheitsbewußten
Sorgen ....
Mittlererweile hat aber der selben Herstellern richtige Betriebssysteme neuerer Technologie, welches den Jüngern der jeweiligen Herstellerfirma wärmstens empfohlen wird.
Hier versucht man zu kontrollieren, welche Programme auf einem Rechner laufen dürfen
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber