Как Антивирусные программы обнаруживают Тестовый Вирус EICAR?

Вы можете использовать scan для разбора текста на числовые значения, которые затем можно использовать в качестве указателя для выбора элементов, которые затем можно сложить вместе. Добавьте quiet = TRUE, чтобы отключить чтение сообщений.

sapply(variable, function(t) { 
              paste( lookup$description[ scan(text=t, sep="^")], collapse="^")} )

Read 1 item
Read 2 items
Read 2 items
Read 1 item
Read 1 item
    1   2^3   1^5     4     4 
  "A" "B^C" "A^E"   "D"   "D" 
11
задан Chathuranga Chandrasekara 17 March 2009 в 08:30
поделиться

1 ответ

По моему скромному мнению, точка тестового вируса должна иметь что-то, что, как и известно, безопасно, и принято как вирус так, чтобы конечные пользователи могли проверить, что программное обеспечение AV включено, и видьте эффект вирусной идентификации. Думайте пожарные учения для программного обеспечения AV.

Я предположил бы, что большинство имеет подпись для него и непосредственно распознает его как таковой.

Я не был бы удивлен, включала ли комбинация двоичных разрядов фактического теста EICAR, оказалось, комбинации двоичных разрядов, которые пахли как коды операций для подозрительного действия, но я не знаю, если это так. Если это, то это мог бы быть допустимый тест простого эвристического вирусного устройства распознавания. Однако, так как тест EICAR был вокруг в течение долгого времени, я также предположил бы, что любая эвристика, что кэши это не достаточно хорошо для ловли чего-либо теперь в дикой природе.

Я не ожидал бы, что распознавание, EICAR является доказательством любого требования, более сильного, чем "AV, установлено и сканирование, что это, как ожидали, просканирует", и при разработке системы AV, я не попытаюсь предъявить любую более сильную претензию об этом.

Обновление:

Фактический тестовый вирус EICAR является следующей строкой:

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

который был тщательно обработан (в соответствии со статьей Wikipedia), чтобы иметь несколько интересных свойств.

Во-первых, это состоит только из печатаемых символов ASCII. Это будет часто включать пробел и/или новую строку в конце, но это не имеет никакого эффекта на его распознавание, или на его функцию.

Который повышает второе свойство: это - на самом деле исполняемая программа для 8 086 ЦП. Это может быть сохранено (с помощью Блокнота, например) в файле с расширением.COM, и это может быть выполнено на MS-DOS, большинстве клонов MS-DOS, и даже в режиме Совместимости с MS DOS командной строки Windows (включая на Vista, но не в любом 64-разрядном Windows, так как они решили, что совместимость с 16-разрядным реальным режимом больше не была приоритетом.)

Когда выполнено, это производит, как произведено строку "EICAR-STANDARD-ANTIVIRUS-TEST-FILE!" и затем выходы.

Почему они переходили к этому усилию? По-видимому, исследователи хотели программу, которую, как было известно, было безопасно запустить, частично так, чтобы живые сканеры могли быть протестированы, не будучи должен получить реальный вирус и рискнуть реальным заражением. Они также хотели, чтобы это было легко распределить и стандартными и нетрадиционными средствами. Так как оказывается, что существует полезное подмножество x86 системы команд реального режима, где каждый байт встречает ограничение, что это также быть печатаемым символом ASCII, они достигли обеих целей.

Статья Wiki имеет ссылку на методичное объяснение того, как программа на самом деле работает, который является также интересным чтением. Добавление к сложности является тем, что единственный способ или распечатать к консоли или выйти из программы в реальном режиме DOS состоит в том, чтобы дать инструкцию по программному прерыванию, код операции (0xCD) которой не является печатаемым 7-разрядным символом ASCII. Кроме того, два прерывания, каждый требует однобайтового непосредственного параметра, один из которых должен был бы быть пробелом. Так как самостоятельно назначенное правило не состояло в том, чтобы позволить пробелы, все четыре из последних байтов программы ("H+H*" в строке) изменяются на месте, прежде чем указатель команд добирается там для выполнения их.

Демонтируя и дамп EICAR.COM с Командой отладки в командной строке на моем поле XP, я вижу:

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]

После выполняющихся инструкций до JGE 0140, последние две инструкции были изменены, чтобы быть:

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

Большинство системных вызовов DOS было диспетчеризировано через INT 21 со значением AH или AX регистр, указывающий функцию для выполнения. В этом случае, AH 0x09, который является строковой функцией печати, которая печатает строку, запускающуюся при смещении 0x011C, завершенный знаком доллара. (Необходимо было распечатать знак доллара с другим приемом в чистом DOS.) INT 20 вызов завершает процесс, прежде чем любые дополнительные байты мимо той точки смогут быть выполнены.

Самоизменение кода было ранним вирусным приемом, но здесь это используется для сохранения ограничения на значения байта, которые могут использоваться в строке. В современной системе возможно, что функция защиты выполнения данных поймала бы модификацию, если это осуществляется на режиме Совместимости с MS DOS, выполняющем файл COM.

33
ответ дан 3 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: