盡管即將迎來 30 周年,基于開源的 Linux,仍是計(jì)算機(jī)歷史上最大的協(xié)作開發(fā)項(xiàng)目。圍繞 Linux 的龐大社區(qū),已讓它能夠順利完成許多驚人的工作。與此同時(shí),開發(fā)者們似乎缺乏對(duì)安全缺陷的注意力。谷歌開源安全團(tuán)隊(duì)軟件工程師 Kees Cook 在一篇博客文章中指出:代碼的健壯性與安全性之間有很強(qiáng)的聯(lián)系。鑒于 Bug 已經(jīng)很難查找,安全缺陷就更難顯露出來。
谷歌呼吁正確面對(duì) Linux 內(nèi)核的安全性問題(來自:Google Security Blog)
對(duì)于開發(fā)者來說,顯然不該止步于此。當(dāng)缺陷確實(shí)顯現(xiàn)時(shí),對(duì)其展開有效處理也是很有必要的。
通過先行一步,不僅能夠一次修補(bǔ)一個(gè) bug,還可阻止因其引發(fā)的不良影響。使用 C 語言編寫的 Linux,顯然也將長(zhǎng)期面臨這方面的問題。
Kees Cook 指出,Linux 必須采取更加主動(dòng)的安全措施,以保護(hù)自身免受相關(guān)風(fēng)險(xiǎn)的影響。
舉個(gè)例子,汽車之所以強(qiáng)制配備安全帶,并不是我們有意要撞車,而是因?yàn)槲kU(xiǎn)隨時(shí)可能降臨。
即使每個(gè)人都希望在他們的計(jì)算機(jī)、移動(dòng)設(shè)備、或交通工具上運(yùn)行一個(gè)安全的內(nèi)核,也不是每個(gè)人都有能力做些什么。
上游內(nèi)核開發(fā)人員能夠修復(fù) bug,但無法控制下游供應(yīng)商選擇將哪些內(nèi)容整合到他們的產(chǎn)品之中。
最終用戶可以選擇他們需要的產(chǎn)品,但通常也無法控制修復(fù)了哪些 bug、或使用了哪些內(nèi)核(有時(shí)內(nèi)核本身也是個(gè)問題)。
綜上所述,最佳的辦法,就是讓供應(yīng)商對(duì)其產(chǎn)品的內(nèi)核安全負(fù)起責(zé)任來。
盡管許多供應(yīng)商都在受到惡意軟件、僵尸網(wǎng)絡(luò)、以及針對(duì)有缺陷軟件的攻擊時(shí)選擇做一只鴕鳥,但 Kees Cook 還是希望他們能支棱起來。
通常情況下,這些廠商會(huì)將自家設(shè)備視作一款物理產(chǎn)品,而不是需要定期更新的“混合服務(wù)”產(chǎn)品。
除了鼓勵(lì)廠商盡可能早地修復(fù)所有 Bug,谷歌安全團(tuán)隊(duì)還希望讓更多工程師能參與到代碼審查、安全測(cè)試、工具鏈開發(fā)、以及基礎(chǔ)設(shè)施改進(jìn)等工作中來。
根據(jù)他們最保守的估計(jì),當(dāng)前的百余名工程師,仍不足以充分支撐 Linux 內(nèi)核及其工具鏈的相關(guān)開發(fā)工作。
但這種“上游優(yōu)先”的產(chǎn)品內(nèi)核開發(fā)與測(cè)試方法,其實(shí)已被證明相當(dāng)有效。比如在 Chrome OS 和 Android 的開發(fā)項(xiàng)目上,谷歌就已經(jīng)落實(shí)了有一段時(shí)間了。
(舉報(bào))