Wie funktionieren Antivirenprogramme?

54

Also habe ich in letzter Zeit über Viren nachgedacht und mich gefragt, wie genau Antivirenprogramme mithalten? Wenn man bedenkt, dass jeder, der ein paar Wochen lang programmiert hatte, etwas zusammenhacken könnte, was unangenehme, unangenehme Dinge für den PC eines anderen macht, würde die Menge allein eine einfache Liste von Hashes unzulässig machen. Wie machen Antivirenprogramme das? Überwachen sie die Prozessaktivität und haben eine 3-Strike-Regel für virusähnliche Vorgänge? Und wenn ja, was hindert es daran, absolut harmlose Dinge auszulösen (wie das Verschieben von Dateien in \ system32)?

Ich habe ein bisschen gegoogelt, aber die regulären Plätze haben nicht besonders geholfen, und ich konnte hier keinen Trottel finden, also dachte ich, es wäre gut zu fragen :)

Phoshi
quelle
4
@ Joe Es ist nicht erforderlich, ein Windows-Tag hinzuzufügen. Ein Antivirenprogramm funktioniert in jedem Betriebssystem auf die gleiche Weise. Auch die Funktionsweise eines AV ist nicht subjektiv.
Alex
Oh. Tut mir leid, ich dachte, dies könnte auf Windows und subjektiv sein. Ich verstehe das
Joe
6
Sie werden vorinstalliert geliefert, wenn Sie einen Laptop kaufen, und klagen 60 Tage lang, dass Sie sie registrieren / bezahlen sollen, bis Sie sie endgültig aus Ihrem System entfernen. Normalerweise sind ihre Dialoge modal und übergeordnet, so dass Sie effektiv von anderen Aktionen abgehalten werden können, und sie bieten niemals eine einfache Möglichkeit zur Deinstallation.
Daniel Daranas
Schlag
Die AV-Heuristik ist hochentwickelt, erkennt jedoch keine neuen Bedrohungen (oder clevere Varianten vorhandener Bedrohungen). Heuristiken führen bei vollständig harmloser Software / Code häufig zu Fehlalarmen. AV-Software ist nützlich, aber häufig eine Krücke, die dem Benutzer ein falsches Sicherheitsgefühl vermittelt. Ich habe viele bekannte Viren auf ( virustotal.com/en ) getestet und Top-Namen wie Symantec, McAfee und AVG erkennen nichts (obwohl Kaspersky im Allgemeinen gut funktioniert). Besser ist es, Ihr System zu kennen, zu beobachten, was Sie tun ... und ein Backup zu haben!
AlainD

Antworten:

17

Dieser Artikel aus dem Jahr 2002 befasst sich mit dem Erstellen einer Antiviren-Engine.

Der Artikel beschreibt die grundlegenden Ideen, Konzepte, Komponenten und Ansätze, die bei der Entwicklung eines Antivirenprogramms von Grund auf aus der Sicht eines Entwicklers / Softwareingenieurs erforderlich sind. Es konzentriert sich auf die Hauptelemente einer Antiviren-Engine (im Folgenden als AV-Engine bezeichnet) und schließt Aspekte wie grafische Benutzeroberflächen, Echtzeitmonitore, Dateisystemtreiber und Plug-Ins für bestimmte Anwendungssoftware wie Microsoft Exchange oder aus Microsoft Office. Obwohl AV-Engines, die für einzelne Plattformen (wie Palm OS oder EPOC / Symbian OS) ausgeführt werden, auf die gleiche Weise entworfen werden können, konzentriert sich dieser Artikel auf das Entwerfen von Multiplattform-Scan-Engines, die weitaus komplexer sind.

Es gibt auch einen Artikel über heuristische Techniken zur Erkennung von Infektionen. Es ist auch eine interessante Lektüre.

