如何檢查基于RHEL的Linux發(fā)行版中的軟件包已針對特定的CVE打上了補(bǔ)丁?
譯文【51CTO.com快譯】CVE(常見漏洞和暴露)不斷被發(fā)現(xiàn)和打補(bǔ)丁。一旦被發(fā)現(xiàn),這意味著某個(gè)操作系統(tǒng)或軟件存在新的安全漏洞,應(yīng)盡快打補(bǔ)丁。當(dāng)然,修復(fù)漏洞是開發(fā)人員的責(zé)任。然而,給這些漏洞打補(bǔ)丁卻是管理員(或用戶)的責(zé)任。問題是,您可能不知道自己是否在使用含有一個(gè)或多個(gè)CVE的軟件。
您如何發(fā)現(xiàn)這些信息?是否不得不花數(shù)小時(shí)來研究?大可不必。事實(shí)上,您只需要知道您在尋找的CVE及其影響的軟件。掌握了這兩點(diǎn)信息,就能迅速發(fā)現(xiàn)安裝在基于Red Hat Enterprise Linux的發(fā)行版上的軟件是否含有該漏洞。
下面介紹如何做到這一點(diǎn)。
您需要什么?
您只需要基于RHEL的Linux發(fā)行版(比如AlmaLinux、Rocky Linux或Fedora Linux)的運(yùn)行中實(shí)例。您甚至不需要擁有sudo權(quán)限的用戶帳戶(只需普通用戶)。
您需要知道要查找哪個(gè) CVE。我更喜歡前往mitre.org上CVE列表的官方主頁??梢曰谲浖焖偎阉?,查看有關(guān)聯(lián)CVE的軟件包的完整列表。
準(zhǔn)備好該操作系統(tǒng)和CVE后,就可以檢查漏洞了。
如何運(yùn)行CVE檢查?
CVE檢查很簡單。我們要將changelog(變更日志)輸出從rpm命令管道傳送(pipe)到grep命令,以列出任何可能的CVE。該命令的語法如下:
- rpm -q --changelog PACKAGE | grep CVE
其中PACKAGE是要檢查的已安裝軟件的名稱,CVE是相關(guān)CVE的全名。在我們做這步之前,不妨看一下OpenSSH軟件包的非管道輸出。執(zhí)行命令:
- rpm -q --changelog openssh
輸出應(yīng)該是openssh變更日志的完整列表(見圖 A)。
圖A. Alma Linux上安裝的openssh版本的整個(gè)更新日志
您可以滾動(dòng)瀏覽整個(gè)列表以尋找所找的那個(gè)CVE,也可以通過grep將其管道傳送,并讓該命令處理繁重任務(wù)。假設(shè)您在尋找CVE-2020-14145,它被描述為:
在OpenSSH 7.9中,由于接受和顯示來自服務(wù)器的任意stderr輸出,惡意服務(wù)器(或中間人攻擊者)可以操縱客戶端輸出,比如使用ANSI控制代碼來隱藏傳輸中的額外文件。
要檢查該漏洞,命令將如下:
- rpm -q --changelog openssh | grep CVE-2020-14145
如果您在輸出中看到任何內(nèi)容,表示已針對該漏洞為openssh打上了補(bǔ)丁(見圖 B)。
圖B.已在AlmaLinux 中針對CVE-2020-14145對OpenSSH打上了補(bǔ)丁
如果您在輸出中沒有看到任何內(nèi)容,表示openssh尚未打補(bǔ)丁,您應(yīng)該立即升級(jí)。只要openssh的開發(fā)人員修補(bǔ)了源代碼,并添加到發(fā)行版代碼存儲(chǔ)庫中,升級(jí)應(yīng)該可以解決問題。
要升級(jí)有問題的軟件包,執(zhí)行命令(確實(shí)需要sudo權(quán)限):
- sudo dnf PACKAGE
其中PACKAGE是有問題的軟件。升級(jí)完成后,再次運(yùn)行CVE檢查以查看軟件包是否已針對該漏洞打上了補(bǔ)丁。如果沒有,繼續(xù)返回升級(jí)版,但愿軟件維護(hù)人員會(huì)盡快解決該問題。
以上就是檢查您在基于RHEL的Linux發(fā)行版上安裝的軟件包中是否存在CVE漏洞的全部內(nèi)容。
原文標(biāo)題:How to check if packages in RHEL-based Linux distributions have been patched for specific CVEs,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】