Search
Close this search box.

只要是軟體都會有資安問題,開源不代表就比較不安全!

開源軟體(Open source software,開放原始碼軟體)說到底仍是軟體,也同樣有它的漏洞存在;但跟檔案系統漏洞或核心錯誤(kernel panic)不同的是,只有當開源軟體「罷工時」才會感受到其漏洞。

網路媒體《GCN》發表了一篇「開放資源需要更好的軟體設計來躲避攻擊」,這篇文章很誇張的說,基於Heartbleed OpenSSL等問題,對政府的開放資源而言,今年 2014 年可以說是可怕的一年

為什麼說是政府機構呢?因為「Drupal」這個被包含美國白宮等許多政府機構廣泛使用的開放資源管理系統,在今年遭受到了不少折難。

文末,他們建議大家專注在軟體發展與自動數據分析。

他們說得是不錯,但不幸的是隨著推論而來的,只是一大堆對開放資源與安全的艱難的比喻與誤解。

延伸閱讀:〈開源是一種生活態度!六個針對 open source 的大哉問

  • 軟體漏洞災難常見,但這不是軟體本身的錯而是管理問題

我們在 Drupal 計劃中開啟了一個「近期讓人討厭的事(recent unpleasantness)」的題目。

SQL 資料隱碼攻擊(SQL injection)的漏洞並非不尋常。事實上,這是世界上最常見的漏洞。唯一讓軟體漏洞還有新聞價值的原因,是因為從爆出漏洞到廣泛散佈只需極少的時間:「如果沒有及時修補程式的補救,那麼 Drupal 安全小組會需要很長的一段過程才能把網站修好。」一般來說,在邪惡機器人空降到你的伺服器前,你有七個小時去修復你的程式。

而這不是開放資源的問題,是軟體管理的問題。

漏洞是可被預見。WhiteHat Security 說 86% 的網站的開放資源與封閉資源都有像 Drupal 一樣的瑕疵。對,沒錯,我們可以期待有更好的開發商與更好的工程設計步驟,然後數據分析可以幫你更早找到問題,但是遠比上述都更重要的是:準備好計劃與策略來迅速辨識問題、找到解藥、然後開始治療。

在這些前提下,《GCN》接下來的發言讓人更傻眼:「… … 以本質上來說,開放資源是開放給那些可以對之妥協的各種壞蛋們。」世界級安全專家 Bruce Schneier 說了,很多時候,表面上看的到的東西不是真的;從《GCN》他們自己經營一部分的 DHS 專案開發工具,量測開放資源計畫中的瑕疵密度,就可以得到證明。無論何時大家又以安全的口吻提起開源這個話題時,開源就像是個筋疲力竭的街頭藝人,剛從昏迷中被喚醒,然後睡眼惺忪地開始跳起踢踏舞。

這對於開放資源、對 Drupal 的漏洞一點影響都沒有;真正重要的是回覆的速度,而不是瑕疵的源頭在哪

  • 開源還是商業的問題,在於你花不花錢請別人幫你立即修復問題

在這種情況下,絕對值得花點時間在商業協助的重要性上。

開源社群可以做些很棒的事,而他們合作的動力一直往解決聯合行動問題的方向上前進。安全漏洞的詭計並不像是檔案系統的漏洞或是核心錯誤,只有等到開源軟體罷工時你才會開始頭痛。除非他們有技巧高超且很有警覺性的開發者專門來找尋這類問題,否則問題將很難辨識,也因此難以修復。

取得這類注意力最好且最便宜的方式,就是付錢請別人做。這就是當你使用商業支援的開源專案時你所買的東西。

商業支援同時也意味著透過可信賴的管道得到立即修復。而 Drupal 問題之所以那麼值得被討論,是因為程序漏洞藉由假裝已經修復好自己來掩蓋自己的軌跡。所以當使用者登入 Drupal 想檢查有沒有遐疵問題時,卻常一無所獲,即便他們根本沒有要求修復服務。

這個生意真的是很糟糕;使用可信賴的包裝管理工具,並只用你的提供商所簽署的工具進行修復,其實就可以讓你避免這樣的問題發生。

安全軟體管理的概念早已不是新聞。2003 年,GAO 告訴技術資訊政策的專門小組:超過 80% 以上的已知漏洞都可以被歸咎於錯誤配置與遺失的修補程式。今天,我們擁有SCAP 與 DHS 的持續診斷與舒緩(CDM)程式,讓代辦者可以辨識出持續進行的基礎中的安全威脅。我們可以將這些安全威脅排出先後順序,讓員工可以優先處理最大的問題,所以當政府做了對的事情時,我們可以給予鼓勵。

再回到《GCN》的論點:我們現在已經被 Drupal 的故事,還有這個關於開源安全的愚蠢說法給嚇到了,所以我們把 Heartbleed 跟 Shellshock 之類的名聲超臭的漏洞平鋪在整個問題上,製造出他們所聲稱的「可怕的一年」的形象。

「可怕的一年」的由來很有趣,其實是源自 1667 年 John Dryden 的詩「可怕的一年」(Annus Mirabilis),其內容是有關 1666 年的倫敦大火。Dryden 說對那些受苦的人來說,1666 年其實是「奇蹟的一年」,因為那場大火原可能造成更大、更嚴重的損失。

所以,在 2014 年,在沒有減少瑕疵的嚴重性下,我們可以看到開源社群對於漏洞的回覆是多麼有效。而且可以肯定的是,還會有更多的漏洞出現:

但無論訓練有多完整,或再怎麼仔細檢查,還是難以讓軟體完全沒有漏洞不過最重要的是,開源開發者以及志工很快地寫出補釘程式,讓數百萬的大家得以在幾小時之內自行修復問題。這就是奇蹟。

想像看看,一個躲在封閉軟體裡的漏洞,像是 Heartbleed;大家會發現它嗎?會很快有補釘程式來修復它嗎?誰也不知道,因為可以發現然後修復問題的是那家公司所聘用來寫這個軟體的人;他們可能很聰明,他們可能受過良好的訓練,而且可能只用最好的軟體開發工具,但他們卻不能吸引高度運作的開源社群的注意力。

VMWare 對 Shellshcok的回覆就是很好的證據。

《GCN》以軟體重複使用的危險來終結了他的狂熱之夢,將這些潛伏的危險歸咎於 90% 的軟體是經組合而成,而不是寫出來的。我想 《GCN》不是建議大家從頭開始寫軟體,因為這恐怕造成更多危險。

如果重點是說「依靠他人所以很危險」,這句就很中肯。你想要的是經過測試、完整檢視,而且會快速回應問題的軟體。無論是從一家小公司或是一個蓬勃發展的社群,在你從網路下載軟體前,你都得先努力做功課一番。

(資料與圖片來源:open source.com;圖片來源:Electronic_Frontier_Foundation,CC Licensed)

IBM 推出雲端基礎架構服務 Softlayer ,採用開源平台、200 組以上的 API 、裸機服務、NVIDIA GPU 解決方案提升雲端運算效能和穩定性。更有一群專業資安專家為你守護寶貴的資料。

想了解更多,8/25(二)1900-2100,創夢市集 DIT Startup 「蝴蝶數位、Kuuluu 都在用,線上遊戲業者如何攻略雲端主機?」
現場將由 IBM 雲端系統架構師和資深顧問,為你親自分析和規劃適合你的雲端服務,並為你檢測你的雲端組合,僅次一場,完全免費、名額有限,即刻報名參加。

報名網址:http://www.accupass.com/go/softlayer