with使用UChecker检测内存中过时的共享库

本教程介绍了什么是UChecker,以及如何在Linux操作系统上使用UChecker检测过时的内存共享库。

介绍

在处理不安全的共享库时,依赖于自由和开源软件(FOSS)的IT组织面临着持续的挑战。

这不是一个小问题,因为共享库是攻击的目标。

例如,研究表明OpenSSL是世界上针对性最强的软件,占全球敌对活动的19%-https://hello.global.ntt/en-us/insights/2020-global-threat-intelligence-报告

如果您在许多可比较的开源软件包中使用OpenSSL和GNU C(glibc)库,则有责任及时更新和管理补丁。 更新库的传统方法是重新引导整个服务器,或者如果无法确定哪些进程仍在使用过期的库,则重新启动所有进程。 但是,系统重启本身会带来复杂性和风险。 感谢KernelCare团队,我们可以使用名为UChecker的简单脚本轻松解决此问题。

什么是UChecker

UChecker是Userspace Checker的缩写,是一种免费的开源扫描程序,它可以检测您的哪些进程仍在使用过期的库并需要重新启动。

该工具是由KernelCare在共享库的实时补丁开发期间创建的。

使用Uchecker,您可以识别易受攻击的FOSS库并进行修复。

您将必须重新加载受影响的进程(除非您不重新启动就使用库更新服务),但是通过扫描漏洞,可以确定哪些进程需要关注,哪些不需要。

结果,避免了不必要的服务器重启,这会导致服务降级和/或崩溃,并避免创建访问漏洞,因为在计划进行重启之前,不会对库进行修补。

实际上,您甚至可能不知道哪些服务正在使用哪些库,因此很想重新启动服务器以更新所有内容或重新启动核心服务。

这种做法也可能像重新启动一样具有破坏性。

UChecker的工作方式

Uchecker适用于从版本6开始的所有现代Linux发行版。

它是免费的JSON软件,并且根据GNU通用公共许可证的条款开放供分发和/或修改。

Uchecker会检测使用旧的(即未修补的)共享库的进程。

它检测并报告正在运行的进程正在使用的过时的库。

它的检测功能基于BuildID比较。

结果,该工具知道删除或替换的文件。

Uchecker工具可以确定进程ID和名称,以及未打补丁的共享库的名称,以及它们的程序集ID。

Uchecker从KC资源获取最新的BuildID。

然后,它通过遍历/ proc /来启动该过程,并从/ proc / / maps获取关联的共享库。

此时,Uchecker询问共享库是否已被替换或删除。

根据答案,程序将解析文件系统中的ELF或映射内存中的ELF。

然后,Uchecker从.note.gnu.build-id收集BuildID。

使用UChecker检测过时的内存库

无需安装!

只需运行Uchecker脚本,即可在Linux服务器上找到未打补丁的库:

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

上面的命令将在Linux服务器系统上扫描与python进程相关的过时共享库,并将它们打印到标准输出。

with使用UChecker检测内存中过时的共享库

结论

Uchecker允许您更新FOSS库。

您可以避免重新启动服务器的通常麻烦,因为您不知道需要重新启动哪些进程。

除其他外,对于OpenSSL和GNU C(glibc)库,这是正确的。

由于使用了KernelCare +之类的技术,除了Linux内核库之外,现在甚至可以对核心用户空间库中的漏洞进行热修复。

您可以更新应用程序而不会影响它们的工作状态。

无需重新启动或重新启动。

下载脚本:

https://github.com/cloudlinux/kcare-uchecker

Sidebar