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

Формула идеального антивируса выглядит примерно так:

  • 100% защита от всего зловредства,
  • 0% ложных срабатываний,
  • 0% нагрузки на систему
  • и никаких вопросов пользователю.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прочитать комментарии 10
Комментарии 7 Оставить заметку

    alexander v tjutjunik

    Насчет эмулятора —
    Он будет вшит в антивирус?
    или будет работать и совершать вычисления в облаке?
    или только лаборатория им будет пользоваться?

    see7tee

    он там (в антивирусе) с начала 90-х

    alexander v tjutjunik

    я не не спросил — вшит?
    спросил будет?)))
    если ресурсоемкая вещь может стоит
    обосноваться ей в облаке
    статья то называется «Предсказания…»

    0

    Catalyst

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

    Борис Орлов

    «смотреть последний ретроспективный тест AV-Comparatives» — этим тестам кто-то ещё верит?
    Я не раз убеждался, что надёжность западного антивируса = надёжность российского авто.

    Что толку с купленных циферок, если симантики с есетами пачками пропускают вирусы, которые потом отлавливают Kaspersky/dr.Web…

    Evgeny

    Знаю, что это из области фантазий, но все же хотел поделиться.
    Идея использования в качестве «песочницы»(эмулятора системы), внешнего устройства (визульно можно сравнить с usb модемом например), со встроеным микропроцессором, оп, жд,… эмитирующий ОС, (возможна даже имитация нескольких ос, в одном устройстве), в нем даже можно предусмотреть ЛАН выход).
    Приемущества следующие, простота:
    воткнул в машину, синхрон дрова встали и забыл( если лан есть, то и инет через него пустить)
    Удобства:
    (не знаю как моя голова отделила эти критерии от пункта»простота», не судить строго)
    На одном устройстве предусмотрены эмуляторы разнх ос, т.е. посидел за виндой, вынул, вставил в свой мак(как пример), или же, качаешь файлы для своего кпк, тут же их проверил( вообще эмуляция телефонов на пк отдельная тема).
    Еще пункт, назову его «доверие»:
    Я знаю, что с технической точки зрения, вся эта затея может казаться глупой, но с точки зрения доверия, так я бы наверное больше верил в качество безопасноти при какойто штуковине воткнутой в мой пк(как будто только на ней могут твориться «черные» дела), даже если она бы просто диодиком мигала, я бы внушился к ней доверием)
    Но опять же всякие минусы технические:
    малая(для этих целей) скорость передачи usb(если его использовать), модем когда из бука торчит, иногда напрягает, а тут еще чегото), ну и себистоимость наверняка в районе тысяч этак трех(на обум прикинул).
    Ну а вообще, было бы интересно такое «пощупать»)

    Свен

    Пиара много но вот Comodo Internet Security Premium лучше каспера.

Обратные ссылки 3

Эксплойты, зеродеи, их опасности и её профилактика. | Nota Bene

Работа над ашыпками. | Nota Bene

Антивирусный эмулятор — технология борьбы с неизвестными вирусами | Nota Bene | Официальный блог Евгения Касперского

Оставить заметку