ТЕХНІЧНИЙ ОПИС

Зловмисники можуть взаємодіяти з нативним програмним інтерфейсом (API) операційної системи для виконання певних дій. Нативні API забезпечують контрольований спосіб виклику низькорівневих служб ОС у межах ядра, наприклад тих, що стосуються обладнання/пристроїв, пам’яті та процесів. ОС використовує ці нативні API під час завантаження системи (коли інші системні компоненти ще не ініціалізовані), а також для виконання завдань і запитів під час рутинних операцій.

Зловмисники можуть зловживати цими функціями API ОС як засобом виконання своїх дій. Подібно до Command and Scripting Interpreter, нативний API та його ієрархія інтерфейсів забезпечують механізми для взаємодії з різними компонентами скомпрометованої системи та їх використання.

Функції нативного API (наприклад, NtCreateProcess) можуть викликатися безпосередньо через системні виклики (syscalls), але ці можливості також часто доступні програмам користувацького режиму через інтерфейси та бібліотеки. Наприклад, такі функції, як Windows API CreateProcess() або GNU fork(), дозволяють програмам і сценаріям запускати інші процеси. Це дозволяє тим, хто викликає API, виконувати бінарні файли, запускати команди CLI, завантажувати модулі тощо, оскільки для різних системних операцій існують тисячі подібних функцій API.

Програмні фреймворки вищого рівня, такі як Microsoft .NET та macOS Cocoa, також доступні для взаємодії з нативними API. Ці фреймворки зазвичай надають мовні оболонки/абстракції (wrappers) для функціональних можливостей API та розроблені для простоти використання та портативності коду.

Зловмисники можуть використовувати асемблер для прямого або опосередкованого виклику системних викликів (syscalls) у спробі обійти захисні сенсори та сигнатури виявлення, такі як перехоплення API (API-hooks) у режимі користувача. Зловмисники також можуть намагатися втрутитися в роботу сенсорів та захисних інструментів, пов’язаних з моніторингом API, наприклад, шляхом зняття перехоплення (unhooking) з контрольованих функцій через Disable or Modify Tools.

Чому це важливо для захисту?

  • Обхід EDR: Багато систем захисту стежать за функціями в kernel32.dll. Прямий виклик ntdll.dll або syscall робить ці системи “сліпими”.
  • Маніпуляція пам’яттю: Функції типу VirtualAllocEx та WriteProcessMemory дозволяють впорскувати шкідливий код у легітимні процеси (Process Injection).
  • Скритність: Дії через API не створюють нових файлів на диску, що характерно для “безфайлових” атак.