
资安厂商Armo研究人员公布一款针对Linux的Rootkit,可利用提高效能的Linux专属机制io_uring,来绕过包括Microsoft Defender在内的端点安全工具侦测。
io_uring是Linux 5.1引进的高效非同步I/O核心API,透过支援非同步、批量提交I/O,解决传统处理方法的同步阻塞,或是大量系统呼叫(syscall)的问题。它使用可两个共享的ring buffer完成用户空间(user space)和核心空间(kernel space)的沟通,藉由共享buffer来大幅减低因複製buffer产生的系统overhead,加速I/O执行。
但Armo研究人员却发现io_uring对某些安全工具反而有害,因为它的机制可让应用程序执行多种行为,而不需使用系统呼叫。因此仰赖系统呼叫侦测的安全产品,就无法侦测到使用io_uring的rootkit。
研究人员因而设计了一个概念验证rootkit,名为Curing,并公开给安全社群及企业。
厂商表示,两年来已经有多项研究示範如何利用io_uring绕过侦测机制,但大部份资安厂商尚未解决这个问题。根据研究人员的测试,Microsoft Defender、云端Runtime监控产品Falco都因基于系统呼叫而无法侦测到Curing,Kubernetes原生监测工具Tetragon则需定义好政策才会发现到该rootkit。
基于io_uring的安全疑虑,Google已经在ChromeOS、Google服务器及Android关闭io_uring的支援,Docker也预设不支援io_uring。Linux 6.6也提供全系统关闭的方法。