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

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

介绍

依靠自由和开源软件(FOSS)的IT组织在处理未打补丁的共享库方面一直面临着不懈的努力。 这是一个不平凡的问题,因为共享库是广泛针对的攻击面。 例如,研究表明OpenSSL是世界上针对性最强的软件, 全球敌对活动的19%

如果您负责OpenSSL和GNU C(glibc)库,在许多可比较的开源代码集中,您必须及时执行更新和补丁管理。 更新库的传统方法包括:如果无法确定哪些进程仍在使用过期的库,则重新启动整个服务器或重新启动所有进程。 但是,系统重新启动会带来复杂性和风险。 谢谢 内核维护 团队,我们可以使用一个名为的简单脚本轻松解决此问题 UChecker

什么是UChecker

UChecker,缩写为 用户空间检查器,是一种免费的开源扫描仪,可识别您的哪些进程仍在使用过期的库并需要重新启动。 它是在 共享库的实时修补 由KernelCare。 使用Uchecker,您可以识别易受攻击的FOSS库并进行修补。 您将必须重新启动受影响的进程(除非您正在使用不重新启动的库更新服务),但是通过扫描漏洞,可以确定哪些进程需要注意,哪些不需要。

因此,您可以避免不必要的服务器重启,从而避免服务降级和/或中断,并避免漏洞库的创建,因为在计划好重新启动之前,库将保持未修补状态。 确实,您甚至可能都不知道哪些服务使用哪些库,因此很想重新启动整个服务器以全部更新它们或重新启动主要服务。 这种做法也可能像重新启动一样具有破坏性。

UChecker的工作方式

从第6版开始,Uchecker可与所有现代Linux发行版一起使用。 它是一个免费软件,使用JSON构建,并可以根据GNU通用公共许可证的条款进行重新分发和/或修改。 Uchecker检测使用旧(即未修补)共享库的进程。 它检测并报告正在运行的进程正在使用的最新共享库。 它的检测功能基于BuildID比较。 结果,他们知道已删除或替换的文件。

下图显示了Uchecker的工作方式。

UChecker的工作方式

Uchecker工具能够检测进程ID和名称以及未打补丁的共享库的名称以及它们的构建ID。 Uchecker从KC资源获取最新的BuildID。 然后通过迭代遍历一个正在运行的进程 /proc/ 并从中获取链接的共享库 /proc/<pid>/maps。 此时,Uchecker询问是否尚未替换或删除共享库。 根据答案,软件将解析文件系统中的ELF或映射内存中的ELF。 然后,Uchecker从以下位置收集BuildID .note.gnu.build-id

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

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

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

上面的命令在Linux服务器系统上扫描链接到Windows Server 2003的过时共享库。 蟒蛇 处理并在标准输出中列出它们。

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

然后,您可以使用系统的默认程序包管理器更新这些未修补的库。

在以下视频中观看有关Uchecker如何工作的视觉演示:

Uchecker示范

结论

Uchecker使您能够保持FOSS库的修补程序和最新状态。 您可以避免不得不重新启动服务器的麻烦,因为您不知道需要重新启动哪些进程。 这与OpenSSL和GNU C(glibc)库有关。 借助KernelCare +之类的技术,除了Linux内核中的漏洞外,现在甚至可以在基本用户空间库中进行漏洞实时修补。 您可以更新应用程序而不会影响它们的运行状态。 无需重新启动或重新启动。

资源:

相关阅读:

  • 5个内核实时修补工具,这些工具将有助于在不重新引导的情况下运行Linux服务器

KernelCareLinux开源脚本共享库Uchecker

Sidebar