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

Тест антивирусов на детектирование полиморфных вирусов (результаты)

Recommended Posts

Valery Ledovskoy
Во-первых баллы взяты не с потолка - смотри методологию.

А я и не говорю, что они взяты с потолка. Я пытаюсь уточнить выбор условий.

В данном случае Вы выделение точно 100%-ного результата тоже поддерживаете, даже не смотря на мои аргументы?

Вот возьмём искусственный контрпример для критики балльной системы.

Есть антивирусы А и Б и вирусы V1, V2, V3

При этом, допустим, получились такие результаты:

По V1:

А - 100%

Б - 99,99%

По V2:

А - 99,99%

Б - 99%

По V3:

А - 98,99%

Б - 90%

По первому вирусу могу сказать, что различие в 1 балл для антивирусов А и Б является несправедливым, т.к. не учитывается погрешность измерений, которая присуща любому подобному тесту.

По второму и третьему вирусу могу сказать, что одинаковые баллы для антивирусов А и Б не является справедливой оценкой, т.к. специфика детекта полиморфных вирусов говорит мне о том, что результат в 99% и 99,99% являются существенно разными результатами, так же, как и различие в 90% и 98,99%.

Если ситуация повторится для нескольких вирусов, то результаты исказятся значительно.

Причина - именно дискретность балльной системы.

А ваше сваливание всего в одну кучу приводит к тому, что продукты, которые показали откоровенно провальные результаты по какому-то семейству - попали в красный сектор, вылезают выше чем они того стоят.

Это можно обсуждать. Например, использовать не линейную шкалу, а экспоненциальную. Она будет однозначно лучше балльной. Собственно, балльная система призвана создать нелинейную шкалу оценки различных процентных показателей, но её дискретность делает эту оценку слишком грубой.

кроме того оценка просто по уровню детекта в случае с полиморфами тоже не совсем уместна, поскольку процентики по смемйству Валерий, это не уровень детекта разных вирусов, это способность антивируса справляться с многообразием образцов одного и того же вируса. Причем поскольку это полиморф - то это многообразие сидит не на разных компах, а на компе одного и того же пользователя. И этому пользователю будет по большому счету все равно 80% этого многообразия вы у него на компе нашли или 30% - все равно у него проблемы и большие.

С этим согласен. Экспоненциальная шкала оценки уровня детекта спасёт при этом и будет ли более точной, чем балльная?

я бы скорее брал средний детект по всем семействам - но и тут есть свои косяки

Да, идеальной системы оценки не добиться, но её можно сделать более объективной, согласны?

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


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

Самый большой прикол в том, что:

1) Кто определил, что именно так надо разбивать на семейства? Тот кто дал сэмплы?

2) Кто сказал о том, что Starman (Allaple) вообще вирус? Ни разу не вирус, даже файлы не заражает. Это просто полиморфный дроппер. Так вот, его детект напрямую зависит от того был ли данный экземпляр дроппера у вирлаба или не был. Это связано со спецификой сигнатуры и "подпрограммы", которая ловит уже все остальное.

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

p.s. И напоследок про Авиру: а сколько сэмплов этот антивирус поймал с четким определением принадлежности к вирусу? А не Xpack/HEUR? :lol: Ведь если там был HEUR, то вы сами понимаете какое будет лечение :angry:

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


Ссылка на сообщение
Поделиться на другие сайты
Иван
С этим согласен. Экспоненциальная шкала оценки уровня детекта спасёт при этом и будет ли более точной, чем балльная?

кстати существующая балльная оценка сродни экспоненте

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


Ссылка на сообщение
Поделиться на другие сайты
Николай Головко
кстати а кто такой умный грохнул 8 постов?

Умный зачистил четыре взаимных наезда и четыре сообщения с обсуждением Витали.

У вас есть возражения?

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


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

У вас есть возражения?

да нет наверное :rolleyes:

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


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
кстати существующая балльная оценка сродни экспоненте

Так я и говорил об этом:

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

Только я тут прикидывал, и экспонента получается не слишком хороша.

Есть тут один интересный вариант, сейчас обдумываю, позже напишу.

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


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

Ну вот, закончил свои неспешные рассчёты за кружечкой тыквенного сока :)

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

Делаем следующие предположения.

1. Если детект менее 80% - ставим 0 баллов - у пользователя большие проблемы.

2. Если детект 90% - ставим 16,46 баллов (почему такая "некруглая" цифра - ниже).

3. Если детект 99% - ставим 90 баллов.

4. Если детект 99,75% - ставим 100 баллов.

5. Если детект более 99,75% - ставим 100 баллов.

Задача сводится к построению кубической параболы, проходящей между точками (80;0), (90;16,46), (99;90), (99,75;100).

А эта задача легко сводится к решению системы из 4 линейных уравнений.

При этом было бы неплохо, чтобы производная этой кубической функции в точке x=80% была нулевой. Именно этим объясняется цифра в 16,46 баллов за 90% детекта, я с помощью неё добился практически нулевой производной на стыке x=80%.

В результате у меня получилась следующая функция:

y=0.009419*x^3-2.19037*x^2+169.6099*x-4373.1

Да, немного некрасиво в таком виде, но в прикреплённой картинке можно посмотреть, как она хорошо описывает наши мысли по поводу того, какой продукт должен получать больше баллов, а какой - меньше. При этом совершенно нет скачков между продуктами с близким результатом - вот сила непрерывности!

