沒有應用程式有漏洞?現在如何?

 

漏洞 弱點攻擊

回顧2014年,我們看到一大堆Adobe Acrobat、JAVA、Windows等軟體漏洞的出現。源源不斷的披露消息已經嚇不到任何人了。

令人驚訝的是兩個非常重要且廣泛的漏洞:Heartbleed心淌血漏洞和 Shellshock

Heartbleed心淌血漏洞 是普遍的開放原始碼安全程式庫OpenSSL內的漏洞。如果你沒聽說過OpenSSL也不用擔心,一般使用者通常不會直接面對它。但它的確提供安全層給大部分的網站。

這個漏洞讓攻擊者可以存取OpenSSL伺服器儲存在記憶體內的資料。此層級的存取讓攻擊者可以用最小的努力就能危害連到伺服器的連線。

Shellshock是一個幾乎無處不在的命令列解譯器 – bash的漏洞。也沒有聽過bash?即使你自己沒有使用,但它可能存在於你正在使用或連上的系統或設備內。

這漏洞讓攻擊者可以輕易地在你的系統上執行任意指令。更糟的是,這攻擊只需要在請求中加入少少的幾個額外字元及很少的技術知識。

兩者加起來,這些漏洞大大地影響了我們對自己IT基礎設施的想法。每個漏洞都因其潛在的影響而受到國家等級的媒體關注。

更糟的是,這兩個漏洞都已存在很長一段時間了。Heartbleed心淌血漏洞在發現時已經存在2年了(來源:維基百科,Heartbleed > 歷史) 。令人震驚的是, Heartbleed心淌血漏洞在被披露時已經存在25了(來源:維基百科,Shellshock > 背景)。

如果說這些事件在安全社群間激起了漣漪是太過輕描淡寫了。

有許多爭辯關於開放原始碼專案和封閉原始碼專案間的整體安全性比較。常見的誤解是屬於開放原始碼專案的程式通常比較安全。

但那並不是真的。

任何程式碼都會有臭蟲和一定數量的安全問題。不管是封閉或開放原始碼專案都希望可以減少程式碼中的臭蟲和其他問題。

現實是如何讓程式變得更加安全或更不安全的重點完全取決於開發程式碼的團隊,他們對品質的承諾及始終如一地去加以貫徹的能力。

開放原始碼會更加安全的謬誤來自於任何人都可以審核程式碼安全問題這件事。關鍵字是「可以」。這並不代表真的有人實際上去進行對程式碼的安全審查。

雖然之前也有過嚴重的安全性漏洞披露,但是Heartbleed心淌血漏洞加上Shellshock更加突顯出這些軟體比大多數人所意識的都還要更加融入我們的日常生活。

也更進一步的突顯出,為我們大量運作來提供基礎的軟體可能並沒有我們假設的那樣安全

因為它能夠正常使用,並且多年來都持續在用並不代表其沒有任何漏洞。

對於封閉原始碼專案來說,需要寫程式的團隊加以檢查並確保所有的問題都被解決。

開放原始碼專案需要用不同的方法。因為主要是基於志願者來運作,需要能夠協調彼此間的努力來盡快解決這些專案內的問題。我們可以舉一個很棒的例子 – 在Heartbleed之後,OpenSSL專案的社群成員進行了一次程式碼審核並開始一些新舉措來解決問題。

封閉原始碼,開放原始碼,這都沒關係。如果你正在開發程式,你需要確保自己盡力去發現和解決程式碼中的任何問題。

如果你正在部署軟體,你必須確保自己瞭解所部署的元件之間的相依關係。此外,準備好對應控制方案以預防任何可能發生的問題。

沒有策略是完美的。擁有多層次防禦是成功安全策略的關鍵。此一策略從強大的核心 – 程式碼本身開始。

 

@原文出處:No Application Is Invulnerable, Now What? 作者:Mark Nunnikhoven (雲端運算和新興技術副總)

 

想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚

◎ 歡迎加入趨勢科技社群網站