當Java 最近又出現另一次零時差漏洞,要使用者「移除Java」的聲音已經成為一種普遍的意見。請參考:Java更新補救安全漏洞 美國安部仍籲「停用」
已經有許多關於甲骨文針對最近CVE-2013-0422的Java零時差漏洞修補程式不完全的討論。在這篇文章中,我們想藉此機會來釐清幾個相關問題。
已經有許多關於甲骨文針對最近CVE-2013-0422的Java零時差漏洞修補程式不完全的討論。在這篇文章中,我們想藉此機會來釐清幾個相關問題。
Java仍有很大的風險
根據趨勢科技的分析,我們已經證實CVE-2013-0422的修補程式並不完整。這CVE包含兩個問題。一個來自com.sun.jmx.mbeanserver.MBeanInstantiator class的FindClass method。另一個來自java.lang.invoke.MethodHandle class的invokeWithArguments() method。甲骨文已經修補了後者,但是findclass method仍然可以被用來獲取被限制class的reference。簡單來說,findclass method的問題仍然留下可供利用的後門,可能被另一個新的漏洞所用。
趨勢科技也想澄清另外一點,這次是針對CVE-2012-3174。和某些報導的觀點不同,這並不是Reflection APT的問題。Reflection API的問題已經在CVE-2013-0422裡被修補了。引用美國國家漏洞資料庫(NVD)的話「註:有些團體將CVE-2012-3174和遞迴使用Reflection API的問題關連在一起,但是這問題已經被CVE-2013-0422所包含。」
在這起事件裡,每個人心裡最大的問題是「使用者安裝這修補程式之後安全嗎?」或是「這修補程式可以防護最近利用CVE-2013-0422的攻擊嗎?」是的,直到有人找到新臭蟲跟第一個問題結合為止。Findclass method仍然是個懸而未決的問題,但它本身不能做為漏洞攻擊。不過訊息很清楚:Java仍然是很大的風險。
不過,想辦法去將Java的風險降到最低還是該做的事情。最理想的狀況是你可以移除Java以完全避免風險。但如果因為某些原因而不可行,那這些技巧可以幫你盡可能地減少風險。
在一般情況下,這是個明智的建議。如果可以的話,使用者應該移除Java,如果並不會用到。不幸的是,對於很多使用者來說,這並不是個選項。很多企業都在Java平台上構建客製化應用程式。消費者可能還需要Java去連上銀行網站(許多都用Java)或執行軟體(Minecraft需要用到Java )。
所以,要如何安全的使用Java?首先,Java威脅主要來自惡意網站的惡意Java程式。如果你是因為應用程式需要而安裝Java,那你可以在瀏覽器禁用Java而不會受到影響。
過去你如果需要這樣做的話,需要一個一個瀏覽器分別設定,但現在不同了。目前的Java版本可以透過Java控制面板來做到這一點。可以在這裡找到如何進行的說明。網頁上的Java程式將無法執行,但Java應用程式可以繼續使用,沒有問題。
基於這個問題,使用者必須考慮自己是否真的需要Java。如果不的話,就應該將其移除。對於無法避免使用Java的使用者而言,還有其他的方法來降低風險:
如果一定要使用Java的該怎麼辦?
很多企業都在Java平台上構建客製化應用程式。消費者可能還需要Java去連上銀行網站(許多都用Java)或執行軟體(Minecraft需要用到Java )。
- 如果你因為應用程式需要而安裝Java,就在瀏覽器內選擇停用
所以,要如何安全的使用Java?首先,Java威脅主要來自惡意網站的惡意Java程式。如果你是因為應用程式需要而安裝Java,那你可以在瀏覽器禁用Java而不會受到影響。
過去你如果需要這樣做的話,需要一個一個瀏覽器分別設定,但現在不同了。目前的Java版本可以透過Java控制面板來做到這一點。可以在這裡找到如何進行的說明。網頁上的Java程式將無法執行,但Java應用程式可以繼續使用,沒有問題。
- 如果公司內部網站或銀行網站需要Java,請個別停用瀏覽器內的Java,選擇一個「次要」瀏覽器來上使用Java的網站,然後在主要瀏覽器中停用它
在這種情況下,你需要在瀏覽器內停用Java。選擇「次要」瀏覽器專門用來瀏覽使用Java的網站,然後在主要瀏覽器中停用它。例如,如果你是Chrome使用者,你可以用Firefox或Internet Explorer來瀏覽Java網站。趨勢科技資深安全顧問Rik Ferguson已經發表過一篇文章提供針對瀏覽器來停用Java的詳細步驟:
- 在Internet Explorer裡停用Java:的Internet Explorer的「工具」選單內選取「管理附加元件」,停用Java™ Plug-in SSV Helper和Java 2™ Plug-in 2 SSV Helper
- 在Firefox裡停用Java(MacOS和Windows):在「工具」選單裡選取「附加元件」,停用Java Deployment Toolkit、Java™ Platform和/或Java Applet Plug-in
- 在Google Chrome裡停用Java:按入Chrome瀏覽器窗口右上角的「扳手」圖示,選取「選項」,進入「進階選項」然後選取「隱私權說明」中的「內容設定」。進入「內容設定」面板後,在「外掛程式」區段中選取「停用個別外掛程式」,找到Java並且點擊「停用」連結就可以了!
- 在MacOS的Safari裡停用Java:在Safari選單內選取「偏好設定」,按一下「安全性」標籤。取消勾選「啟用Java」
- 在Windows的Safari裡停用Java:在瀏覽器右上角點選「齒輪」圖示,然後選取「偏好設定」,選取「安全性」,取消勾選「啟用Java」。
基本上Internet Explorer和Firefox都可以輕易的在選單內停用外掛程式。Chrome則比較隱密,最快的做法是在地址列上輸入chrome://plugins。一旦你進入設定頁面,停用Java外掛程式來禁止瀏覽器執行任何Java程式。
此外,Chrome使用者的另一種選擇是控制要不要執行Java程式。Chrome會在執行Java程式前出現提示,讓你選擇只執行這一次或在這網站上永久可以執行。使用者應該要選擇只執行一次,如果他們知道這個網站真的需要Java。
值得稱讚的是,甲骨文正在努力改善Java的安全性。目前的版本 – Java 7 Update 11 – 將預設安全設定提升為高,沒有簽章或自己簽章的Java程式將不再可以未經使用者提示就執行。理論上,這應該能減少惡意Java程式的影響。但是使用者還是可能會去授權這些惡意Java程式執行(行之多年的社交工程陷阱( Social Engineering)攻擊讓我們很清楚的知道,可以誘導使用者去點任何東西。)而且也可能因為企業客製化的Java程式不符合這標準,導致設定被改變。
關於趨勢科技所提供的相關威脅防護資訊,可以查看我們之前的文章 – 「Java零時差漏洞攻擊碼和Ruby on Rails漏洞
趨勢科技的使用者不必擔心,趨勢科技Deep Security已經可以保護他們免於此威脅。自從最開始我們在部落格上報導這個問題,趨勢科技就已經透過Deep Packet Inspection(DPI)規則1004711 來偵測惡意Java JAR檔案,保護使用者。趨勢科技的主動式雲端截毒技術也可以偵測針對這Java漏洞的攻擊碼和封鎖藏有這漏洞攻擊碼的網站。
@原文參考出處:
How to Use Java – If You Must
Java Fix for Zero-Day Stirs Questions
◎延伸閱讀
後門程式偽裝Java伺服器,控制有漏洞的網頁伺服器《Java 零時差漏洞攻擊》
關閉Java而非JavaScript(含停用 Java 指南)
Java Runtime Environment 1.7零時差漏洞攻擊, 會擷取螢幕、網路攝影機影像和錄音,易危及Mac OSX
《Java 零時差漏洞攻擊》Nitro攻擊活動和Java零時差攻擊
想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