Итого, каждый антивирус на каждом вирусе может получить от 0 до 100 очков, причём эти очки получаются довольно справедливо.

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

На этот раз результаты получились такими:

F-Secure 99,90001

Kaspersky 99,90001

Avira 99,70220

Avast 93,23864

AVG 86,82911

Eset 83,67755

DrWeb 83,52079

BitDefender 72,79886

Agnitum 72,39108

Microsoft 71,40319

Panda Security 68,50698

Trend Micro 61,62200

Symantec 59,08700

VBA 57,06177678

Sophos 52,37361

McAfee 46,91901

Видим, что все продукты преодолели порог 40% от максимального количества баллов, большинство даже 60%-ый порог преодолели. Т.е. оценка является более объективной, и на ней можно построить новую систему выдачи наград, при которой не получат бронзовую награду те антивирусы, которые детектируют полиморфы с качеством 40% :)

Вот примерно такие мысли.

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

poly.png

post-322-1204480324_thumb.png

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


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин
p.s. И напоследок про Авиру: а сколько сэмплов этот антивирус поймал с четким определением принадлежности к вирусу? А не Xpack/HEUR? laugh.gif Ведь если там был HEUR, то вы сами понимаете какое будет лечение angry.gif

Таких вердиктов было НОЛЬ. Вы просто не можете смериться с крутость этого антивируса ;)

Все вердикты были четкими.

*********************

Что касается системы оценки результатов, то функция зависимости баллов от процента детекта была экспоненциальная. Это связано с тем, что пропуск уже небольшего количества критичен - чем ближе к 100% тем быстрее падает количество баллов.

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

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

Валерий, согласен с предложенной тобой схемой в части присоединения к максимальному баллу за 100% какой-то окрестности, скажем, 99.8-100% это бы снизило зависимость от возможных примесей "битых" самплов и повысило устойчивость результатов.

В первоначальном варианте была 5-бальная система оценки результатов, более демократичная, но я от нее отказался по причине того, что декект на уровне менее 90% не должен ИМХО как-то оцениваться, так как слишком плохой. Это все таки означает пропуск каждого 10-го образца.

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


Ссылка на сообщение
Поделиться на другие сайты
sww
Таких вердиктов было НОЛЬ. Вы просто не можете смериться с крутость этого антивируса ;)

Все вердикты были четкими.

О да, мы просто трепещим перед авирой. Что забавно, на наших сэмплах in lab такие вердикты были :rolleyes:

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


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин
1) Кто определил, что именно так надо разбивать на семейства? Тот кто дал сэмплы?

Это было определено путем долгих и муторных исследований, естественно не без помощи квалифицированных экспертов с мировыми именами. Имена, пароли, явки я вам по понятным причинам говорить не буду.

2) Кто сказал о том, что Starman (Allaple) вообще вирус? Ни разу не вирус, даже файлы не заражает. Это просто полиморфный дроппер. Так вот, его детект напрямую зависит от того был ли данный экземпляр дроппера у вирлаба или не был. Это связано со спецификой сигнатуры и "подпрограммы", которая ловит уже все остальное.

В описании теста я писал "вредоносные программы (далее вирусы)", так проще для понимания читателями. Вы же не будете спорить, что Starman (Allaple) нужно было включать в тест?

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

Где такие люди? Пока у Anti-Malware.ru их нет, вот и обходимся своими силами.

Т.е. оценка является более объективной, и на ней можно построить новую систему выдачи наград, при которой не получат бронзовую награду те антивирусы, которые детектируют полиморфы с качеством 40% smile.gif

Проблема в том, что 40% и даже 60% - это очень низкий процент, который означает пропуск примерно каждого 2-го сампла. В топку такие продукты! Какие им награды ...

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


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
Валерий, согласен с предложенной тобой схемой в части присоединения к максимальному баллу за 100% какой-то окрестности, скажем, 99.8-100% это бы снизило зависимость от возможных примесей "битых" самплов и повысило устойчивость результатов.

ок.

В первоначальном варианте была 5-бальная система оценки результатов, более демократичная, но я от нее отказался по причине того, что декект на уровне менее 90% не должен ИМХО как-то оцениваться, так как слишком плохой. Это все таки означает пропуск каждого 10-го образца.

А в принципе-то непрерывная балльная система чем не нравится? Ведь мы избавляемся от всех недостатков дискретности.

Если нужно получить 0 баллов на 90% детекта и ниже, а 100 баллов на 99,8% и выше, то можно построить и такую гладкую функцию между 90% и 99,8%.

Или Вы в принципе такой путь отвергаете?

Проблема в том, что 40% и даже 60% - это очень низкий процент, который означает пропуск примерно каждого 2-го сампла. В топку такие продукты! Какие им награды ...

Я про то говорил, что бронзовые медали давали за 40% от максимального количества баллов.

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


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

Даже один пропущенный работоспособный сампл полиморфика через NNN поколений приведет к полному заражению машины недетектящимся вариантом вируса. Так что у детекта есть только два варианта - или 100% или 0% и никакой "бронзы" за 40%

Все пропущенное должно быть тчательно проверено на работоспособность, и если таковая имеется, то размножено для тестированиы детекта/лечения и никак иначе.

  • Upvote 5

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


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

Результаты теста опубликованы на английском языке

http://www.anti-malware-test.com/?q=node/47

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


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

×