IBM上周公布的漏洞不僅可以在Windows 95上運行,甚至連IE 11的沙盒機制都拿它沒有辦法。IBM早在五月份就把問題告訴了微軟,但直到這周二微軟才發補丁修復,可謂是一個“長老”級漏洞了。幸運的是目前并沒有發 現任何人利用了此漏洞,也許這正是它能夠埋藏19年的原因。
無獨有偶。2011年,微軟就發補丁修復過一個潛伏期同 樣長達19年的Windows漏洞。據發現者360聲稱,這個漏洞最早出現在1992年早期的Windows NT系統中,利用該漏洞可以獲得電腦的最高權限,破壞殺毒軟件、防火墻、還原系統、沙箱等各類安全軟件,使電腦喪失對病毒的抵抗力。
盡管如此,人們不禁要問,一個漏洞如何在長達19年的時間里沒有被發現?軟件開發中的真實情況究竟是什么?
這段在運行在IE 3中的缺陷代碼經歷了許多系統版本依然存在,也就是說被重復的使用了一次又一次,即便是在一個全新的產品之中也在使用。
問題在于舊代碼通常不會有人去回溯。一名微軟研究人員表示,這只是一段實現簡單功能的代碼,只要它能運行,沒人在意它是否有漏洞,也沒人想過去測試它是否存在漏洞,無論是在內部還是外部。
由于這段代碼是符合網頁標準的,包括微軟自己的標準。因此為了保證對舊網頁的兼容性,微軟也不會輕易地去觸動這段代碼。而且不要以為那些陳舊的垃圾網頁沒有多少,好多企業的歷史事件、產品頁、新聞發布都可以追溯到上個世紀90年代。
于是,一個現實問題浮出水面。由于開發人員離開企業或調動崗位,舊代碼通常不會有人去再次查看,也沒有人想去查看。你想,一個IE的開發團隊得到了一段90年代的代碼,他們并不了解這段代碼。這段代碼運行正常,而且原開發人員已經離開。他們會怎樣做?還是讓它照常運行吧。
二十年來,有多少這樣的問題代碼?回溯這些代碼又需要多少人力物力?做不到?