July 13th, 2020

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fm1

Collapse )