内核模块后门,还有什么比这个更臭屁的呢?Solaris,Linux和几乎所有的Unix都支持LKM(Loadable Kernel Modules),
用普通的方法无法检测其存在,这给应急响应带来了极大的挑战性。对于我们来说,解决的办法是找到那些lkm rootkit,
并熟悉,解剖他们。有时lkm rootkit虽然被成功装载,但在系统的某些细节上会出现“异常,甚至可能使系统在运行一段时间后彻底崩溃。
还有,lkm虽然活动在ring0核心态,但是攻击者往往会在系统的某处留下痕迹,比如攻击者为了让系统每次关闭或重启后能自动装入他安置的
内核后门,可能会改写/etc/modules.conf或/etc/rc.local.
kstat/ksec是检测lkm非常方便的工具,前者用于Linux,后者用于*BSD.
[root@ay4z3ro kstat]# ./kstat
Usage: ./kstat [-i iff] [-P] [-p pid] [-M] [-m addr] [-s]
-i iff may be specifIEd as 'all' or as name (e.g. eth0)
displays info about the queried interface
-P displays all processes
-p pid is the process id of the queried task
-M displays the kernel's LKMs' linked list
-m addr is the hex address of the queried module
displays info about the module to be found at addr
-s displays info about the system calls' table
其中-s参数最有用,它显示了系统调用入口的信息,能检测市面上最流行的knark和adore这两个内核后门,
但理论上他并不能检测出所有的lkm rootkit.
Kstat/ksec站点:http://www.s0ftpj.org
其实熟悉内核攻击的人都知道Kstat单纯检查sys_call_table[]的方式如今已经
标签: