T1055.015: ListPlanting
Злоумышленники могут внедрить вредоносный код в перехваченные процессы, используя элементы управления "Представление списка" с целью обхода защиты, действующей на уровне процессов, а также для повышения уровня своих привилегий. ListPlanting — это способ выполнения произвольного кода в адресном пространстве отдельного активного процесса. Выполнение кода посредством ListPlanting также дает возможность избежать обнаружения защитными решениями, поскольку маскируется под легитимный процесс.
Представление списка (list view) — это окно пользовательского интерфейса, отображающее коллекцию элементов. Информация о настройках представления списка приложения хранится в памяти процесса в элементе управления SysListView32
.
ListPlanting (разновидность "подрывной атаки" с передачей сообщений) может осуществляться посредством копирования кода в виртуальное адресное пространство процесса, использующего представление списка, с последующим использованием этого кода в качестве обратного вызова (callback) для сортировки элементов списка. Злоумышленники сначала должны скопировать код в пространство памяти целевого процесса, что может быть осуществлено различными способами, включая прямое получение дескриптора дочернего элемента управления SysListView32
окна атакованного процесса (через вызовы API Windows, такие как FindWindow
и (или) EnumWindows
), или иные методы внедрения кода в процессы.
Некоторые вариации ListPlanting могут выделять память в целевом процессе, после чего использовать сообщения окна для копирования полезной нагрузки во избежание применения часто отслеживаемой функции WriteProcessMemory
. Например, злоумышленники могут использовать функции API PostMessage
и (или) SendMessage
для отправки сообщений LVM_SETITEMPOSITION
и LVM_GETITEMPOSITION
, фактически копируя по 2 байта полезной нагрузки в выделенную память за раз.
И наконец, полезная нагрузка, находящаяся в новом буфере, активируется отправкой сообщения LVM_SORTITEMS
дочернему элементу управления SysListView32
окна процесса и выполняется как обратный вызов ListView_SortItems
.
Какие продукты Positive Technologies покрывают технику
Описание методов обнаружения техники пока недоступно
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Изменения в процессе | Описание | Отслеживайте изменения в процессах, которые могут использоваться для внедрения вредоносного кода в процессы с целью обхода защиты, действующей на уровне процессов, а также для повышения уровня привилегий. Анализируйте поведение процессов, чтобы выявить подозрительную активность, такую как установление сетевых подключений, чтение файлов и другие подозрительные операции, которые могут быть связаны с действиями злоумышленников после компрометации. |
---|
ID | DS0009 | Источник и компонент данных | Процесс: Вызовы API ОС | Описание | По возможности отслеживайте чрезмерное использование функций API Отслеживание вызовов Windows API, связанных с разными типами внедрения кода, сопряжено с генерацией больших объемов данных. Для эффективной защиты нужно осуществлять сбор данных только при определенных условиях, чтобы выявлять известные вредоносные последовательности вызовов. В противном случае будет трудно выделить вредоносные вызовы API среди множества легитимных. Для этой техники могут использоваться такие вызовы API Windows, как |
---|
Меры противодействия
ID | M1040 | Название | Предотвращение некорректного поведения | Описание | В некоторых решениях для обеспечения безопасности конечных точек можно настроить блокирование определенных типов внедрения кода в процессы на основе детектирования распространенных последовательностей действий, характерных для процесса внедрения. |
---|