Pool Party: восемь техник внедрения кода через пулы потоков Windows
Исследователи SafeBreach Labs изучили пулы потоков Windows как вектор внедрения кода в процессы и выявили восемь техник, объединённых названием «Pool Party». Эти методы используют легитимную активность пулов потоков для запуска кода, контролируемого злоумышленником.
Традиционные методы внедрения кода обычно задействуют последовательность примитивов для выделения памяти, записи кода и его выполнения. Среди них VirtualAllocEx, WriteProcessMemory и CreateRemoteThread. Техники Pool Party нацелены на внутренние структуры пулов потоков Windows и очереди задач. Это потенциально позволяет обходить поведенческие средства обнаружения, ориентированные на традиционные цепочки внедрения.
Как работают техники Pool Party
Для инъекции TP_WORK злоумышленник может использовать NtQueryInformationWorkerFactory. С его помощью получают сведения о фабрике рабочих потоков, включая стартовый параметр, указывающий на структуру TP_POOL целевого процесса. После этого очередь задач модифицируется.
При инъекции TP_IO злоумышленник может продублировать дескриптор очереди завершения ввода-вывода целевого процесса с помощью DuplicateHandle, а затем поместить в неё вредоносные уведомления. Данные очереди ссылаются на вредоносный элемент работы, который впоследствии обрабатывается пулом потоков целевого процесса.
Другие варианты используют асинхронные элементы работы. Они связывают объекты Windows с очередью завершения ввода-вывода, I/O completion queue, целевого процесса и устанавливают ключи завершения, указывающие на структуры, контролируемые злоумышленником. К таким техникам относятся:
- удалённая вставка элементов работы
TP_WAIT; - удалённая вставка элементов работы
TP_ALPC; - удалённая вставка элементов работы
TP_JOB; - прямая вставка
TP_DIRECTс использованиемNtSetIoCompletion.
Атака через TP_TIMER
Восьмой метод нацелен на TP_TIMER. Злоумышленник изменяет очередь таймеров целевого процесса, дублирует соответствующий дескриптор таймера и устанавливает таймер на истечение. После срабатывания пул потоков извлекает из очереди вредоносный элемент работы таймера и выполняет его.
Согласно отчёту, вариант с TP_TIMER может позволить злоумышленнику завершить и удалить исходный процесс до выполнения кода. В этом случае система может выглядеть чистой до момента срабатывания таймера.
Результаты тестирования EDR
По данным исследователей, техники Pool Party могут работать в различных состояниях процессов без ограничений, характерных для многих существующих методов внедрения. Все восемь вариантов обошли обнаружение во время тестирования против пяти продуктов EDR.
Результаты указывают на сложность различения вредоносного манипулирования пулами потоков и легитимных операций Windows. Для средств защиты информации такие техники создают дополнительную задачу, поскольку вредоносный код запускается через штатные механизмы обработки задач.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



