T1497.002: Проверки на основе активности пользователя (User Activity Based Checks) в MITRE ATT&CK

MITRE ATT&CK

T1497.002 - «Проверки на основе активности пользователя» (User Activity Based Checks) - это техника в фреймворке MITRE ATT&CK, используемая злоумышленниками для определения того, работает ли их вредоносное ПО в среде реального пользователя или в песочнице. Инспектируя поведение, специфичное для пользователя, атакующие могут выявить присутствие виртуализированной или изолированной аналитической среды.

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

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

Использование T1497.002 злоумышленниками

Злоумышленники встраивают проверки активности пользователя, чтобы обойти автоматизированные инструменты анализа (песочницы, виртуальные машины) и не проявлять вредоносное поведение во время инспекции.

Например:

  • Некоторые полезные нагрузки активируются только после обнаружения взаимодействия человека с системой, например, ожидают, пока пользователь закроет документ или дважды щелкнет по встроенному изображению (распространено в вредоносных макросах).
  • Другие периодически проверяют движение курсора мыши или частоту кликов. Если курсор не двигался или не было кликов (что часто бывает при запуске в песочницах), вредоносное ПО предполагает, что находится в песочнице, и прекращает выполнение или остается инертным.
  • Вредоносное ПО может инспектировать файловую систему и профиль пользователя на предмет признаков регулярного использования (например, историю браузера, файлы на Рабочем столе или в Документах). "Чистый" профиль может вызвать уклончивое поведение, в то время как "заполненный" профиль указывает на реальную пользовательскую среду, и только тогда вредоносное поведение раскрывается.

Этот подход значительно снижает вероятность того, что автоматизированный анализ (песочницей, виртуальной машиной или EDR-продуктом) зафиксирует вредоносное поведение, поскольку такие среды редко воспроизводят привычное пользовательское поведение (ввод с мыши/клавиатуры, историю просмотров, множество файлов, типичное количество процессов и т.д.).

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

Примеры процедур, используемых злоумышленниками

После двух лет отсутствия в Топ-10 (2024 и 2025), техника «Обход виртуализации и песочниц» вновь вошла в число наиболее часто используемых методов.

Идеальный пример этой техники можно найти в анализе вредоносной программы LummaC2 версии 4.0, проведенном в ноябре 2025 года. Это вредоносное ПО использует стратегию, предназначенную для бессрочной задержки выполнения, если только не будет обнаружен специфический паттерн активности пользователя, который крайне маловероятно воспроизвести автоматизированным песочницам.

Начальная проверка движения мыши

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

  • Он начинается с получения начальной позиции курсора с помощью вызова Windows API GetCursorPos().
  • Затем он входит в цикл, ожидая 300 миллисекунд (Sleep(300)), и затем повторно получает позицию курсора.
  • Если новая позиция совпадает с начальной, ожидание повторяется. Это продолжается до тех пор, пока не будет обнаружено какое-либо движение мыши, что указывает на хотя бы какой-то уровень интерактивности.

Захват данных о движении

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

  • Он захватывает пять последовательных позиций курсора (P0, P1, P2, P3, P4), многократно вызывая GetCursorPos().
  • Между каждым захватом вставляется короткая пауза в 50 миллисекунд (Sleep(50)).
  • Критически важно, что затем он проверяет, отличается ли каждая захваченная позиция от предыдущей: (P0 != P1) && (P1 != P2) && (P2 != P3) && (P3 != P4). Если это условие не выполняется (то есть мышь ненадолго остановилась во время захвата), весь процесс начинается заново с 300-миллисекундного ожидания. Это гарантирует, что движение является непрерывным и быстрым.

Обнаружение человеческого поведения с помощью тригонометрии

Финальный, самый сложный шаг использует математику для подтверждения того, что движение является плавным и похожим на человеческое.

  • Пять захваченных позиций курсора (P0 – P4) рассматриваются как точки, образующие четыре вектора: P01, P12, P23 и P34.
  • Вредоносная программа вычисляет величину (длину) каждого вектора, используя формулу евклидова расстояния.
  • Затем она вычисляет угол, образованный между тремя последовательными парами векторов (P01-P12, P12-P23 и P23-P34), используя скалярное произведение векторов. Полученный угол в радианах затем преобразуется в градусы.
  • Наконец, она сравнивает каждый вычисленный угол с жестко заданным порогом в 45.0 градусов

Если все вычисленные углы меньше 45°, вредоносная программа делает вывод, что обнаружила "человеческое" поведение мыши (плавное движение без резких изменений направления), и продолжает свое вредоносное выполнение.

Если какой-либо вычисленный угол больше 45°, она предполагает, что движение не является человеческим (вероятно, автоматизированным или хаотичным), и перезапускает весь процесс обхода песочниц.

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

Комментарии: 0