Linus怒噴谷歌安全工程師

責(zé)任編輯:editor005

作者:覃云

2017-11-24 11:21:09

摘自:INFOQ

上周五,Linux之父 Linus Torvalds 在內(nèi)核郵件列表上用很犀利的言辭抨擊了Google Pixel 安全團(tuán)隊(duì)的開(kāi)發(fā)者 Kees Cook,引起了大家廣泛地討論

上周五,Linux之父 Linus Torvalds 在內(nèi)核郵件列表上用很犀利的言辭抨擊了Google Pixel 安全團(tuán)隊(duì)的開(kāi)發(fā)者 Kees Cook,引起了大家廣泛地討論。

事情的起因在于Google Pixel 安全團(tuán)隊(duì)的開(kāi)發(fā)者 Kees Cook向Linus遞交了加固usercopy的pull request,但是Linus Torvalds認(rèn)為這種請(qǐng)求是極其愚蠢的,因?yàn)樗J(rèn)為此類(lèi)的加固觸及到了Linux的核心,會(huì)導(dǎo)致內(nèi)核出現(xiàn)混亂。而且他認(rèn)為安全人員的很多行為都是讓人難以接受的,解決安全問(wèn)題的核心在于調(diào)試和修復(fù)bug,而不是應(yīng)該像安全人員那樣靠殺死機(jī)器或終止運(yùn)行來(lái)解決問(wèn)題。

對(duì)此,Rober Graham 對(duì)Linus torvalds 的言論表示贊同,他認(rèn)為我們應(yīng)該關(guān)注郵件的中心思想而不是激烈的言辭,他表示Linus Torvalds在郵件中要表達(dá)的意思有兩點(diǎn):

對(duì)內(nèi)核進(jìn)行大的改動(dòng)應(yīng)該在小的迭代步驟中進(jìn)行,而且每一次都應(yīng)該徹底調(diào)試;

次要的安全問(wèn)題不是重大的緊急情況,他們不允許繞過(guò)的規(guī)則比bug或功能多。

去年曾經(jīng)有一些安全固化的代碼被添加到內(nèi)核中,以防止一類(lèi)緩沖區(qū)溢出/越界的問(wèn)題,此代碼沒(méi)有解決任何特定0day的漏洞,但它能預(yù)防一類(lèi)未來(lái)的潛在漏洞,這個(gè)代碼可以說(shuō)是有bug的,但是不能說(shuō)它是罪惡的,因?yàn)樗械拇a都會(huì)有bug。

在Linus Torvalds看來(lái),當(dāng)檢測(cè)到溢出/越界訪問(wèn)時(shí),代碼將終止用戶(hù)模式進(jìn)程或內(nèi)核,那么可以說(shuō)這個(gè)代碼罪惡的。Linus認(rèn)為它應(yīng)只產(chǎn)生警告,讓有問(wèn)題的代碼繼續(xù)運(yùn)行。但殺死這些東西將會(huì)使得bug變得更加糟糕,它會(huì)導(dǎo)致內(nèi)核的災(zāi)難性故障,如果我們的車(chē)上運(yùn)行著Linux的 多個(gè)副本,那么這種災(zāi)難將會(huì)危及我們的生命,而警告雖然會(huì)把這些bug顯示出來(lái),但不會(huì)造成災(zāi)難性的后果。在經(jīng)過(guò)僅僅一年之后,當(dāng)bug得到修復(fù)時(shí),代碼的默認(rèn)行為會(huì)被改變并消除錯(cuò)誤的代碼,從而防止bug被利用。

簡(jiǎn)而言之,在內(nèi)核中進(jìn)行大的改變應(yīng)該在小而可管理的步驟中進(jìn)行,固化代碼在Linux的25年歷史中都沒(méi)有出現(xiàn)過(guò),所以在非緊急的情況下,沒(méi)必要立即進(jìn)行,更不用說(shuō)繞過(guò)Linus提出的開(kāi)發(fā)流程了。

再者,大多數(shù)的安全人員不是開(kāi)發(fā)人員,他們實(shí)際上并不知道很多事情是如何運(yùn)行的,邊界檢查被他們定義為一種用來(lái)防止緩沖區(qū)溢出的安全功能,但實(shí)際上它是一種調(diào)試功能,開(kāi)發(fā)人員都知道知道這一點(diǎn),但是安全“專(zhuān)家”往往不知道,而做出這些內(nèi)核變化的往往是不懂這一點(diǎn)的安全人員,他們沒(méi)有意識(shí)到內(nèi)核的變化會(huì)在現(xiàn)有的代碼產(chǎn)生大量的bug,而且殺死錯(cuò)誤代碼也是極其不恰當(dāng)?shù)男袨椤?/p>

由此可見(jiàn),雖然Linus的語(yǔ)氣有點(diǎn)不友善,但是他的說(shuō)法是合理的,他是一個(gè)講道理的人,他并沒(méi)有試圖阻止對(duì)內(nèi)核的改變,也并沒(méi)有阻止在安全上的提升,他只是想告訴人們,對(duì)內(nèi)核進(jìn)行大的改動(dòng)需要用傳統(tǒng)的方式,而不是采取一刀切的方法,與功能和bug相比,安全的地位并沒(méi)有比他們高。

參考鏈接

http://lkml.iu.edu/hypermail/linux/kernel/1711.2/01701.html

http://blog.erratasec.com/2017/11/why-linus-is-right-as-usual.html#.WhPPN7T1XOS     

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)