如何管理開源產品的安全漏洞

Amber Ankerholz發表於2017-08-31
作者: Amber Ankerholz 譯者: LCTT geekpi

| 2017-08-31 10:29      

在 ELC + OpenIoT 峰會上,英特爾安全架構師 Ryan Ware 將會解釋如何應對漏洞洪流,並管理你產品的安全性。

在開發開源軟體時, 你需要考慮的安全漏洞也許會將你吞沒。常見漏洞及曝光Common Vulnerabilities and Exposures(CVE)ID、零日漏洞和其他漏洞似乎每天都在公佈。隨著這些資訊洪流,你怎麼能保持不掉隊?

英特爾安全架構師 Ryan Ware 表示:“如果你釋出了基於 Linux 核心 4.4.1 的產品,該核心截止今日已經有 9 個針對該核心的 CVE。這些都會影響你的產品,儘管事實上當你配載它們時還不知道。”

ELC + OpenIoT 峰會上,英特爾安全架構師 Ryan Ware 的演講將介紹如何實施併成功管理產品的安全性的策略。在他的演講中,Ware 討論了最常見的開發者錯誤,跟上最新的漏洞的策略等等。

Linux.com:讓我們從頭開始。你能否簡要介紹一下常見漏洞和曝光(CVE),零日以及其他漏洞麼?它們是什麼,為什麼重要?

Ryan Ware:好問題。常見漏洞及曝光Common Vulnerabilities and Exposures(CVE)是按美國政府的要求由 MITR Corporation(一個非營利組織)維護的資料庫。其目前由美國國土安全部資助。它是在 1999 年建立的,以包含有關所有公佈的安全漏洞的資訊。這些漏洞中的每一個都有自己的識別符號(CVE-ID),並且可以被引用。 CVE 這個術語,已經從指整個資料庫逐漸演變成代表一個單獨的安全漏洞: 一個 CVE 漏洞。

出現於 CVE 資料庫中的許多漏洞最初是零日漏洞。這些漏洞出於不管什麼原因沒有遵循更有序的如“責任揭秘Responsible Disclosure”這樣的披露過程。關鍵在於,如果沒有軟體供應商能夠透過某種型別的修復(通常是軟體補丁)來進行響應,那麼它們就成為了公開和可利用的。這些和其他未打補丁的軟體漏洞至關重要,因為在修補軟體之前,漏洞是可以利用的。在許多方面,釋出 CVE 或者零日就像是開槍。在你比賽結束之前,你的客戶很容易受到傷害。

Linux.com:有多少漏洞?你如何確定那些與你的產品相關?

Ryan:在探討有多少之前,以任何形式釋出軟體的任何人都應該記住。即使你採取一切努力確保你釋出的軟體沒有已知的漏洞,你的軟體也會存在漏洞。它們只是不知道而已。例如,如果你釋出了一個基於 Linux 核心 4.4.1 的產品,那麼截止今日,已經有了 9 個CVE。這些都會影響你的產品,儘管事實上在你使用它們時不知道。

此時,CVE 資料庫包含 80,957 個條目(截止至 2017 年 1 月 30 日),包括最早可追溯到 1999 年的所有記錄,當時有 894 個已記錄問題。迄今為止,一年中出現最大的數字的是 2014 年,當時記錄了 7,946 個問題。也就是說,我認為過去兩年該數字減少並不是因為安全漏洞的減少。這是我將在我的談話中說到的東西。

Linux.com:開發人員可以使用哪些策略來跟上這些資訊?

Ryan:開發人員可以透過各種方式跟上這些如洪水般湧來的漏洞資訊。我最喜歡的工具之一是 CVE Details。它以一種非常容易理解的方式展示了來自 MITRE 的資訊。它最好的功能是建立自定義 RSS 源的能力,以便你可以跟蹤你關心的元件的漏洞。那些具有更復雜的追蹤需求的人可以從下載 MITR CVE 資料庫(免費提供)開始,並定期更新。其他優秀工具,如 cvechecker,可以讓你檢查軟體中已知的漏洞。

對於軟體棧中的關鍵部分,我還推薦一個非常有用的工具:參與到上游社群中。這些是最理解你所使用的軟體的人。世界上沒有比他們更好的專家。與他們一起合作。

Linux.com:你怎麼知道你的產品是否解決了所有漏洞?有推薦的工具嗎?

Ryan:不幸的是,正如我上面所說,你永遠無法從你的產品中移除所有的漏洞。上面提到的一些工具是關鍵。但是,我還沒有提到一個對你釋出的任何產品來說都是至關重要的部分:軟體更新機制。如果你無法在當場更新產品軟體,則當客戶受到影響時,你無法解決安全問題。你的軟體必須能夠更新,更新過程越容易,你的客戶將受到更好的保護。

Linux.com:開發人員還需要知道什麼才能成功管理安全漏洞?

Ryan:有一個我反覆看到的錯誤。開發人員總是需要牢記將攻擊面最小化的想法。這是什麼意思?在實踐中,這意味著只包括你的產品實際需要的東西!這不僅包括確保你不將無關的軟體包加入到你的產品中,而且還可以關閉不需要的功能的配置來編譯專案。

這有什麼幫助?想象這是 2014 年。你剛剛上班就看到 Heartbleed 的技術新聞。你知道你在產品中包含 OpenSSL,因為你需要執行一些基本的加密功能,但不使用 TLS 心跳,該問題與該漏洞相關。你願意:

a. 花費時間與客戶和合作夥伴合作,透過關鍵的軟體更新來修復這個高度安全問題?

b. 只需要告訴你的客戶和合作夥伴,你使用 “-DOPENSSLNOHEARTBEATS” 標誌編譯 OpenSSL 產品,他們不會受到損害,你就可以專注於新功能和其他生產活動。

最簡單解決漏洞的方法是你不包含這個漏洞。

(題圖:Creative Commons Zero Pixabay)


via: https://www.linux.com/news/event/elcna/2017/2/how-manage-security-vulnerabilities-your-open-source-product

作者:AMBER ANKERHOLZ 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

如何管理開源產品的安全漏洞

相關文章