Frage

Der EICAR-Testvirus wird verwendet, um die Funktionalität der Anti-Viren-Programme zu testen. Um es als Virus zu erkennen,

Sollte das Antivirus-Programm, um die Virendefinitionen für den Test Virus

oder

Die Heuristik erkennt sie als verdächtige Muster und es als Virus erkennen.

(Ich habe eine Gelegenheit gesehen, dass ein AV-Programm die Datei löscht, während das Herunterladen, aber ohne das Virus als EICAR-Testvirus identifiziert Wie ein verdächtiges Objekt. -> dh wenn es die Definition hat, soll sie den Namen des Virus identifizieren, Details etc Ist es nicht?)

War es hilfreich?

Lösung

IMHO ist der Punkt des Testvirus, etwas zu haben, das sowohl bekannt ist harmlos, und als Virus angenommen, so dass Endanwender, dass die AV-Software auf verifizieren kann eingeschaltet wird, und kann die Wirkung eines Virus sehen Identifizierung. Denken Sie Feuerbohrer, für AV-Software.

Ich könnte mir vorstellen, dass die meisten eine Signatur für sie haben, und es direkt als solche erkennen.

Ich wäre nicht überrascht, wenn das Bitmuster des eigentlichen EICAR-Test passiert Bitmuster enthalten, die wie OP-Codes für verdächtige Aktivitäten roch, aber ich weiß nicht, ob das der Fall ist. Wenn ja, dann könnte es gültige Test eines einfachen Heuristik Virus-Erkennungs sein. Da jedoch die EICAR-Test hat sich für eine lang Zeit, würde ich auch vorstellen, dass jede Heuristik, die es Caches ist nicht gut genug, alles jetzt in der freien Natur zu fangen.

Ich würde nicht erwarten, dass die Anerkennung EICAR Nachweis eines ist dadurch stärker als „die AV installiert ist und das Scannen, was es zu scannen erwartet“, und wenn einem AV-System zu entwickeln, würde ich versuchen, nicht stärker Anspruch geltend zu machen über sie.

Update:

Der tatsächliche EICAR-Testvirus ist die folgende Zeichenfolge:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

, die sorgfältig ausgearbeitet wurde (nach dem Wikipedia-Artikel ) ein paar interessante Eigenschaften haben .

Zuerst, es besteht aus nur druckbare ASCII-Zeichen. Es wird oft auch Leerzeichen und / oder eine neue Zeile am Ende, aber das hat keinen Einfluss auf die Anerkennung, oder auf seine Funktion.

Welche wirft die zweite Eigenschaft: es ist in der Tat ein ausführbares Programm für einen 8086-CPU ist. Es kann (via Notepad zum Beispiel) in einer Datei mit der Erweiterung .COM gespeichert werden, und es kann auf MS-DOS, die meisten Klone von MS-DOS, und auch in dem MS-DOS-Kompatibilitätsmodus der Windows-Eingabeaufforderung (einschließlich Vista ausgeführt werden, aber nicht auf einem 64-Bit-Windows, da sie entschieden, dass die Kompatibilität mit 16-Bit-Real-Modus nicht mehr eine Priorität.)

Wenn er gestartet wird, erzeugt es als Ausgabe die Zeichenfolge "EICAR-STANDARD-ANTI-VIRUS-TEST-FILE!" und dann beendet.

Warum sind sie zu diesem Aufwand? Offenbar wollten die Forscher ein Programm, das sicher zu sein war bekannt zu laufen, teilweise, so dass Live-Scanner, ohne dass geprüft werden könnten einen echten Virus zu erfassen und eine echte Infektion zu riskieren. Sie wollten es auch einfach sein, sowohl von konventionellen und unkonventionellen Mitteln zu verteilen. Da es stellt sich heraus, dass es eine nützliche Teilmenge des Befehlssatzes x86 Real-Modus ist, wo jedes Byte die Einschränkung erfüllt, dass es auch ein druckbares ASCII-Zeichen sein, erreichten sie beide Ziele.

Der Wiki-Artikel hat einen Link zu einem Blow-by-Blow-Erklärung , wie das Programm tatsächlich funktioniert, die auch eine interessante Lektüre ist. Zusätzlich zu der Komplexität ist die Tatsache, dass der einzige Weg, um entweder auf die Konsole zu drucken oder ein Programm in DOS Realmodus verlassen ist einen Software-Interrupt-Befehl zu erteilen, dessen Opcode (0xCD) keine druckbaren 7-Bit-ASCII-Zeichen. Darüber hinaus erfordern jeweils die beiden Interrupts einen ein Byte sofort Parameter, von denen brauchen würde ein Leerzeichen sein. Da die selbst auferlegte Regel keine Leerzeichen erlauben sollte, alle vier des letzten Bytes des Programms ( „H + H *“ in der Zeichenkette) an Ort und Stelle geändert werden, bevor der Befehlszeiger da, um sie auszuführen bekommt.

Auseinanderbauen und EICAR.COM an einer Eingabeaufforderung auf meiner XP-Box mit dem DEBUG Befehl Dumping, sehe ich:

0C32:0100 58            POP     AX
0C32:0101 354F21        XOR     AX,214F
0C32:0104 50            PUSH    AX
0C32:0105 254041        AND     AX,4140
0C32:0108 50            PUSH    AX
0C32:0109 5B            POP     BX
0C32:010A 345C          XOR     AL,5C
0C32:010C 50            PUSH    AX
0C32:010D 5A            POP     DX
0C32:010E 58            POP     AX
0C32:010F 353428        XOR     AX,2834
0C32:0112 50            PUSH    AX
0C32:0113 5E            POP     SI
0C32:0114 2937          SUB     [BX],SI
0C32:0116 43            INC     BX
0C32:0117 43            INC     BX
0C32:0118 2937          SUB     [BX],SI
0C32:011A 7D24          JGE     0140

0C32:0110                                      45 49 43 41               EICA
0C32:0120  52 2D 53 54 41 4E 44 41-52 44 2D 41 4E 54 49 56   R-STANDARD-ANTIV
0C32:0130  49 52 55 53 2D 54 45 53-54 2D 46 49 4C 45 21 24   IRUS-TEST-FILE!$

0C32:0140 48            DEC     AX
0C32:0141 2B482A        SUB     CX,[BX+SI+2A]

Nach Anweisungen bis zu JGE 0140 Ausführung, die letzten beiden Anweisungen modifiziert wurden, zu sein:

0C32:0140 CD21          INT     21
0C32:0142 CD20          INT     20

Die meisten DOS-Systemaufrufe wurden durch INT 21 mit dem Wert des AH oder AX Register unter Angabe der Funktion geschickt auszuführen. In diesem Fall ist AH 0x09, was der Druck istString-Funktion, die die Zeichenfolge druckt bei Offset 0x011C starten, das Dollarzeichen beendet. (Sie hatte ein Dollarzeichen mit einem anderen Trick im reinen DOS zu drucken.) Der INT 20 Anruf beendet den Vorgang, bevor irgendwelche zusätzlichen Bytes über diesen Punkt ausgeführt werden.

Self-modifizierenden Code war ein früher Virus Trick, aber hier ist es verwendet wird, um die Beschränkung auf Byte-Werten zu erhalten, die in der Zeichenfolge verwendet werden kann. In einem modernen System ist es möglich, dass die Datenausführungsschutz-Funktion die Änderung fangen würde, wenn das auf MS-DOS-Kompatibilitätsmodus erzwungen wird eine COM-Datei ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top