zl程序教程

您现在的位置是:首页 >  其他

当前栏目

如何检查基于RHEL的Linux发行版中的软件包已针对特定的CVE打上了补丁?

2023-03-14 11:24:48 时间

【51CTO.com快译】CVE(常见漏洞和暴露)不断被发现和打补丁。一旦被发现,这意味着某个操作系统或软件存在新的安全漏洞,应尽快打补丁。当然,修复漏洞是开发人员的责任。然而,给这些漏洞打补丁却是管理员(或用户)的责任。问题是,您可能不知道自己是否在使用含有一个或多个CVE的软件。

您如何发现这些信息?是否不得不花数小时来研究?大可不必。事实上,您只需要知道您在寻找的CVE及其影响的软件。掌握了这两点信息,就能迅速发现安装在基于Red Hat Enterprise Linux的发行版上的软件是否含有该漏洞。

下面介绍如何做到这一点。

您需要什么?

您只需要基于RHEL的Linux发行版(比如AlmaLinux、Rocky Linux或Fedora Linux)的运行中实例。您甚至不需要拥有sudo权限的用户帐户(只需普通用户)。

您需要知道要查找哪个 CVE。我更喜欢前往mitre.org上CVE列表的官方主页。可以基于软件包快速搜索,查看有关联CVE的软件包的完整列表。

准备好该操作系统和CVE后,就可以检查漏洞了。

如何运行CVE检查?

CVE检查很简单。我们要将changelog(变更日志)输出从rpm命令管道传送(pipe)到grep命令,以列出任何可能的CVE。该命令的语法如下:

  1. rpm -q --changelog PACKAGE | grep CVE 

其中PACKAGE是要检查的已安装软件的名称,CVE是相关CVE的全名。在我们做这步之前,不妨看一下OpenSSH软件包的非管道输出。执行命令:

  1. rpm -q --changelog openssh 

输出应该是openssh变更日志的完整列表(见图 A)。

图A. Alma Linux上安装的openssh版本的整个更新日志

您可以滚动浏览整个列表以寻找所找的那个CVE,也可以通过grep将其管道传送,并让该命令处理繁重任务。假设您在寻找CVE-2020-14145,它被描述为:

在OpenSSH 7.9中,由于接受和显示来自服务器的任意stderr输出,恶意服务器(或中间人攻击者)可以操纵客户端输出,比如使用ANSI控制代码来隐藏传输中的额外文件。

要检查该漏洞,命令将如下:

  1. rpm -q --changelog openssh | grep CVE-2020-14145 

如果您在输出中看到任何内容,表示已针对该漏洞为openssh打上了补丁(见图 B)。

图B.已在AlmaLinux 中针对CVE-2020-14145对OpenSSH打上了补丁

如果您在输出中没有看到任何内容,表示openssh尚未打补丁,您应该立即升级。只要openssh的开发人员修补了源代码,并添加到发行版代码存储库中,升级应该可以解决问题。

要升级有问题的软件包,执行命令(确实需要sudo权限):

  1. sudo dnf PACKAGE 

其中PACKAGE是有问题的软件。升级完成后,再次运行CVE检查以查看软件包是否已针对该漏洞打上了补丁。如果没有,继续返回升级版,但愿软件维护人员会尽快解决该问题。

以上就是检查您在基于RHEL的Linux发行版上安装的软件包中是否存在CVE漏洞的全部内容。

原文标题:How to check if packages in RHEL-based Linux distributions have been patched for specific CVEs,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】