Королевство кривых зеркал.

Неисповедимы пути вредоносного кода.

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

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

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

Вангую самый первый вопрос: «безфайловый» — это как и что такое?

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

Как же такие вредоносы-призраки существует в системе? Исключительно в оперативной памяти доверенных процессов! Вот так.

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

Согласен – не самая здравая реализация с точки зрения безопасности, но, как говорится, «поздно пить боржоми». Так работают миллионы приложений, написанных на Java, .NET, PHP, Python и других языках и платформах.

Разумеется, что возможность использовать динамический код полюбили кибер-негодяи, которые изобрели различные способы злоупотребления им. Один из самых удобных и поэтому распространённых способов – техника «отражающей инъекции» (Reflective PE Injection). Не торопитесь падать в обморок от этого технического термина — сейчас популярно расскажу что это такое. Будет интересно! :)

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

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

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

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

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

В нашей парадигме многоуровневой защиты эту угрозу «накрывает» несколько технологий, контролирующих все этапы и направления атаки: поведенческий анализ, проверка критических областей, автоматическая защита от эксплойтов. Но главная «фишка» здесь – наша патентованная (US 10691800, RU 2665910, RU 2659738) технология анализа оперативной памяти для выявления подозрительных участков, которые могут использоваться «бестелесными» вредоносами.

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

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