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