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

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

Пару дней назад, сам для себя не планируя, провёл интересный тест антивирусов. А началось всё с того, что я, бродя по затерянным папкам своего диска, наткнулся на парочку троянов. Когда-то (в далёком 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
Поделиться публикацией

Комментарии 6

    0
    Открыли Америку.
    Уже давно идет борьба с «Антивирусными» компаниями по поводу использования упаковщиков.
    Многие не удосуживают себя распаковывать архивы и смотреть, что там, а сразу рисуют вердикт по упаковщику.

    Вспоминается злостная переписка автора одной софтины с службой поддержки Eset, которая после каждого обновления его детища детектировала его как вреденосный объект. И только после обращения к ним, они добавляли хеш его билда в белый лист.
      0
      Политика антивирусных компаний — это не самый интересный вопрос. И не его я хотел поднять своим постом. Вопрос, на самом деле, стоит более глубоко, чем может показаться.

      1. С одной стороны у программиста есть желание защитить свой код от реверсинга и взлома (особенно если он распространяет свою программу за деньги).
      2. С другой — антивирусы, которые грозятся подмочить репутацию кодера и его программы при использовании упаковщиков и протекторов.

      И как быть в данной ситуации?
        +2
        По мне, так нужно бороться с вендорами, которые позволяют себе детектить софт по пакерам, большими и красивыми баннерами на своем официальном сайте, где будет указано, что такие то АВ плохие.
          0
          Ну тут силы явно не равны. Одно дело, когда с вендорами АВ борется известный производитель, и совсем другое, когда начинающая компания или компания с узким кругом потребителей. Имхо, таким компаниям придётся считаться с «капризами антивирусов», а не наоборот
      +1
      Понимаю еще если протектор сложный или редкий, тогда еще можно понять. Но Aspack, upack… это мягко сказать безобразие.

      А по факту возьмите прогу, накройте её VB упаковщиком с оверлеем, а сверху каким-нибудь .NET, и все — почти ничей сканер не покажет, пока до АВ лабораторий не дойдет семпл.
        0
        Но тогда потребуется наличие .NET framework чтоб это сработало на потенциальной «жертве». Да, он входит в Vista и Win7. Но вот в XP не входит.

        Что такое «VB упаковщик с оверлеем»?

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое