行尸走肉:過時Linux內(nèi)核的安全風(fēng)險
設(shè)備年年新,內(nèi)核永不換。早該被淘汰的Linux內(nèi)核版本,依然陰魂不散地扎根在各種各樣的設(shè)備中,驅(qū)動著這些設(shè)備如同《行尸走肉》的喪尸游蕩在世界各地。
Linux內(nèi)核安全漏洞是新聞頭條???。最近又有一個隱身十年之久的嚴(yán)重內(nèi)核漏洞被曝光了。但是,這到底代表著什么現(xiàn)實意義呢?為什么Linux內(nèi)核安全很重要?老舊內(nèi)核上的漏洞在眾多設(shè)備中茍延殘喘到底有什么影響?
Linux是操作系統(tǒng)的王者
毋庸置疑,Linux系操作系統(tǒng)的流行度無人能出其右:3/4的IoT設(shè)備運行Linux;2/3的在線服務(wù)器用Linux;70%的平板基于安卓系統(tǒng)(修改版Linux內(nèi)核)——Linux簡直無處不在!
這里面有部分是因為Linux是開源系統(tǒng),開發(fā)者不用付授權(quán)費,很樂于取用。Linux是電子芯片生產(chǎn)商常會附帶的軟件開發(fā)包(SDK)。這為開發(fā)者提供了工作參考平臺,以及硬件能力演示平臺。
有了參考開發(fā)平臺,制造商便只需操起該操作系統(tǒng)和SDK,編譯自有應(yīng)用程序,然后就可以準(zhǔn)備發(fā)售新產(chǎn)品了。然而,不幸的是,這些超方便的樣例和操作系統(tǒng)往往十分老舊,而且通常早就不被支持了。
但是,為什么老舊內(nèi)核問題大大呢?IoT烤箱或者車載娛樂系統(tǒng)不是***進(jìn)科技又何妨嘛?
2015年的一份研究論文揭示:家用和小型辦公室路由器中,有3/4都裝的是過時Linux內(nèi)核固件。其中大多數(shù)設(shè)備漏洞密布,很多漏洞都沒打補丁,也就是說,這些設(shè)備很容易被漏洞利用。
我們可以深入探討一下Linux內(nèi)核基礎(chǔ)。為什么它很重要?它到底是做什么的?當(dāng)內(nèi)核不再受支持,會發(fā)生什么?為什么老舊內(nèi)核會對設(shè)備和網(wǎng)絡(luò)安全造成嚴(yán)重影響?
內(nèi)核是操作系統(tǒng)的心臟
我們很容易就會忘了,全功能操作系統(tǒng)其實不僅僅局限在桌面電腦和服務(wù)器上;操作系統(tǒng)根本就是到處都是。車載衛(wèi)星導(dǎo)航系統(tǒng)能用,聯(lián)網(wǎng)冰箱會發(fā)來郵件,機上娛樂系統(tǒng)還能追美劇,這一切似乎都太自然了。
但是,即便家里的路由器只有個Web界面和幾盞小燈閃個不停,IoT兒童玩具就是唱唱搖籃曲和監(jiān)視孩子狀況,它們依然有很多共性,比如全都運行有操作系統(tǒng),而且很大可能是基于Linux的操作系統(tǒng)。幾乎所有這些設(shè)備都可以運行其他軟件,至于這“其他”軟件的功能,那可就包羅萬象沒有做不到只有想不到了。
您設(shè)備上操作系統(tǒng)的心臟當(dāng)然就是內(nèi)核了。它是掌管一切的看門人。硬件、用戶許可、權(quán)限、內(nèi)存、軟件和接口,統(tǒng)統(tǒng)由它掌控。內(nèi)核是操作系統(tǒng)的核心,其安全性至關(guān)重要。
內(nèi)核的作用就是讓事情易于操作。它讓組件間交互變得抽象,比如,軟件開發(fā)者不用知道硬件或RAM內(nèi)部運行機制就可以讀寫文件。
無論用哪種編程語言,保存文本文件的步驟基本一致:
- 以寫權(quán)限打開“芝士蛋糕配方.txt”
- 將配方寫入文件
- 關(guān)閉“芝士蛋糕配方.txt”
這背后的動作其實很復(fù)雜。如果你想的是CPU實際執(zhí)行的指令和所有設(shè)備間交互操作,那真是相當(dāng)、非常、極度復(fù)雜。有板磚厚的教科書專門詳解內(nèi)核驅(qū)動,也有一整學(xué)期的大學(xué)課程帶你淺嘗操作系統(tǒng)。
黑盒
就保存文件這個例子,寫文件的過程就涉及到管理內(nèi)存分配的內(nèi)核組件和驅(qū)動、文件系統(tǒng)結(jié)構(gòu)、硬盤驅(qū)動、字符驅(qū)動、塊驅(qū)動、芯片驅(qū)動等等等等。內(nèi)核管理著所有這些交互,這樣程序員才能方便地打開文件,并保存他們的芝士蛋糕配方……
如果這些內(nèi)核組件中有哪個出了問題,黑客就能以此為橋頭堡,侵入你的系統(tǒng)。舉個例子,如果文件系統(tǒng)驅(qū)動處理不了超長文件名,黑客就可利用該漏洞來突破系統(tǒng)。
只要內(nèi)核某部分出了漏洞,很多安全因素就會粉墨登場了。突然之間,你的整個操作系統(tǒng)和設(shè)備,都有可能因為這個似乎不起眼的問題,而淪為漏洞利用的獵物。
內(nèi)核的問題在于版本過多
Linux內(nèi)核可不止一個,內(nèi)核也不過是個軟件,與其他任何軟件應(yīng)用一樣,它也是有很多版本的。事實上,官方Linux內(nèi)核版本就不下幾十個,非官方版本更是不計其數(shù)。開源,就意味著任何設(shè)備工程師、程序員或業(yè)余黑客,都可以下載、鼓搗和打造自己的定制版內(nèi)核。
仔細(xì)觀察,你就發(fā)現(xiàn),Linux內(nèi)核編號也跟其他軟件一樣,是有規(guī)律的。有內(nèi)核版本、主版本、次版本和補丁版本。當(dāng)然,也可以加其他字母和數(shù)字,標(biāo)識是貝塔版還是預(yù)發(fā)行版,或者定制版內(nèi)核。
編譯Linux內(nèi)核的過程并不特別復(fù)雜。業(yè)余玩家在讀幾個小時指南,指天咒地一番,順帶干掉幾杯咖啡之后,也是能從源代碼編譯出一個Linux內(nèi)核的(軟件大神圣光普照)。
但很不幸,也正是這個容易的過程,為漏洞和配置問題洞開了大門。
既然也是軟件,漏洞是免不了的。常見的“長期支持”內(nèi)核版本是 2.6.32,路由器、IoT設(shè)備,甚至某些寶馬車載娛樂系統(tǒng)中都能找到。
對 2.6.32 版Linux內(nèi)核來個快速漏洞掃描,你會發(fā)現(xiàn)182個已知漏洞,其中數(shù)十個都相當(dāng)嚴(yán)重。
但是,首先,別緊張,這些漏洞并非總是應(yīng)用到所有內(nèi)核配置上的。比如說,如果你的設(shè)備不用藍(lán)牙,那么藍(lán)牙組件中的漏洞就不會影響到你(雖然有時候很難知道內(nèi)核組件交互情況)。
然后,你需要謹(jǐn)記的,是哪些內(nèi)核版本已經(jīng)打上了已知漏洞補丁。比如說,Linux網(wǎng)卡驅(qū)動組件里發(fā)現(xiàn)了L2TP相關(guān)漏洞。但只要我們查閱受影響內(nèi)核版本列表,就會看到 2.6.32.20 已經(jīng)是***一個脆弱版本了。這意味著,官方維護(hù)的Linux內(nèi)核 2.6.32.21 及其以后版本,均不受該漏洞影響。
修補漏洞成為老大難
受影響內(nèi)核自然要被更新。但是,內(nèi)核 2.6.32 身上發(fā)生了什么呢?官方宣布它已“壽終正寢”。也就是說,該版本內(nèi)核不再受支持,而***的官方更新,是在2016年年中。
想象一下,“壽終正寢”對于新發(fā)現(xiàn)的漏洞是個什么意思?Linux社區(qū)不可能***期更新老版內(nèi)核,于是,最有可能的情況,是新漏洞永遠(yuǎn)不會被修復(fù)。這種情況下,更新內(nèi)核的責(zé)任就落到了設(shè)備制造商身上。然而,針對特定漏洞手動修復(fù)內(nèi)核,比簡單下載***版受支持的內(nèi)核,要復(fù)雜得多。
有些廠商訂閱第三方服務(wù)提供內(nèi)核補丁,其他可能自己修復(fù)。
或者,如調(diào)查發(fā)現(xiàn)的,大多數(shù)設(shè)備就這么干脆不更新了,甚至上周剛買的全新路由器,都有可能運行的是漏成篩子的老舊內(nèi)核。
2015年來的研究發(fā)現(xiàn):制造商并未對所生產(chǎn)設(shè)備進(jìn)行合理的維護(hù)
對路由器內(nèi)核版本來個現(xiàn)場抽樣速查。時下4種型號的固件鏡像中,3個跑的是過時內(nèi)核,其中一個的內(nèi)核還是2009年發(fā)布的;***的內(nèi)核(新發(fā)布的設(shè)備上的)倒是挺新,但也是在下個月就不再支持了。
制造商和開發(fā)者是最終責(zé)任人
內(nèi)核版本真的很重要!內(nèi)核是操作系統(tǒng)的心臟,管理著包括硬件、內(nèi)存、應(yīng)用和用戶權(quán)限在內(nèi)的所有東西。如果內(nèi)核存在漏洞,設(shè)備就有可能被黑。內(nèi)核漏洞經(jīng)常被發(fā)現(xiàn),但只有當(dāng)前內(nèi)核版本才會被更新和修復(fù)。
落實到設(shè)備上,制造商和開發(fā)者,是提供維護(hù)良好的安全操作系統(tǒng)的最終責(zé)任人。最近,技術(shù)巨頭華碩才與美國聯(lián)邦貿(mào)易委員會就不安全路由器和云服務(wù)達(dá)成了和解。對很多制造商來說,該案件傳達(dá)的消息似乎尚未落地??赡苓€需更多法律訴訟,甚或立法,才能迫使制造商嚴(yán)肅對待設(shè)備安全問題。
隨著聯(lián)網(wǎng)設(shè)備的激增,技術(shù)產(chǎn)業(yè)的每個人,都應(yīng)將眼光投注在安全上。推出令人激動的新技術(shù),卻沿用已知漏洞肆虐的老舊內(nèi)核,太不應(yīng)該!
【本文是51CTO專欄作者“”李少鵬“”的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】