iLocker 作为 iGuard 网页防篡改系统的文件驱动过滤模块所衍生出来的独立应用,是一个文件防护工具,可以在文件系统驱动层检查文件操作,根据规则对文件操作进行放行或拦截,可以灵活细致地对文件访问进行控制。
分享一则 iLocker 在实际运用中的案例,帮助大家拓展 iLocker 的运用思路——
起因
和许多突发事件一样,本次案例也发生在状况高发期——半夜。
工程师小张反馈服务器有不明程序在运行,判断不出程序的运行意图不说,它甚至还吃掉了100%的 CPU。小张尝试 kill 掉这个不明进程,却每次都会有新的进程杀出来,名字不尽相同,都是无规则的一串字母,好不烦人。
根据小张所述,并没有什么头绪,只有在程序里找线索了。
首先要厘清服务器(Linux)上的进程状态。 top
命令一看,确实有个符合上述特征的奇怪进程在吃 CPU。
尝试重现小张所说情况: kill-9
可以杀掉,再 top
一看,又出来一个进程,名字变了,但换汤不换药。
观察
依照常规,用 ps-ef|grep
检测发现,如下图,7769,分明是同一个进程 ID。 top
所显示的进程名和 ps
得到的结果并不一样。这一项问题姑且不论,检查后还发现, ps
命令没有被替换,程序还没有感染整个系统。可以用 lsof 进一步查看此进程,发现程序文件在 /usr/bin/
下。
可以尝试再 kill 一次进程。
虽然如意料之中,得到和最初一样的结果,但再运行一次 ps
命令,我们有了新发现:不止7769一个进程,还暴露出一长串异常进程。
总结一下这次的问题:在同一时间点上,多个不该运行的命令在运行,比如 route-n
, grep"A"
,甚至还有 echo"find"
这样的命令,十分反常。不仅如此,这些命令变化大量且迅速,每个进程短暂运行数秒即消失,新命令进程也在不断生成。
至此,这次异常状况的形态已初露端倪,100%占用 CPU 的进程可以断定是核心工作进程,其他变化多端的闪现进程则充当保护肉盾,用来保护真正的工作进程不被杀死删除。棘手的,便是这些周而复始,阴魂不散的保护进程了。
当然,经验丰富的我方安全战斗人员,一线作战经验丰富,如果排查出问题所在,解决方案也当即应运而生。
shell 提示新邮件,查看一下,或许是个不错的切入点哦!