Alex
quelle
+1 für diesen Heuristik-Artikel - sehr interessant :)
Phoshi
Das ist es wirklich wert, gelesen zu werden. Der heuristische Teil ist von wesentlicher Bedeutung :)
alex
Nachdem ich das gelesen habe, habe ich einen neu entdeckten Respekt vor Antivirenprogrammen, ziemlich cleveres Zeug!
Phoshi
Sie sind unglaublich komplexe Anwendungen. Leider wurden sie zu etwas, das viele Leute, einschließlich ich, verabscheuen. Benutzerdefinierte, schlampige, unintuitive Benutzeroberflächen, Funktionen, die hinzugefügt werden, um der Featureliste einen weiteren Aufzählungspunkt hinzuzufügen: Aufblähen. Das ist Zeug, das sie zu Albträumen gemacht hat. Die Dinge drehen sich jedoch um; Das beste Beispiel für eine gute AV-Lösung ist MSE.
Alex
Es war das heuristische Zeug, das den Ausschlag gab, sorry Joe: P Gute Antwort, egal :) @alex; Leider muss ich zustimmen, aber das Verständnis der Komplexität unten lässt mich mehr sympathisieren. Es ist ein komplexes Thema und würde nicht ausreichen, um einen potenziellen Kunden anzusprechen. "Anpassbare Farb-GUI!" might :(
Phoshi
13

Vor ungefähr einem Jahr besuchte ich einen Vortrag von Mikko Hyyppönen, einem der Hauptforscher von F-Secure. Er zeigte ihr automatisiertes Testnetzwerk, in dem sie virtuelle Maschinen für jede an sie gesendete Probe erstellen, ihre Struktur analysieren, sie ausführen lassen, alle Aktionen protokollieren, sie mit früheren Proben vergleichen und eine Zusammenfassung erstellen, die ein Mensch später überprüfen kann. Wenn der Mensch zu dem Schluss kommt, dass es sich um einen Virus handelt, generiert das System automatisch die Erkennungssignatur und sendet ein Update an die Kunden. Ich stelle mir vor, dass andere Anbieter ähnliche Systeme haben, um ihre Signaturdatenbanken auf dem neuesten Stand zu halten.

Hirvox
quelle
4

Von Wie funktioniert Antivirensoftware? (AntivirusWorld):

Ein Antivirenprogramm ist ein Computerprogramm, mit dem Dateien gescannt werden können, um Computerviren und andere schädliche Software (Malware) zu identifizieren und zu entfernen.

Antivirensoftware verwendet normalerweise zwei verschiedene Techniken, um dies zu erreichen:

  • Untersuchen von Dateien auf bekannte Viren mithilfe eines Virenwörterbuchs Ermitteln von verdächtigem Verhalten in einem Computerprogramm, das möglicherweise auf eine Infektion hinweist
  • Die meisten kommerziellen Antivirenprogramme verwenden beide Ansätze, wobei der Schwerpunkt auf dem Ansatz des Virenwörterbuchs liegt.

Ansatz des Virenwörterbuchs Wenn die Antivirensoftware eine Datei untersucht, bezieht sie sich beim Ansatz des Virenwörterbuchs auf ein Wörterbuch bekannter Viren, die vom Autor der Antivirensoftware identifiziert wurden. Wenn ein Teil des Codes in der Datei mit einem im Wörterbuch identifizierten Virus übereinstimmt, kann die Antivirensoftware die Datei entweder löschen, unter Quarantäne stellen, sodass die Datei für andere Programme nicht zugänglich ist und sich der Virus nicht verbreiten kann, oder dies versuchen um die Datei zu reparieren, indem Sie den Virus selbst aus der Datei entfernen.

Um mittel- und langfristig erfolgreich zu sein, müssen regelmäßig aktualisierte Einträge aus dem Virenwörterbuch heruntergeladen werden. Wenn neue Viren "in the wild" identifiziert werden, können zivilgesellschaftliche und technisch versierte Benutzer ihre infizierten Dateien an die Autoren von Antivirensoftware senden, die dann Informationen zu den neuen Viren in ihre Wörterbücher aufnehmen.

Eine wörterbuchbasierte Antivirensoftware überprüft normalerweise Dateien, wenn das Betriebssystem des Computers sie erstellt, öffnet und schließt. und wenn die Dateien per E-Mail verschickt werden. Auf diese Weise kann ein bekannter Virus sofort nach Erhalt erkannt werden. Die Software kann normalerweise auch so geplant werden, dass alle Dateien auf der Festplatte des Benutzers regelmäßig überprüft werden.

Obwohl der Wörterbuchansatz als effektiv erachtet wird, haben Virenautoren versucht, einer solchen Software einen Schritt voraus zu sein, indem sie "polymorphe Viren" geschrieben haben, die Teile von sich selbst verschlüsseln oder sich auf andere Weise als Methode der Verschleierung modifizieren, um nicht mit der Signatur des Virus übereinzustimmen im Wörterbuch.

Vorgehensweise bei verdächtigem Verhalten Im Gegensatz dazu versucht die Vorgehensweise bei verdächtigem Verhalten nicht, bekannte Viren zu identifizieren, sondern überwacht das Verhalten aller Programme. Wenn ein Programm beispielsweise versucht, Daten in ein ausführbares Programm zu schreiben, wird dies als verdächtiges Verhalten gekennzeichnet, und der Benutzer wird darauf hingewiesen und gefragt, was zu tun ist.

Im Gegensatz zum Wörterbuchansatz bietet der Ansatz des verdächtigen Verhaltens daher Schutz vor brandneuen Viren, die noch in keinem Virenwörterbuch vorhanden sind. Es wird jedoch auch eine große Anzahl von Fehlalarmen ausgegeben, und Benutzer werden wahrscheinlich für alle Warnungen desensibilisiert. Wenn der Benutzer bei jeder solchen Warnung auf "Akzeptieren" klickt, ist die Antivirensoftware für diesen Benutzer offensichtlich nutzlos. Dieses Problem hat sich in den letzten 7 Jahren besonders verschärft, da viele weitere nicht bösartige Programmdesigns andere .exes ohne Rücksicht auf dieses falsch-positive Problem geändert haben. Daher wird diese Technik in den meisten modernen Antivirensoftware immer seltener verwendet.

Andere Methoden zum Erkennen von Viren Einige Antivirensoftwareprogramme versuchen, den Anfang des Codes jeder neuen ausführbaren Datei zu emulieren, die ausgeführt wird, bevor die Kontrolle auf die ausführbare Datei übertragen wird. Wenn das Programm scheinbar selbstmodifizierenden Code verwendet oder auf andere Weise als Virus auftritt (es versucht sofort, andere ausführbare Dateien zu finden), kann man davon ausgehen, dass die ausführbare Datei mit einem Virus infiziert wurde. Diese Methode führt jedoch zu vielen Fehlalarmen.

Eine weitere Erkennungsmethode ist die Verwendung einer Sandbox. Eine Sandbox emuliert das Betriebssystem und führt die ausführbare Datei in dieser Simulation aus. Nach dem Beenden des Programms wird die Sandbox auf Änderungen untersucht, die auf einen Virus hindeuten könnten. Aufgrund von Leistungsproblemen wird diese Art der Erkennung normalerweise nur bei On-Demand-Scans durchgeführt.

Anlass zur Sorge

Makroviren, die wohl zerstörerischsten und am weitesten verbreiteten Computerviren, könnten weitaus kostengünstiger und effektiver verhindert werden, ohne dass alle Benutzer Antivirensoftware kaufen müssten, wenn Microsoft Sicherheitslücken in Microsoft Outlook und Microsoft Office im Zusammenhang mit Microsoft beheben würde Ausführung von heruntergeladenem Code und die Fähigkeit von Dokumentmakros, sich auszubreiten und Chaos anzurichten.

Benutzererziehung ist ebenso wichtig wie Antivirensoftware. Eine Schulung der Benutzer in sicheren Computerpraktiken, beispielsweise das Nicht-Herunterladen und Ausführen unbekannter Programme aus dem Internet, würde die Ausbreitung von Viren verlangsamen, ohne dass Antivirensoftware erforderlich wäre.

Computerbenutzer sollten nicht immer mit Administratorzugriff auf ihren eigenen Computer ausgeführt werden. Wenn sie einfach im Benutzermodus ausgeführt würden, könnten sich einige Arten von Viren nicht verbreiten.

Der Wörterbuchansatz zum Erkennen von Viren ist häufig unzureichend, da ständig neue Viren erstellt werden. Der Ansatz des verdächtigen Verhaltens ist jedoch aufgrund des falsch-positiven Problems unwirksam. Daher wird das derzeitige Verständnis von Antivirensoftware niemals Computerviren besiegen.

Es gibt verschiedene Methoden zum Verschlüsseln und Packen von schädlicher Software, mit denen selbst bekannte Viren von Antivirensoftware nicht erkannt werden können. Das Erkennen dieser "getarnten" Viren erfordert eine leistungsstarke Entpackungs-Engine, die die Dateien entschlüsseln kann, bevor sie untersucht werden. Leider haben viele gängige Antivirenprogramme dies nicht und können daher verschlüsselte Viren oft nicht erkennen.

Unternehmen, die Antivirensoftware verkaufen, scheinen einen finanziellen Anreiz dafür zu haben, dass Viren geschrieben werden und sich verbreiten, und dass die Öffentlichkeit über die Bedrohung in Panik gerät.

(Dieser Artikel gefällt mir und ich habe ihn nur aus AntivirusWorld kopiert und eingefügt.)

Joe
quelle
Danke :) Heißt das für den Wörterbuchansatz, wenn ich einen bekannten Virencode kopiert und in meine Anwendung eingefügt habe, würde er erkannt, aber wenn ich etwas Ähnliches geschrieben hätte, müsste ich auf das verdächtige Verhalten warten? (Hypothetisch natürlich)
Phoshi
JA .. wird es sein.
Joe
Das macht Sinn, wenn Sie nicht aufhören können, Viren zu produzieren, dann ist es ziemlich gut, den vorhandenen Code zu stoppen (und würde bei unendlich viel Zeit jeden möglichen Virus stoppen - nicht schlecht: P)
Phoshi,
Das ist eine Signatur. Ein Teil des schädlichen Maschinencodes, der mehreren Viren gemeinsam ist.
Alex
Wenn der AV eine Datei mit einem Wörterbuch von beispielsweise 10.000 bekannten Viren vergleicht, warum ist es dann so SCHNELL? Wie kommt es, dass das Scannen jeder Datei Millisekunden dauert
?
3

