![/lib/modules/4.4.0-XX-generic/vdso/.build-id 到底是什么](https://linux22.com/image/996330/%2Flib%2Fmodules%2F4.4.0-XX-generic%2Fvdso%2F.build-id%20%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88.png)
我使用 chkrootkit 进行了 rootkit 搜索,结果出现了以下一组奇怪的文件:
/usr/lib/debug/.build-id
/lib/modules/4.4.0-51-generic/vdso/.build-id
/lib/modules/4.4.0-47-generic/vdso/.build-id
/lib/modules/4.4.0-38-generic/vdso/.build-id
/lib/modules/4.4.0-36-generic/vdso/.build-id
/lib/modules/4.4.0-45-generic/vdso/.build-id
/usr/lib/debug/.build-id
/lib/modules/4.4.0-51-generic/vdso/.build-id
/lib/modules/4.4.0-47-generic/vdso/.build-id
/lib/modules/4.4.0-38-generic/vdso/.build-id
/lib/modules/4.4.0-36-generic/vdso/.build-id
/lib/modules/4.4.0-45-generic/vdso/.build-id
这些到底是什么?我很确定它们都是误报,但我仍然不知道它们是什么以及为什么它们在那里。我做了一些搜索,看起来这些是以前更新遗留下来的内核映像。
那么它们为什么会引发假阳性以及我该如何摆脱它们?
答案1
/lib/modules/
是存放模块的目录。下一位(带数字)是这些模块所属的内核编号。
vdso
在模块名称中(它代表virtual dynamic shared object
)。您的系统会执行许多“系统调用”(例如读取和写入磁盘、授予权限等),并且执行每个调用都会占用大量资源。但这些调用也执行了很多次。vdso
创建该模块是为了通过为它们分配内存来帮助缩短所需的时间。
从维基百科:
vDSO(虚拟动态链接共享对象)是一种 Linux 内核机制,用于将一组精心选择的内核空间例程导出到用户空间应用程序,以便应用程序可以在进程中调用这些内核空间例程,而不会产生通过系统调用接口调用这些相同内核空间例程时固有的上下文切换性能损失。
关于此的更多信息:
我相当肯定它们都是假阳性
可能(就像所有这些 rootkit 通知中的 99.999999% 一样;))但您可能需要将这些文件与干净的系统进行比较,并检查文件大小、最后修改时间等内容,以直观地检查这是否是误报。
顺便说一句:/lib/modules/
目录很快就会变得很大。删除旧内核是安全的(保存当前内核和下一个最不旧的内核,以确保您有备份)。请参阅:如何删除旧内核版本来清理启动菜单?
删除旧版本也会降低来自你的 rootkit 的通知数量;)
答案2
我在测试虚拟机 (ubuntu 18.04 LTS) 的 rootkit 扫描中看到了这些,然后删除了它们。系统没有明显的副作用,尽管它们似乎被操作系统使用,因为它在重新启动时重新填充。