最值的重視的問題是關于Java與外部的接口的。年初的時候人們發現QuickTime的 Java接口存在一系列高調的安全漏洞。在最近幾個月中, Java Web Start(幫助客戶機端應用程序開發的一個新技術)技術也被發現了一連串的弱點。關于這些案件的新聞都是關于漏洞的而沒有提及開發。
早在2004年,Sun公司在各種瀏覽器和操作系統中運行Java程序的一個插件被發現存在一個安全漏洞。這個安全漏洞能夠讓病毒通過 Windows和Linux電腦進行傳播。安全信息提供商Secunia公司在安全公告中把這個安全漏洞列為“高危”等級。這個Java插件能夠讓小型網絡程序在用戶計算機上安全的運行。但是,這個安全漏洞允許惡意網站繞過安全措施通過受害者的瀏覽器在用戶計算機上運行惡意程序。由于這一過程無需用戶干預,因此這是“嚴重”等級的安全漏洞。而且,這個安全漏洞可以被用來攻擊Windows和Linux等各種操作系統,因此就更加嚴重。
一些純粹基于Java的開發,生產出在non-VM軟件中易于被攻擊的同一類型的軟件業務。考慮近期Java的圖像解析代碼的弱點,我們發現來自文件的解析數據似乎是一個在所有平臺永不休止的安全問題源頭。但很多這類問題,因為存在于不太知名的應用程序,所以即使它們被正確發現并被供應商所確定也仍然在很大程度上未被公眾所了解。
Java是一個互聯網技術中的一個相關的標準部分,惡意程序作者似乎逐漸開始關注它。我曾見過其他的關于惡意Java代碼的公開報告,比如一份來自ISC的報告。這可能是因為將Java作為開發平臺的工作剛剛起步。Java的堆管理使之能夠被用來開發噴涂堆代碼。如果這些都可以在很大程度上被可靠的操作,即使只工作充足時間的 50%——Java也是游走在麻煩的邊緣。我也不清楚重寫Java的堆管理來解決問題是否會造成實際的Java代碼兼容性問題。
針對處理Java安全問題的建議是令人不安的老生常談:及時升級Java,使用IDS /IPS(入侵檢測系統/入侵防御系統)和保持簽名的最新性,不要瀏覽不安全的網站等,這些和針對非Java產品的建議沒有什么區別。但是難道不應該有所區別嗎?