Предсказания в вирусологии или Сейфбокс для вируса.

Previous Entry Поделиться Next Entry
7 марта, 2012
e_kaspersky
Формула идеального антивируса выглядит примерно так:

  • 100% защита от всего зловредства,

  • 0% ложных срабатываний,

  • 0% нагрузки на систему

  • и никаких вопросов пользователю.

И, разумеется, в самом идеале – навсегда и забесплатно :)

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

Кто-то инвестирует в вирус-лабы, автоматизацию и принципиально новые технологии, кто-то (особенно бесплатные антивирусные компании) не имеют таких возможностей – и выпускают весьма средненькие по реальному функционалу (не по кнопкам в интерфейсе) бесплатные «мухобойки». Да и главный антивирусный функционал у них «секонд-хенд», поскольку сидят они на ворованных сигнатурах (автоматом лепят сигнатуры на все файлы, которые кто-либо уже задетектил до них). Некоторые компании тоже сидят на краденом детекте – но продвигают свою дженерик-туфту по цене платных «настоящих» продуктов. Но все эти компании стремятся к идеальным продуктам – защищать на 100% и не нагружать пользователя ни вопросами, ни тормозами, ни ценой.

Но из всех пяти параметров идеального антивируса сегодня для нас самый интересный -  первый. Что это за 100%? Какого зловредства? Ответ такой же идеалистический, как и вся схема – 100% защиты от всех уже известных и всех будущих угроз (вот так, и не иначе).

С первым (защита от известных угроз) более-менее хорошо - лучшие представители антивирусной индустрии уже давно болтаются возле максимальной отметки. А вот второе (защита от будущих угроз) уныло плетётся где-то в районе 60% (смотреть последний ретроспективный тест AV-Comparatives, PDF). Оно немудрено: предсказать будущее, т.е. какие угрозы накроют пользователя завтра – задача ох какая нетривиальная. А для непосвящённого вообще попахивающая шаманизмом.

Очень важную (но неслышную для обычного слуха) партию бубна в шаманском оркестре наших технологий защиты от неизвестных угроз камлает эмулятор исполняемых файлов и скриптов. Изобретение старое (первое поколение для ДОС появилось у нас ещё в начале 90х), но постоянно развивающееся и потому актуальности и эффективности не теряющее. Именно эмулятор поставляет эвристическому анализатору информацию о поведении программ и позволяет узнать что они на самом деле делают без риска для безопасности компьютера.



Суть эмулятора состоит вот в чём.

Во-первых, он не сканирует файл обычными антивирусными сигнатурами, а исполняет его. И делается это несколькими способами, в том числе исполнением на реальном процессоре при поддержке «драйвера ускорителя».

Во-вторых, эмулятор запускает анализируемый файл в искусственной среде, которая эмулирует настоящую операционную систему. У этой среды есть своя память, диск, реестр, сеть, процессы, всевозможные подсистемы - в общем всё, чтобы заставить файл думать, что его запустил обычный пользователь на обычном компьютере. Но, в отличие от последнего сценария: а) все действия файла отслеживаются, протоколируются и направляются на анализ эвристику, б) ни один вызов не выходит за пределы среды и т.о. неизвестная вредоносная программа не сможет навредить компьютеру. Ага, получается, что эмулятор «на лету» создаёт что-то вроде защищённой виртуальной машины, в которой и изучает файлы. Этакий сейфбокс для подозрительных предметов – даже если рванёт, то никого не накроет.

В-третьих, эмуляция исполняемых файлов ещё не всё, что у нас здесь есть. Сегодня никак не менее полезен (скорее даже наоборот) эмулятор скриптов. Всё примерно то же самое, только он эмулирует не операционную систему, а браузер. Как только пользователь заходит на какой-нибудь сайт, антивирус перехватывает загружаемый оттуда HTML-код, находит в нём Java- и VB-скрипты, выполняет их в защищённой среде и сечёт всё опасные и подозрительные действия.

Разумеется, борьбу эмуляторов с малварой не миновали особенности вечного противостояния оружия и брони. Кибернегодяи регулярно изобретают уловки для обмана эмуляторов. Ну, ничего уж тут не поделаешь, се ля ви. Самое распространённый приём – тестирование среды специфическими вызовами для проверки настоящая ли она. Тут как раз очень хорошо проявляется качество эмулятора – насколько полно он воссоздаёт оригинал. Другой прикол – «замедлители» (пустые циклы), которые могут ввести эмулятор в ступор и заставить пропустить файл по лимиту времени проверки. Несколько примеров здесь и здесь.

Ну, мы тоже не пальцем в носу ковыряемся, всячески боремся с этими трюками и совершенствуем эмулятор. Кстати, тут недавно любопытный пост был на Хабре с простеньким тестом возможностей эмуляторов. В финалистах оказались Microsoft и наш KIS. Ну, что MS умеет хорошо эмулировать свою же собственную ось – это ожидаемо и логично. А вот результат KIS для меня был приятной неожиданностью и доказательством, что 5 девелоперов (что занимаются развитием технологии) не зря зарплату получают :)

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

