Pull to refresh

Оригинальный тест антивирусов

Reading time 2 min
Views 5K
В этой мини статье я пролью свет на некоторые особенности работы антивирусов по сигнатурам, а также расскажу почему создателям ПО необходимо тщательно подходить к вопросу выбора упаковщиков, если они не хотят замочить репутацию свою и своей программы.

Пару дней назад, сам для себя не планируя, провёл интересный тест антивирусов. А началось всё с того, что я, бродя по затерянным папкам своего диска, наткнулся на парочку троянов. Когда-то (в далёком 2004 году) я проводил уже тест антивирусов. Там же можете глянуть результаты проверки в моих постах и постах других пользователей. Тогда я взял парочку троянов и несколько программ, модифицирующих бинарник (различные упаковщики и другое ПО, полный список приводится в конце). Вот я и загорелся идеей посмотреть: а что же именилось через 7 лет?

К сожалению, исходного теста у меня не осталось. Только его части. Но и этого оказалось достаточно для эксперимента и некоторых выводов. Тесты проводились на www.virtest.com. Это должно, по идее, гарантировать актуальность результатов и на сегодняшний день.

Первое открытие ждало меня, когда я проверял трояна DTr в его исходном виде. Оригинальный файл трояна упакован UPX. Результат проверки: из 41 антивируса только 2 (eTrust и AVL) не смогли его определить. Дальше я проверил незапакованный файл того же трояна (также поставлялся разработчиком). На этот раз его отловили только 31 из 41. Возникает резонный вопрос: а чего же тогда антивирусные лаборатории добаляют в семплы, если таким простым способом можно их обойти? Например, существует куча распаковщиков UPX.

Дальше я протестировал трояна Pinch, обработанного разными упаковщиками и другими программами того же бородатого 2004 года. Результат такой (количество антивирусов, нашедших вирус к общему количеству антивирусов):

Изучив некоторые реакции антивирусов, я пришёл к выводу, что они ругались скорее на применение упаковщиков, нежели на саму сигнатуру трояна. Например вот запись:
ClamWin Pinch_1.exe PUA.Packed.ASPack
или вот:
Webroot Pinch.exe Sus/UnkPacker
не смог распаковать и ругается.

Я вспомнил, что Pinch поставлялся с упаковщиком fsg. А ещё вспомнил, как на одном из семинаров представитель VBA32 рассказывал, что в ряде случаев в базу добавляется упаковщик — если есть уверенность, что упаковщик мало распростнанён и применяется именно для сокрытия сигнатуры вируса. По словам вирусного аналитика, такие упаковщики часто пишут сами вирусописатели. Что ж, доля правды есть. Особенно если вспомнить какое распростарение раньше было у различных «криптовальщиков файлов».

Следующий мой эксперимент: взять безобидную программу и попытаться её обработать различными упаковщиками. В качестве «жертвы» я выбрал написанную мной программу ArpBuilder.

Результат:
  1. на использование PeCompact ругнулся ClamWin.
  2. на применение fsg отругались 24 антивируса.

В связи с этим, рекомендую программистам проверять своё «детище» после обработки упаковщиками. Иначе это может подмочить репутацию вашего софта, а вам долго придётся объяснять, что «произошло недоразумение». По моим наблюдениям, с использованием UPX таких проблем не возникает.

Для тех кто хочет провести свои аналогичные эксперименты, привожу списки использовавшихся программ (некоторое ПО на сайтах обновлялось после 2004 года):
  1. Avx!AVSpoffer
  2. DotFix FakeSigner
  3. fsg
  4. HidePE, StealthPE
  5. PECompact
  6. pe-patcher
Tags:
Hubs:
+6
Comments 6
Comments Comments 6

Articles