T1055: ІН'ЄКЦІЯ В ПРОЦЕС
Зловмисники впроваджують свій шкідливий код в оперативну пам'ять іншого працюючого процесу. Замість запуску власного файлу virus.exe, хакер змушує легітимну програму (наприклад, explorer.exe або notepad.exe) виконувати його команди. Це дозволяє приховати активність від диспетчера завдань, обійти фаєрволи (оскільки трафік йде від довіреної програми) та отримати доступ до секретів у пам'яті іншого додатка.
ТЕХНІЧНИЙ ОПИС
Зловмисники можуть впорскувати код у процеси, щоб ухилитися від захисту, орієнтованого на процеси, а також, можливо, підвищити привілеї. Ін’єкція в процес — це метод виконання довільного коду в адресному просторі окремого живого процесу. Запуск коду в контексті іншого процесу може надати доступ до пам’яті цього процесу, системних/мережевих ресурсів і, можливо, підвищених привілеїв. Виконання через ін’єкцію в процес також може допомогти уникнути виявлення продуктами безпеки, оскільки виконання маскується під легітимний процес.
Існує багато різних способів впорскування коду в процес, багато з яких зловживають легітимними функціональними можливостями. Ці реалізації існують для кожної основної ОС, але зазвичай вони специфічні для кожної платформи.
Більш складні зразки можуть виконувати кілька ін’єкцій у процеси для сегментації модулів та подальшого ухилення від виявлення, використовуючи іменовані канали (named pipes) або інші механізми міжпроцесної взаємодії (IPC) як канали зв’язку.
Як працює «вселення» в процес?
- DLL Injection (T1055.001): Зловмисник змушує чужий процес завантажити шкідливу бібліотеку з диска. Це класичний метод, де використовується функція Windows API CreateRemoteThread.
- Process Hollowing (T1055.012): Хакер створює новий процес (наприклад, svchost.exe) у стані паузи, «вичищає» з його пам’яті справжній код і записує туди свій вірус. Коли процес «прокидається», він виглядає як системний, але працює як бекдор.
- Thread Execution Hijacking (T1053.003): Зловмисник знаходить працюючий потік у легітимній програмі, призупиняє його, змінює точку виконання на свій шкідливий код і запускає знову.
- Reflective DLL Injection: На відміну від звичайної ін’єкції, DLL завантажується безпосередньо з пам’яті без запису на диск. Це робить атаку «безфайловою» (fileless), що є вкрай складним завданням для традиційних антивірусів.
Чому це вкрай небезпечно?
- Обхід фаєрволів: Якщо вірус «живе» всередині browser.exe, фаєрвол дозволить йому будь-який вихідний трафік, вважаючи, що це користувач переглядає сайти.
- Доступ до секретів: Знаходячись всередині процесу, наприклад, lsass.exe (служба автентифікації), зловмисник може читати хеші паролів безпосередньо з пам’яті.
- Складність аналізу: Коли ви відкриваєте диспетчер завдань, ви бачите лише звичайні програми. Виявити ін’єкцію можна лише за допомогою спеціальних інструментів для аналізу пам’яті.
Як захиститися?
- EDR/XDR системи: Сучасні рішення відстежують підозрілі виклики API (OpenProcess, VirtualAllocEx, WriteProcessMemory), які зазвичай використовуються для ін’єкцій.
- ASLR (Address Space Layout Randomization): Технологія, яка рандомізує адреси пам’яті, що ускладнює зловмиснику пошук правильного місця для впорскування коду.
- Обмеження привілеїв: Більшість методів ін’єкції вимагають високих прав доступу до процесу-жертви. Робота під звичайним користувачем значно звужує коло потенційних цілей для хакера.
- Моніторинг межпроцесної взаємодії: Відстежуйте створення незвичних іменованих каналів (Named Pipes) між процесами.