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