Допрос под полным прикрытием.

Previous Entry Поделиться Next Entry
22 августа, 12:48
e_kaspersky
Шестую части франшизы «Миссия невыполнима» я не смотрел, и не просите. Я и пятую-то видел только раз в зомби-состоянии в очередных перелётах и только из-за того, что одну из сцен снимали в нашем британском офисе. Честно говоря — мне хватило. «Пиф-паф-трах-бах» — не мой жанр, у меня есть другие планы для свободного времени (которого обычно и так не хватает).

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

Почему именно этот эпизод?

Он удивительно доходчиво и наглядно раскрывает один из методов выявления… неизвестных кибератак! На самом деле таких методов много — они различаются по области применения, эффективности, ресурсоёмкости и прочим параметрам (в моём ЖЖ о них регулярно рассказывается — смотрите по тегу technology). Но, пожалуй, одна из самых долгоиграющих технологий — эмулятор (про него я уже много раз писал).

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

kaspersky-sandbox-patent-featured

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

С другой стороны, есть ещё одно решение задачи поведенческого анализа подозрительных объектов — анализ в… реальной операционной системе! Что-о-о? Прямо на «боевом» компьютере? Нет — на виртуальной машине! Ведь технологически эмулятор не способен так же полно и точно эмулировать работу операционной системы по сравнению с настоящей ОС под виртуальной машиной. Идеальный «допрос» под полным прикрытием!

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

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

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

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

Недавно мы получили патенты (США — US10339301, РФ — 2665911) на технологию создания правильного окружения виртуальной машины для проведения скоростного и глубокого анализа подозрительных объектов. Вот как она работает:

  1. Для разных типов объектов создаются виртуальные машины с предустановленными настройками, чтобы обеспечить их оптимальное выполнение и максимально высокий детект.

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

  3. В случае обнаружения подозрительных действий система анализа «на лету» вносит изменения в процесс исполнения объекта в виртуальной машине, чтобы подтолкнуть объект к проявлению своих вредоносных намерений. Например: система может создавать файлы, изменять реестр, ускорять течение времени и так далее.


Пункт 3 — самая вкусная и уникальная фича нашей технологии. Поясню на примере:

Система зарегистрировала, что запущенный файл «уснул» и более не проявляет никакой активности. Но объект может быть запрограммирован тихо висеть несколько (десятков) минут (часов) до запуска вредоносной активности. Тогда мы «на лету» ускоряем течение времени внутри виртуальной машины, чтобы часы тикали со скоростью 1, 3 или 5 минут (да сколько угодно!) в секунду. Функциональность исследуемого файла не меняется, а время ожидания уменьшается в сотни (да хоть в тысячи!) раз. Более того, если по завершении своего «сна» зловред решит проверить системные часы (действительно ли они тикали), то и здесь его ждёт разочарование — придраться будет не к чему.

Ещё пример:

Объект использует уязвимость конкретной библиотеки или пытается изменить содержимое какого-либо файла или реестра. Сначала при помощи обычной функции fopen() он пытается открыть библиотеку (файл, реестр), а если это не получается (нет библиотеки или прав доступа к файлу) — то просто завершает выполнение. При таком сценарии мы «на лету» изменяем возвращаемое значение fopen() с «файл отсутствует» на «файл существует» (а если надо, то и сам файл создадим и наполним его правильным контентом) и смотрим дальше — что объект будет делать.

Такой подход отлично работает и в условиях логических веток поведения объекта. Например: если существуют файл «A» и файл «Б», то модифицировать файл «C» и завершить работу. Однако неизвестно, что будет делать исследуемый файл, если существует только один файл «A» или «Б». Поэтому мы запускаем параллельную итерацию и «говорим» исследуемому файлу, что файл «А» существует, а «Б» отсутствует, и анализируем дальнейшее ветвление логики.

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

Вкратце о технологии всё. В скором будущем она будет внедрена в KATA, а также будет поставляться на рынок в виде отдельного решения для корпоративных заказчиков Kaspersky Sandbox.



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

Записи из этого журнала по тегу «technology»

  • Смотрим в будущее: "Земля 2050".

    Вы, может, слышали, что в нашей компании неделю назад случились большие перемены. Так вот: на самом деле это неправда! Перемены у нас накопились…

  • Свинью верни!

    Когда-то давно байты были маленькими, деревья были большими, у нас в хозяйстве водилась одна довольно громкая свинья. Как её звали - неизвестно. Но…

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

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


Мне много непонятно.
Почему зловред не стопится при появлении файлов, которых не было.
Как незаметно для внутреннего наблюдателя перестраивать виртуальную машину.
Как сделать сверку с внешними базами незаметной.

А еще вижу метафизический смысл.
Живет себе зловред, работает в региональной папке большой компании. Перекладывает, как говорят, бумаги. Типичный, такой, клерк.
В душе мечтает о Тане Строковой из службы Реестра. Каждый вечер засыпает с мыслью о ней.
И в одно утро небо его услышало и ему позвонила сама Таня, у нее два билета в кино, а пойти не с кем.
Или копит на спортивную машину Lamborghini Password, 512 bit под капотом. И копить ему еще лет 30.
А тут в почтовом ящике письмо, что он. Выиграл. Приезжай и забирай, задатка не надо.
Или еще лучше -- всю жизнь себя прожигал, ни дома, ни семьи. Пролетела в трубу молодость, была ли зрелость. Зачем жил, чего хотел? Словно вчера было 17, лег спать, а проснулся от рыхлого кашля дряхлым стариком.

Edited at 2019-08-22 18:31 (UTC)

А еще употреблять слово "зловред" -- это сексизм. Надо разделять на зловредов и зловредок или использовать что-нибудь нейтральное типа "зловредо".

Это как бы шутка была.
Нагуглил эту Гартман, она, вроде бы, не анекдоты там рассказывает ;)

Как-то на работе нашлись в столе ПДД для мотоциклистов ~ 1947 г. Гармошка примерно на дюжину страниц, размер с игральную карту (включая все знаки).
Как слышу-вижу попытки превратить русский в язык состоящий из одних исключений - всё время по аналогии эта гармошка вспоминается.

?

Log in

No account? Create an account