攻亦是防,防亦是攻——Linux内核视角看权限维持
原文中文,约13700字,阅读约需33分钟。
📝
内容提要
本文讨论了隐藏rootkits的技术,包括在/proc/modules和/sys/module目录中隐藏,以及使用eBPF和binfmt_misc来检测和逃避rootkits。文章还探讨了如何使用eBPF来监控恶意行为,如网络通信和恶意系统调用。
❓
Q&A
什么是rootkit,它是如何隐藏的?
Rootkit是一种恶意软件,攻击者通过将其模块从内核的双向链表中脱链,隐藏在/proc/modules和/sys/module目录中。
eBPF在检测恶意行为方面有什么作用?
eBPF可以监控系统调用和网络事件,检测恶意行为并检查系统调用表的劫持情况。
如何通过eBPF实现对系统调用的劫持检测?
可以通过检查系统调用入口指针是否在内核符号地址范围内,来检测是否存在劫持情况。
binfmt_misc功能是什么,它如何影响容器逃逸?
binfmt_misc允许识别任意可执行文件格式,攻击者可以利用它执行特定格式的文件,从而实现容器逃逸。
攻击者如何利用eBPF进行网络流量的隐蔽?
攻击者可以通过eBPF在网络驱动的早期接收路径上运行程序,绕过主机的防火墙限制,隐蔽恶意流量。
如何通过修改内核模块实现rootkit的隐藏?
通过将rootkit模块的module结构体从内核的双向链表中脱链,可以实现模块的隐藏。
🏷️