Перейти к содержанию
Сергей Ильин

Битые самплы: детектировать или нет?

Recommended Posts

Сергей Ильин

Обсуждение результатов теста на обнаружение полиморфных вирусов выявило серьезные разногласия в вопросе правильности детектирования "битых" (не рабочих) вариантов полиморфных вирусов.

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

С другой стороны Avira, Лаборатория Касперского, Symantec, Avast и BitDefender, взявшие на Virut'е все большую часть самплов, очевидно считают необходимым детектировать "битые по Доктору" самплы.

Взгляды и доводы диаметрально противоположные. Детектировать или нет?

На лицо конфликт двух подходов, который выливается в то, что результаты любого теста на качество детектирования будут восприняты неоднозначно.

Хочу высказать свою точку зрения. Если какой-либо файл был заражен вирусом, не важно прошло заражение корректно или нет, пользователь должен быть об этом проинформирован. Если же возможно вылечить "битый" файл и вернуть ему первоначальный вид, то это должно быть сделано.

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

Поделиться сообщением


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

Правильней будет сказать - "детектирование работоспособных файлов, которые по какой-то причине были неудачно заражены".

Поделиться сообщением


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

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

Хочу высказать свою точку зрения. Если какой-либо файл был заражен вирусом, не важно прошло заражение корректно или нет, пользователь должен быть об этом проинформирован. Если же возможно вылечить "битый" файл и вернуть ему первоначальный вид, то это должно быть сделано.

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

Очень хочется послушать других вендоров. Где это большинство? Автодятлом наделали или параноидальной эвристикой? Или "проще записать, чем потом объяснять"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dan
Рекомендую для начала ознакомиться с азами структуры PE-файла и с загрузчиком ОС, а потом уже говорить про логику и оверлей.

Несколько лет назад видел прогу, которая при наличии оверлея в своём файле, выделяла память, зачитывала оверлей в эту память и запускала.

Билдер проги так подключал плагины с видеоэффектами если они были нужны автору.

Не факт конечно, что вирус бы "криво" заразил бы такой файл, но шанс, что с виду чистый файл вдруг запустит виря, есть!

И не волнуйтесь Вы так, со структурой PE-файла я знаком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sww
Несколько лет назад видел прогу, которая при наличии оверлея в своём файле, выделяла память, зачитывала оверлей в эту память и запускала.

Билдер проги так подключал плагины с видеоэффектами если они были нужны автору.

Не факт конечно, что вирус бы "криво" заразил бы такой файл, но шанс, что с виду чистый файл вдруг запустит виря, есть!

И не волнуйтесь Вы так, со структурой PE-файла я знаком.

Я, кстати, нисколько не волнуюсь, спокоен как танк. А то, что Вы написали - бред.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
A.
Я, кстати, нисколько не волнуюсь, спокоен как танк. А то, что Вы написали - бред.

Можно вопрос ? Вячеслав, вот вы лично - сколько процедур детектирования сложных полиморф\метаморф вирусов написали (и каких конкретно) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
E.K.
Взгляды и доводы диаметрально противоположные. Детектировать или нет?

IMHO детектить или нет криво зараженные или битые файлы - личное дело каждого АВ вендора. А вот в тестах таких файлов быть не должно.

Кстати, предлагаю составить список... "неоднозначных" файлов:

1. Криво зараженный файл: работоспособен, но вирус никогда не получает управления. (подмножество категории: криво вылеченные файлы).

2. Криво зараженный файл: неработоспособен.

3. Упакованный малвар, порезан посередине или испорчен, код распаковщика отсутствует или сильно испорчен. Файл неработоспособен.

4. Порезанный или испорченный малвар-скрипт.

5. Мусор, который некоторые почтовые черви (вымершие почти) посылали вместо себя в аттаче.

6. Шифрованные скрипты, которые малвары качают с управляющих серверов.

7. Что еще?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sww
Можно вопрос ? Вячеслав, вот вы лично - сколько процедур детектирования сложных полиморф\метаморф вирусов написали (и каких конкретно) ?

Понятия не имею. Причем тут сабж?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
A.
IMHO детектить или нет криво зараженные или битые файлы - личное дело каждого АВ вендора.

Это особенности движков каждого конкретного вендора. Если кто-то находит вирусный код в файле, даже если этот код управление не получает - так что же им - ноги своему движку отрубать исскуственно ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dr_dizel
...Если кто-то находит вирусный код в файле, даже если этот код управление не получает ...

Тогда встаёт вопрос о возможности этого "кто-то" в восстановлении некорректно зараженного файла, иначе этот детект - пустышка. Следовательно, проверка АВ на детект (с битыми сэмплами) без лечения - некорректна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
A.
Тогда встаёт вопрос о возможности этого "кто-то" в восстановлении некорректно зараженного файла, иначе этот детект - пустышка. Следовательно, проверка АВ на детект (с битыми сэмплами) без лечения - некорректна.

О чем и речь. Лечение хорошо бы тоже проверить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Black Angel

Считаю, что такие файлы тоже нужно детектить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dan
О чем и речь. Лечение хорошо бы тоже проверить.

Тут есть другой нюанс.

А как?

Как проверить лечение?

Скажем антивирус1 из 10000 файлов вылечил 5000.

А антивирус2 - 6000.

Антивирус2 круче?

Неправда, так как надо ещё все файлы проверить на корректность лечения.

А как?

Запускать?

А если это ДЛЛ-ки? Или файлы изначально незапускаемые простым нажатием enter.

Сравнивать с эталонами? Так в 99% случаев точного совпадения не будет. А как оценивать разницу тоже не понятно.

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

А это ещё больше осложняет всю процедуру.

Слишком много вопросов.

По моему мнению будет сложнейшая методология и очень сложный тест.

А результаты всё равно все поставят под сомнение ;) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dot_sent
А как?

Как проверить лечение?

Скажем антивирус1 из 10000 файлов вылечил 5000.

А антивирус2 - 6000.

Антивирус2 круче?

Неправда, так как надо ещё все файлы проверить на корректность лечения.

А как?

Запускать?

А если это ДЛЛ-ки? Или файлы изначально незапускаемые простым нажатием enter.

Сравнивать с эталонами? Так в 99% случаев точного совпадения не будет. А как оценивать разницу тоже не понятно.

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

А это ещё больше осложняет всю процедуру.

Есть, собственно, одна идея. Если сильно глупая - просьба не пинать :)

Допустим, у нас есть некий экзешник А и его зараженный и потом вылеченный вариант А'. Что, если сравнивать их по поведению? Написать робота, который будет последовательно запускать, скажем, А, A' и совместно с каждым из них набор диагностических утилит типа FileMon + RegMon + что-то ещё? Тогда можно один раз снять набор таких отчетов для чистого файла А, потом автоматически получить аналогичные от вылеченных файлов и их сравнить, а по степени сходства судить о корректности лечения...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dan
Есть, собственно, одна идея. Если сильно глупая - просьба не пинать :)

Допустим, у нас есть некий экзешник А и его зараженный и потом вылеченный вариант А'. Что, если сравнивать их по поведению? Написать робота, который будет последовательно запускать, скажем, А, A' и совместно с каждым из них набор диагностических утилит типа FileMon + RegMon + что-то ещё? Тогда можно один раз снять набор таких отчетов для чистого файла А, потом автоматически получить аналогичные от вылеченных файлов и их сравнить, а по степени сходства судить о корректности лечения...

Что делать с .dll, .scr ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dot_sent
Что делать с .dll, .scr ?

.scr - экзешник, так что с ними все то же самое.

С .dll - у меня лично идей нет. Можно, конечно, запускать приложение, которое загрузит исследуемую библиотеку, но лично я писать парсер для отчетов в таком случае не возьмусь :) Впрочем, идея на полноту и не претендовала...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alexgr

свои 5 копеек. Вылеченный - не значит идентичный исходному, а просто с восстановленной функциональностью. При чем тут сравнения вовсе? Именно функциональность и есть критерием жизни этих файлов после дезинфекции (западное словечко, но правильное)

Возвращаясь к теории надежности - исправный и работоспособный не есть синонимы. Второй может иметь дефекты существенно не влияющие на функциональность или показатели качества функционирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин
Возвращаясь к теории надежности - исправный и работоспособный не есть синонимы. Второй может иметь дефекты существенно не влияющие на функциональность или показатели качества функционирования

Вот вот, кто и как это будет проверять? На каких критериях основываться при анализе вылеченных файлов?

А если зараженных/вылеченных файлов, например, 1000 или 10000? :)

Кстати, предлагаю составить список... "неоднозначных" файлов:

А как на счет различных версий ОС? Если мы проводим тест на XP, но зараженный сампл на ней не запускается. Исключаем из коллекции? Вопрос весьма спорный ИМХО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ThreatSense®Vitalik

Невозможно поставить АВ в равные условия, если имеются такие спорные моменты. Потому зловреды в базе должны быть 100% НЕ битые и "зловредные" (в смысле, чтобы не фолсить).

Вирус по определению должен причинать вред. А если нет вреда, то нет и проблемы.

Отредактировал Umnik
даже объяснять не буду

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ASMax
Сравнивать с эталонами? Так в 99% случаев точного совпадения не будет.

Можно сравнить с эталонными файлами посекционно на предмет совпадения первых MIN(VirtualSize, RawSize) байт. Импорт и ресурсы (если менялись) можно сравнить с эталонами уже не как массивы, а как соответствующие структуры, исключив эти области из общей проверки. Плюс сверить ключевые поля заголовков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dr.Golova
Можно сравнить с эталонными файлами посекционно на предмет совпадения первых MIN(VirtualSize, RawSize) байт. Импорт и ресурсы (если менялись) можно сравнить с эталонами уже не как массивы, а как соответствующие структуры, исключив эти области из общей проверки. Плюс сверить ключевые поля заголовков.

И даже при полном совпадении это не означает корректное лечение - у инсталлятора мог повредиться оверлей с данными. Без полной установки понять что он умер невозможно. Часто даже при "ручной" проверке это сложно понять.

А ведь файлы в исталляшке могут быть изначаль повреждены, как например одня из dll корейской локализации в офицальном аппловском iTunes :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • PR55.RP55
      .xml  файлы taskschd.msc Могут быть подписаны  цифровой подписью. Думаю будет нелишним, если uVS будет это фиксировать. т.е. проверять не только подпись целевого файла, но и подпись самого файла\задачи. и писать в ИНфО .  
    • demkd
      ---------------------------------------------------------
       4.15.2
      ---------------------------------------------------------
       o Исправлена ошибка при работе с образом автозапуска.
         Для некоторых процессов команда unload не добавлялась в скрипт при нажатии кнопки "принять изменения".  o Добавлена плашка окна на таскбаре для окна удаленного рабочего стола.
         (при работе с удаленной системой) -----------------------------------------------------------
      Есть проблема с локализацией глюка в редких случаях приводящему к аварийному завершению uVS при активном флаге "Проверять весь HKCR".
      На основе дампов его найти не получается, нужна копия реестра системы с такой проблемой, если кому-то попадется такая проблема, то присылайте архив с копией реестра системы мне на почту.  
×