|
從1997年開始的一個“可怕的錯誤”,用于編碼對象的Java對象序列化能力具有嚴重的安全問題
1.jpg (24.66 KB, 下載次數(shù): 621)
下載附件
2018-5-25 12:03 上傳
甲骨文計劃從Java中退出它的序列化功能,這在安全方面一直是一個棘手的問題。也稱為Java對象序列化,該功能用于將對象編碼為字節(jié)流。用于輕量級持久性和通過套接字或Java RMI進行通信,序列化還支持從流中重建對象圖。
Oracle的Java平臺部門首席架構(gòu)師Mark Reinhold說,去除序列化是一個長期目標(biāo),也是Project Amber的一部分,它專注于面向生產(chǎn)力的Java語言特性。
為了替換當(dāng)前的序列化技術(shù),一旦支持Java版本的數(shù)據(jù)類,就會在平臺中放置一個小的序列化框架。該框架可以支持記錄圖形,開發(fā)人員可以插入他們選擇的序列化引擎,支持JSON或XML等格式,從而以安全的方式序列化記錄。但Reinhold還不能確定哪個版本的Java將具有記錄功能。
序列化在1997年是一個“可怕的錯誤”,Reinhold說。他估計至少有三分之一甚至一半的Java漏洞涉及序列化。序列化總體上是脆弱的,但具有在簡單用例中易于使用的吸引力,Reinhold說。
最近,為Java添加了過濾功能,因此如果在網(wǎng)絡(luò)上使用序列化并且必須接受不受信任的序列化數(shù)據(jù)流,則可以過濾哪些類,以提供針對序列化安全弱點的防御機制。 Reinhold說,甲骨文收到了很多關(guān)于運行在網(wǎng)絡(luò)上的應(yīng)用服務(wù)器的報告,其中沒有受保護的端口采用序列化流,這就是為什么開發(fā)過濾功能的原因。
|
|