一次客户反馈主机中cpu占用100%,但是进程占用都是0,偶尔还系统宏机,怀疑有隐藏进程,有可能是中毒了。
这种情况当然是上机排查了一番,然而进程、网络流量、计划任务、历史命令、Rootkit等统统没有发现异常,排除被入侵的可能。作为一个安全工程师,这种情况也有点懵了,但还是强装表示还可以试试。用起茧的双手一通操作猛如虎,还真找到了问题原因。
一. message日志
通过message日志分析发现宏机Initializing cgroup subsys cpuset
使用dmesg查看Linux的启动日志,也可以发现:
二. vmcore文件
查看vmcore文件分析
报错信息包括mcpuinfo:module verification failed: signature and/or required key missing - tainting kernel
signature 或者 required key missing是导致内核受到污染的事件:
注:如果内核在事件发生时没有被污染,将会显示 Not tainted: 如果污染了,那么将打印“tainted:和字符,无论是字母还是空白。
问题原因找到了,至于如何整改?这个问题问的好,我也不知道,麻烦联系运维部门精通linux的同事进行处置。。。
三. 问题原因
系统在内核上启用了内核模块签名验证,将不加载尚未签名的任何模块。也就是修补模块未正确签名,内核将拒绝加载它。这样做的目的是防止恶意软件和rootkit加载恶意内核模块。
四. 解决建议
解决:linux 内核会有对模块有签名校验,取决于编译内核时候是否开启此特性。
解决方法1:编译内核时,去掉签名支持 CONFIG_MODULE_SIG=n
解决方法1:有证书的情况下,可进行签名。
Taps:
1)扫描关注,设为星标。 2)下载地址:微信公众号回复"hj2023"获取文档下载 |