Сергей Ильин

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

В этой теме 21 сообщений

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

7. Что еще?

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

А как?

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

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

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

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

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

А как?

Запускать?

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

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

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

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

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

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

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

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


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

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

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

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

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

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

А как?

Запускать?

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти с помощью Facebook Войти Войти с помощью Twitter
Anti-Malware.ru Вконтакте   Anti-Malware.ru в Facebook   Anti-Malware.ru в Twitter   Anti-Malware.ru в LinkedIn   RSS