如何檢查基于RHEL的Linux發行版中的軟件包已針對特定的CVE打上了補丁?
譯文【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】