Умная пробирка для злобной малвары.

May 20, 2019 12:23

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

Эту подводку я использую с другой целью: а почему до сих пор всю компьютерную гадость многие так и называют «вирусами», хотя вирусов как таковых уже надцать лет не было замечено в «дикой цифровой природе»?

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

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

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

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



Первый в мире эмулятор я разработал ещё в далёкую DOS-эпоху летом 1992г. Скоро эксперты начали восторгаться детекту нашего антивируса (да, тогда он ещё был «антивирусом»), который рвал конкурентов в независимых тестах в том числе благодаря работе эмулятора.

Шло время, ландшафт угроз усложнялся: классические вирусы покинули сцену, им на смену пришли сетевые черви, трояны и прочие многоклеточные. Росло разнообразие компьютерных-мобильных-IoT-всех прочих цифровых технологий, а с ними и вредоносного инструментария, а с ним и компетенция эмулятора. Мы прикрутили его к облаку безопасности KSN, обучили новым языкам программирования, браузерам и прочим объектам операционной системы, чтобы автоматически ловить неизвестных зловредов. Никакой маркетинговой ИИ-лапши, только ловкость рук и мощь мозга в лучших традициях принципа инновационных реальных разработок Humachine :)



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

Но я отвлёкся.

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

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

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

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

Для обнаружения неизвестных угроз этого типа много лет назад мы создали эмулятор программного кода, который перед выполнением файлов проверяет их в «пробирке». Однако эмулировать интерпретатор целиком - слишком ресурсоёмкий вариант. Задержка в обработке web-страниц со скриптами вряд ли сделает счастливым среднего пользователя. Поэтому эмуляторы воссоздают компромиссный вариант виртуального пространства, приемлемый как с точки зрения производительности, так и качества защиты. Но что делать, когда эмулятор встречает в коде неизвестный объект, метод или функцию, без которых полноценный анализ файла не представляется возможным?

Задачу «надёжно и быстро» мы решили другим способом - при помощи умного интерпретатора, способного быстро обучаться эмулировать такие объекты. Во время обновления через облако KSN продукт получает вспомогательный код на языке анализируемого объекта (JavaScript, VBA, VB Script, AutoIt - список открыт для других языков) и уже с новыми знаниями возвращается к проверке файла. В сложных случаях, когда вспомогательного кода ещё нет задача автоматически передаётся нашим аналитикам, которые его разрабатывают и оперативно добавляют в базу данных.

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

(*) «Антивирус» - ещё один архаизм эпохи компьютерных вирусов. Современные антивирусы борются не только с вирусами, но со всем зловредством вообще, а также содержат много других полезных функций, например, менеджер паролей, VPN, родительский контроль, резервное копирование и многое другое. Т.е. если называть антивирус по-новому, то получится что-то вроде Анти-всё-плюс-много-чего-ещё :)

technology, humachine

Previous post Next post
Up