Phoshi, deine Frage ist sehr interessant, aber ich empfehle dir, deine Suche mit einer anderen zu beginnen. Ich rate dazu, weil die Antworten auf die von Ihnen gestellte Frage Sie irreführen können.

Ich empfehle Ihnen, zunächst darüber nachzudenken, was Sie als Virus betrachten und wie es definiert ist.

Elite-Virenschreiber sind Sicherheitsforscher, keine Skriptkinder. Ihre Virendefinition lautet: "Ein Virus ist ein Teil des Codes, der sich selbst vermehren kann". Das ist es. Wie Sie sehen, werden hier keine zerstörerischen Eigenschaften erwähnt. Alle Viren müssen böse sein - das ist FUD, das Sie von proprietären Antivirenherstellern erhalten, damit sie ihre Software verkaufen können.

IMHO ist es ratsam, Viren als Teil des gesamten Software-Ökosystems zu behandeln, nicht als außerhalb böser "Aliens".

Aussenseiter
quelle
Nun, ich habe gefragt, wie AVs funktionieren, also denke ich, dass die Antworten ... das ganz gut beantworten, aber Sie machen einen sehr guten Punkt, es ist etwas zum Nachdenken :)
Phoshi
Lustig ist es auch, zwei Virenschutzprogramme auf demselben Computer zu beobachten, die versuchen, sich gegenseitig zu töten. Fühlen Sie sich frei zu fragen, warum sie das tun :-)
Geek
1

Eine sehr wichtige Sichtweise auf Viren ist die umgekehrte. Wie gefährden Viren Systeme? Dies ist normalerweise auf Software-Schwachstellen zurückzuführen. Antivirensoftware ist sich dieser Sicherheitsanfälligkeiten bewusst und sucht nach Software, die diese Sicherheitsanfälligkeiten beeinflusst. In jedem Fall tun Viren immer etwas. Sie brauchen also einen Arbeitsprozess, um das zu tun, was sie am besten können. Manchmal ist dies in einem existierenden, manchmal erstellen sie sich selbst.

MOST-Viren funktionieren jedoch auf ähnliche Weise, sodass ein Virenscanner leicht zwischen ihnen unterscheiden kann. Es gibt viele verschiedene Viren, die dieselbe Sicherheitsanfälligkeit ausnutzen!

http://en.wikipedia.org/wiki/List_of_computer_viruses

Grube
quelle