本机 API
对手可能会与本机操作系统应用程序编程接口 (API) 交互以执行行为。本机 API 提供了一种受控方式来调用内核中的低级操作系统服务,例如涉及硬件/设备、内存和进程的服务。(引用: NT API Windows)(引用: Linux Kernel API) 这些本机 API 在系统启动期间(当其他系统组件尚未初始化时)以及在例行操作期间执行任务和请求时由操作系统使用。 对手可能会滥用这些操作系统 API 函数作为执行行为的一种手段。类似于 命令和脚本解释器,本机 API 及其接口层次结构提供了与受害系统的各个组件交互和利用的机制。 本机 API 函数(例如 NtCreateProcess
)可以通过系统调用/系统调用直接调用,但这些功能通常也通过接口和库暴露给用户模式应用程序。(引用: OutFlank System Calls)(引用: CyberBit System Calls)(引用: MDSec System Calls) 例如,Windows API CreateProcess()
或 GNU fork()
等函数将允许程序和脚本启动其他进程。(引用: Microsoft CreateProcess)(引用: GNU Fork) 这可能允许 API 调用者执行二进制文件、运行 CLI 命令、加载模块等,因为存在数千个用于各种系统操作的类似 API 函数。(引用: Microsoft Win32)(引用: LIBC)(引用: GLIBC) 更高级的软件框架,例如 Microsoft .NET 和 macOS Cocoa,也可用于与本机 API 交互。这些框架通常为 API 功能提供语言包装/抽象,并设计用于代码的易用性/可移植性。(引用: Microsoft NET)(引用: Apple Core Services)(引用: MACOS Cocoa)(引用: macOS Foundation) 对手可能会使用汇编语言直接或间接调用系统调用,试图规避防御传感器和检测签名,例如用户模式 API 挂钩。(引用: Redops Syscalls) 对手还可能尝试篡改与 API 监控相关的传感器和防御工具,例如通过 禁用或修改工具 取消挂钩监控的函数。