Apple:這是Java的原罪

  早在2010年十月,Apple就宣布他們將會放棄對Java的支援。這並不會影響到Oracle去直接支援這個Unix系統平台,就跟它會支援其他的Unix作業系統一樣。因為OSX對Java更新的遲緩讓它面臨了clickjacking點擊劫持和其他惡意活動的威脅。Apple最後終於負起責任去更新了Java 6 Update 33。在那之後,Java 6的另一個變更會影響兩個不同地區的時區變化。但Apple似乎不大可能去進一步的更新OSX的Java 6。

  

 在2012年8月14日,Oracle釋出Java 7 Update 6給Mac上的Lion和Mountain Lion作業系統。Oracle對OSX的直接支援終止了Apple Java更新遲緩所受到的指責。Java的未來及相關的安全性現在顯然是握在Oracle的手上。在Oracle釋出OSX Java 7 Update 6更新版本的兩個禮拜內,一個漏洞被發現會影響Windows,而OSX和Linux上也都有相同的漏洞。這個漏洞會影響FireFox、IE 9和Safari 6。Oracle一向會及時的提供Java漏洞修補程式,也終於在近日推出更新版本修補此一漏洞,詳細資訊請參考下列網址: https://blogs.oracle.com/security/entry/security_alert_for_cve_20121

 Mac Java的背景知識

 Java是Sun在1990年代初期所開發的。這個編程環境是用來幫助跨越各種不同的作業系統,從大型主機到嵌入式裝置的作業系統。Java甚至被當成是微軟在1996年所推出的ActiveX的替代控制作法,以延伸微軟COM和OLE跟作業系統的通訊。在2000年。Windows用ActiveX來取代JavaScript作為自己瀏覽器的API。這個外掛API是為Netscape所開發。JavaScript並不是Java,但Netscape認為Java代表分散式作業系統的客戶端/伺服器解決方案。微軟Internet Explorer 5.5的ActiveX將作業系統的應用程式帶到網路上,微軟希望他們的應用程式可以在網路上被廣泛採用,以增加Windows的影響力。

 微軟對於將ActiveX擴展到他們瀏覽器的這項作法的說詞是為了要加強安全性。這時正好微軟也取消Windows Internet Name Service(WINS),而用DNS來提供名稱階層架構,也就是今天認證的基礎。ActiveX看起來是WINS的替代策略,讓微軟可以用來主宰網際網路。但是卻讓網路犯罪份子在網路上利用ActiveX來控制Windows應用程式。ActiveX並沒有讓Windows成為網際網路上的主導者,同時ActiveX也沒有提高安全性。

  在2005年,Android利用Java建立Java執行環境(JRE)。Sun在2006年11月將Java的原始碼用GPL v2開放出去。但是唯一的例外就是不包括行動應用程式。所以Google開發自己的Java虛擬機器(JVM)技術,稱為Dalvik,以避開編程介面的限制。並且將JRE的堆疊模式轉變成Java虛擬機器(JVM)的暫存器型態。

 接著,Sun在2010年被Oracle所收購。Apple並沒有替Java提供移除安裝程式,使用Java的程式可能不會取消檢查Apple的Java控制面板來直接使用Java。而許多這樣的程式也不會去注意到Oracle Java 7 Update 6的控制面板,更不會接受可用的Java 7環境位置。這些Java的問題需要一點時間來解決,但是Apple已經清楚的表達了他們的意思,不會再自動安裝Java,也不會支援Java 7。

 

Apple應用程式的規則

 在Mac App Store審核指南規則2.24指出:

 「應用程式使用不適用或需額外安裝的技術(例如Java、Rosetta)將會被拒絕」

 控制應用程式的更新,可被允許的元資料和捷徑、禁止未經使用者同意就自動啟動和禁止下載其他應用程式或修改 – 所有的這一切都是為了提高安全性的目標。但是如果還是允許Java的話,執行這些安全措施並不實際,也會讓網路犯罪份子更加容易攻擊成功。

  

 此外,蘋果過去就不喜歡跨平台的函式庫透過堆疊來傳遞執行與資料結構,他們認為這在本質上就不是最佳化。Apple選擇使用Objective-C,它是用來交換訊息而非執行。這種語言是在1980年代初為了NeXT多媒體電腦而開發,成為第一個瀏覽器的平台,之後移植到Netscape和Internet Explorer。

 我們最終會告別類似Cyberduck的Java應用程式以及Lion之前的OSX版本上的Java嗎?

 這對OS X使用者來說是什麼意思?

 首先,在對Java做任何變動前先備份好你的系統。這些變動可能會影響非Apple的應用程式,特別是那些依賴Java執行的軟體。儘管OSX並不使用Java,但是要注意非Apple應用程式所產生的問題以及新的漏洞出現。在Apple和Oracle環境下都沒有友善的安裝/移除工具來正確地安裝或移除現有的Java執行環境。

 使用者可能沒有安裝Apple所提供的Java。如果這樣的話,當有應用程式嘗試去使用Java時,OSX會提示用戶安裝Java。當先安裝Apple的Java,再安裝Oracle的Java之後,在系統偏好內(通常位在Dock上),按一下「其他」區段內的Java圖示來清除Java快取。

 這一動作會打開「Java控制面板」。在「Java控制面板」中按一下「暫存Internet檔案」下的設定,在「暫存Internet檔案」視窗按下「刪除檔案」按鈕。這會開啟「刪除檔案和應用程式」視窗,按下「確定」確認刪除。

 你可能會發現Chrome是32位元的瀏覽器,並不支援64位元的Java 7

 如果你想刪除Java 7,Oracle在這個頁面提供刪除說明。他們的說明描述將/Library/Internet\ Plugins/JavaAppletPlugin.plugin送進垃圾桶以移除Oracle版本並回復Apple版本之後,要使用一個符號連結(Symbolic Link)來恢復它的功能。

 想要反安裝Apple的Java 6而不安裝Oracle的Java 7,可以手動刪除/System/Library/Frameworks/下的「JavaVM.framework」。此外,也要在下列目錄中刪除指向該Framework的連結:

  • /System/Library/Java/JavaVirtualMachines
  • /Library/Java/JavaVirtualMachines

  Apple去除Adobe Flash和Java是為了讓OSX和iOS擺脫有問題的語言,以免引來廣泛的漏洞攻擊和問題。但我想到一個問題:HTML5會被證明更安全嗎,如果大家還是希望有動態網頁的話?

原文出處:Apple: A Thing Unto Itself Sans Java作者:Douglas Otis(趨勢科技資深威脅研究員)

 

想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁上按讚:https://www.facebook.com/trendmicrotaiwan

 

 延伸閱讀

 Java Runtime Environment 1.7零時差漏洞攻擊, 會擷取螢幕、網路攝影機影像和錄音,易危及Mac OSX

 《Java 零時差漏洞攻擊》 關閉Java而非JavaScript(含停用 Java 指南)

《Java 零時差漏洞攻擊》Nitro攻擊活動和Java零時差攻擊

APT 攻擊

【立即下載試用PC-clin 2012 雲端版 臉書地雷區 bye bye~

免費下載防毒軟體:歡迎即刻免費下載試用NSSLABS 最新防毒軟體測試第一名的防毒軟體PC-cillin 2012 即刻按這裡下載

@參考推文

雲端系!史上最強防毒軟體現身
看更多<PC-cillin真的不一樣>100字推文

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