С помощью эмулятора можно сильно ускорить анализ малвары, детектить её кластерами – одной эвристической записью сразу нескольку сот, а то и тысяч разных вариантов. Можно запросто узнать функциональность шифрованных и упакованных объектов (вместо того, чтобы брутфорсить их, делать специальный распаковщик или тупо детектить обычный коммерческий паковщик как малвару). В некоторых ситуациях эмулятор оказывается чуть ли не единственной применимой проактивной технологией. Например, в шлюзовых решениях (почтовые/файловые серверы, файрволы) просто нет возможности использовать HIPS и real-time технологии для мониторинга активности программ. Здесь бороться с неизвестными угрозами можно только старой-доброй эвристикой на основе эмулятора.

А теперь ложка дёгтя.

Эмулятор, конечно, штука полезная, но ресурсоёмкая (конечно, не такая ресурсоёмкая как сэндбокс, но всё же). Представляете себе пропускать каждый сканируемый объект через виртуалку? При недостатке мозгов эта особенность – прекрасный предлог закрыть (или вообще не начинать) разработку технологии. Но это не про нас. Мы от эмулятора не только не намерены отказываться, но будем всячески его развивать. В том числе ускорять. Для ускорения, кстати, мы уже используем разные ограничители, оптимизаторы и профили настроек, вплоть до полного отключения этой фичи. Защита требует жертв :)

Немного по планам развития технологии.

Очень хочется полной интеграции эмулятора (сейчас есть только частичная и только в эмуляторе скриптов) с нашим облаком KSN (видеоподробности) и разными репутационными сервисами. Например, пользователь пытается запустить мутный файл с нулевой репутацией – тогда включать эмулятор с самыми параноидальными настройками. А с ростом репутации глубину сканирования снижаем.


Метки:
Previous Entry Поделиться Next Entry
спасибо

познавательно очень

ничерта в этом не шарю, но было очень интересно.
Асисяй дедектива!

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

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

по опыту использования, над третьим пунктом вам нужно поработать:)

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

Всегда интересовало есть у спецслужб бэкдор в популярных средствах защиты? Хотя мне в ряд ли на этот вопрос ответят откровенно))

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

Edited at 2012-03-07 21:10 (UTC)

Мой рецепт избавления от вселенского кибер-зла

onehalf_3544_m

2012-03-08 18:44 (UTC)

На мой взгляд, рецепт избавления от вселенского кибер-зла (растущего со скоростью 70.000 записей в день) прост. Всего-то нужно пересадить большинство пользователей Интернета на более защищённые от внешних вторжений операционные системы!

То есть, похоронить MS Windows.

Re: Мой рецепт избавления от вселенского кибер-зла

e_kaspersky

2012-03-09 07:31 (UTC)

Уже было. Когда народ массово пересел с завирусовонной MS-DOS на MS Windows, которая считалась (и действительно была) более безопасной и защищённой от зловредства. Поскольку весь софт для Windows распространялся в дистрибутивах. Уже было, ага.

Re: Мой рецепт избавления от вселенского кибер-зла

onehalf_3544_m

2012-03-09 07:57 (UTC)

Первые версии MS Windows (до Windows 2000) были основаны на MS-DOS и потому Ваш пример считаю не очень удачным.

Кроме того, программисты и маркетологи у MS-DOS и у MS Windows были "почти те же самые" :)

Мотив зловредов для закрытых систем типа MS-DOS или MS Windows - половить рыбку в мутной воде (закрытой системы). А когда операционная система открыта и любой пакет может быть при желании удалён или пересобран, зловредить становится трудно и неуютно.

Re: Мой рецепт избавления от вселенского кибер-зла

e_kaspersky

2012-03-09 20:48 (UTC)

Вы хотите сказать, что все (все!) почти 2 миллиарда пользователей компьютеров должны сами (сами!) собирать систему под себя из открытого кода? Хаха. "Мои шнурки смеются" (с) один мой знакомый.

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

Кстати, до Win2000 еще была WinNT. Еще с 1993го года. Подробности здесь: http://en.wikipedia.org/wiki/Windows_NT

Re: Мой рецепт избавления от вселенского кибер-зла

onehalf_3544_m

2012-03-10 04:19 (UTC)

Сборка из исходного кода лишь один из способов борьбы с запущенными ситуациями, когда всё вроде работает, но операционная система остаётся скомпрометированной. Живой пример, когда это могло бы пригодиться :
http://forum.kasperskyclub.ru/index.php?showtopic=34149&st=0

Re: Мой рецепт избавления от вселенского кибер-зла

natynia

2012-03-10 09:36 (UTC)

Вход в операционную систему через пару кодов,отправленных на сервер.И на сервере идёт проверка на вирусы.Предварительноя оценка угроза атак.

?

Log in

No account? Create an account