T1559: МІЖПРОЦЕСНА ВЗАЄМОДІЯ
Зловмисники зловживають механізмами міжпроцесної взаємодії (IPC) для виконання локального коду або команд. IPC зазвичай використовується легітимними програмами для обміну даними, синхронізації або уникнення взаємних блокувань (deadlocks). Зловмисники ж використовують ці канали для передачі шкідливих інструкцій від одного процесу до іншого, що дозволяє обійти обмеження безпеки або виконати код у контексті іншого застосунку.
ТЕХНІЧНИЙ ОПИС
Зловмисники можуть зловживати механізмами міжпроцесної взаємодії (IPC) для локального виконання коду або команд. IPC зазвичай використовується процесами для спільного використання даних, зв’язку один з одним або синхронізації виконання. Також IPC часто застосовується для уникнення ситуацій на кшталт взаємних блокувань (deadlocks), які виникають, коли процеси застрягають у циклічному паттерні очікування.
Зловмисники можуть зловживати IPC для виконання довільного коду або команд. Механізми IPC можуть відрізнятися залежно від ОС, але зазвичай вони існують у формі, доступній через мови програмування/бібліотеки або нативні інтерфейси, такі як Windows Dynamic Data Exchange (DDE) або Component Object Model (COM). Середовища Linux підтримують кілька різних механізмів IPC, двома з яких є сокети (sockets) та канали (pipes).
Середовища виконання вищого рівня, такі як Command and Scripting Interpreters, також можуть використовувати базові механізми IPC. Зловмисники можуть додатково застосовувати віддалені сервіси (Remote Services), такі як Distributed Component Object Model (DCOM), для полегшення виконання IPC на відстані.
Ключові механізми зловживання:
- Component Object Model (COM): Зловмисники можуть викликати методи існуючих COM-об’єктів (наприклад, ShellBrowserWindow) для виконання команд у контексті процесу explorer.exe.
- Dynamic Data Exchange (DDE): Дозволяє вбудовувати команди в документи Office (Excel, Word), які автоматично запускаються при відкритті файлу для отримання даних з іншої програми (наприклад, cmd.exe).
- Pipes/Sockets: Використовуються шкідливим ПЗ для координації дій між різними модулями (наприклад, між основним бекдором та модулем викрадення паролів).