使用uchecker检测在内存中的过时的共享库

时间:2020-03-21 11:43:20  来源:igfitidea点击:

本教程解释了Uchecker是什么以及如何使用Linux操作系统中的Uchecker检测内存中的过时的共享库。

介绍

IT组织依赖于自由和开源软件(theitroad)面临持续的斗争,在加工未被划分的共享库中努力。
这是一个非琐碎的问题,因为共享库 是一个广泛的目标攻击表面。
例如,研究表明,OpenSSL是世界上最具针对性的软件,占全球敌对活动的19%。

如果我们负责OpenSSL和GNU C(Glibc)库,则在许多可比开源代码中,我们有义务执行及时更新和修补程序管理。
更新库的传统方法涉及重新启动整个服务器或者重新启动所有进程,如果没有办法识别哪个进程仍然使用过时的库。
然而,系统重新引发自己的并发症和风险。
感谢KernelCare团队,我们可以通过名为Uchecker的简单脚本轻松解决此问题。

什么是uchecker.

Uchecker,Shirt for Usferspace Checker,是一个免费的和开源Scanner,标识哪些进程仍在使用过时的库,并需要重新启动。
它是在开发KernelCare的共享库的实时修补过程中创建的。

使用uchecker,我们可以识别脆弱的盛会库和补丁它们。
我们必须重新启动受影响的进程(除非我们使用的是重新启动的库更新服务),而且通过扫描漏洞,我们可以确定哪些进程需要注意,哪些过程也不是。

因此,我们避免了不必要的服务器重新启动,从而导致服务劣化和/或者中断以及漏洞Windows的创建,因为库保持未捕获,直到可以计划重新启动。
实际上,我们甚至可能甚至不知道哪些服务使用哪些库,因此只需重新启动整个服务器以更新全部或者重新启动主服务即可诱人。
这种做法也可以像重启一样破坏性。

Uchecker如何工作

Uchecker从第6个版本开始使用所有现代Linux发行版。
它是一款自由软件,用JSON建造,并在GNU通用公共许可证的条款下打开重新分配和/或者修改。
Uchecker检测使用旧(i..e.unatched)共享库的进程。
它检测到并报告运行进程正在使用的未致新日期共享库。
其检测能力基于BuildIDID比较。
因此,它们意识到已删除或者替换的文件。

以下图形图显示了Uchecker如何工作。

Uchecker工具能够检测到进程ID&名称以及未修补的共享库的名称以及其构建ID。
Uchecker从KC资源获取最新的BuildIds。
然后,它通过迭代'/proc /'来获取运行进程,并获取来自'/proc/<pid>/maps'的链接共享库。
此时,Uchecker询问共享库是否尚未被替换或者删除。
根据答案,软件将从文件系统解析精灵或者从映射内存解析ELF。
然后,Uchecker从".note.gnu.build-id"中收集了构建中的。

使用uchecker检测在内存中的过时的共享库

无需安装!只需运行Uchecker脚本即可在Linux服务器中查找未分割的库:

# curl -s -L https://kernelcare.com/checker | python

上面的命令扫描Linux服务器系统,用于链接到Python进程链接的过时的共享库,并在标准输出中列出它们。

然后,我们可以使用系统的默认包管理器更新那些未分割的库。