【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。该命令的语法如下:
- rpm -q --changelog PACKAGE | grep CVE
其中PACKAGE是要检查的已安装软件的名称,CVE是相关CVE的全名。在我们做这步之前,不妨看一下OpenSSH软件包的非管道输出。执行命令:
- rpm -q --changelog openssh
输出应该是openssh变更日志的完整列表(见图 A)。
图A. Alma Linux上安装的openssh版本的整个更新日志
您可以滚动浏览整个列表以寻找所找的那个CVE,也可以通过grep将其管道传送,并让该命令处理繁重任务。假设您在寻找CVE-2020-14145,它被描述为:
在OpenSSH 7.9中,由于接受和显示来自服务器的任意stderr输出,恶意服务器(或中间人攻击者)可以操纵客户端输出,比如使用ANSI控制代码来隐藏传输中的额外文件。
要检查该漏洞,命令将如下:
- rpm -q --changelog openssh | grep CVE-2020-14145
如果您在输出中看到任何内容,表示已针对该漏洞为openssh打上了补丁(见图 B)。
图B.已在AlmaLinux 中针对CVE-2020-14145对OpenSSH打上了补丁
如果您在输出中没有看到任何内容,表示openssh尚未打补丁,您应该立即升级。只要openssh的开发人员修补了源代码,并添加到发行版代码存储库中,升级应该可以解决问题。
要升级有问题的软件包,执行命令(确实需要sudo权限):
- 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】