Linux上內(nèi)核實(shí)時(shí)修補(bǔ)簡介

現(xiàn)場修補(bǔ)正在慢慢流行螟凭,但不是出于您可能想到的原因虚青。
在本文中,我將解釋Linux內(nèi)核實(shí)時(shí)修補(bǔ)是什么螺男,它不是什么棒厘,有什么服務(wù),誰可以使用它以及為什么下隧。我將展示Livepatch(在Ubuntu上)奢人,Kpatch(在Red Hat上)以及另一個(gè)在兩者上運(yùn)行的KernelCare的基本安裝步驟。

什么是實(shí)時(shí)補(bǔ)断骸何乎?

實(shí)時(shí)修補(bǔ)是惡魔操作的無辜名稱:更新Linux內(nèi)核而不停止它。
實(shí)時(shí)修補(bǔ)是一種在不影響服務(wù)器停機(jī)的情況下將Linux內(nèi)核更新為最新的關(guān)鍵安全修補(bǔ)程序的方法土辩。在過去的十年中支救,這種誘人的想法在Linux越來越流行的滑坡中默默無聞。安全拷淘,而不是性能或可用性各墨,已經(jīng)成為內(nèi)核開發(fā)人員的當(dāng)務(wù)之急,因?yàn)樗麄冊噲D將Linux的優(yōu)勢從服務(wù)器轉(zhuǎn)移到桌面市場辕棚。系統(tǒng)管理員現(xiàn)在將實(shí)時(shí)修補(bǔ)視為其系統(tǒng)健康的網(wǎng)絡(luò)安全策略的重要組成部分欲主,而不僅僅是為自己提供便利邓厕。

當(dāng)研究人員發(fā)現(xiàn)Linux內(nèi)核中的錯(cuò)誤或其他問題時(shí),宣布它們之后的第一步是它們進(jìn)行分類扁瓢。最重要的內(nèi)核問題是漏洞详恼。這些是在沒有操作員的知情或同意的情況下,某人可能破壞引几,破壞或滲透Linux系統(tǒng)的方式的發(fā)現(xiàn)和描述昧互。其中許多涉及通過利用其程序邏輯中的錯(cuò)誤來破壞Linux內(nèi)核的行為。

漏洞的重要性與它影響的系統(tǒng)數(shù)量伟桅,復(fù)制的容易程度以及發(fā)生的情況有關(guān)敞掘。如果答案是'很多','簡單'和'任何'楣铁,那么內(nèi)核維護(hù)者就會(huì)瘋狂地尋找解決方案玖雁。當(dāng)它們這樣做時(shí),它意味著更新內(nèi)核盖腕。

但是赫冬,由于Linux內(nèi)核的原因,更新也意味著重啟溃列。對于個(gè)人和業(yè)余愛好者來說劲厌,這沒什么大不了的。但對于企業(yè)而言听隐,重啟需要規(guī)劃和協(xié)調(diào)补鼻,這需要時(shí)間和金錢。同時(shí)雅任,至少在理論上风范,他們的系統(tǒng)是脆弱的。

實(shí)時(shí)修補(bǔ)可縮短發(fā)布漏洞修復(fù)程序與在受影響系統(tǒng)上安裝之間的時(shí)間椿访∥谄螅縮小或消除這種差距可降低利用未修補(bǔ)漏洞的風(fēng)險(xiǎn)。

實(shí)時(shí)修補(bǔ)的優(yōu)點(diǎn)和缺點(diǎn)是什么成玫?

實(shí)時(shí)修補(bǔ)僅適用于嚴(yán)重的安全問題加酵。

當(dāng)開發(fā)人員將漏洞追蹤到孤立的內(nèi)核代碼片段時(shí),軟件補(bǔ)丁可以修復(fù)它們而不會(huì)影響內(nèi)核的其他部分哭当。但是猪腕,對于影響許多部分的問題,或影響數(shù)據(jù)結(jié)構(gòu)的部分钦勘,不能進(jìn)行實(shí)時(shí)修補(bǔ)陋葡。

實(shí)時(shí)修補(bǔ)不能完全消除重啟。

實(shí)施實(shí)時(shí)修補(bǔ)策略并不意味著您永遠(yuǎn)不會(huì)再次重啟彻采。它確實(shí)意味著您可以將其關(guān)閉腐缤,直到它更方便捌归,并且在此之前,您的系統(tǒng)可以安全地利用已修補(bǔ)的問題岭粤。

并非每個(gè)內(nèi)核都支持實(shí)時(shí)修補(bǔ)惜索。
所有實(shí)時(shí)修補(bǔ)方法都不同。一些使用核心內(nèi)核函數(shù)剃浇,而另一些使用開源和閉源方法的混合巾兆。沒有通用的多平臺(tái)解決方案(盡管KernelCare很接近)。

現(xiàn)場打補(bǔ)丁很容易; 制作補(bǔ)丁不是虎囚。

任何具有技術(shù)知識(shí)的人都可以為他們選擇的Linux平臺(tái)構(gòu)建和安裝實(shí)時(shí)修補(bǔ)軟件角塑。源代碼和信息是可用的,但它有多容易取決于您擁有哪個(gè)平臺(tái)淘讥。
但是圃伶,對于所有實(shí)時(shí)修補(bǔ)方法,修補(bǔ)程序的創(chuàng)建是一個(gè)巨大的技術(shù)障礙适揉。它需要詳細(xì)了解內(nèi)核源代碼留攒,其編程模型和約定。即使您可以創(chuàng)建補(bǔ)丁嫉嘀,在嘗試安裝補(bǔ)丁之前,您有責(zé)任對其進(jìn)行徹底測試魄揉。

實(shí)時(shí)修補(bǔ)不是免費(fèi)的剪侮。
成本一直是Linux非企業(yè)核心粉絲群采用的真正障礙。Oracle Ksplice洛退,Red Hat Kpatch瓣俯,SUSE Kgraft和KernelCare都要求提供不同金額的月度,年度或三年期訂閱兵怯。之所以提到這個(gè)原因:創(chuàng)建補(bǔ)丁并不容易彩匕。要了解所涉及的難度,請查看Kpatch補(bǔ)丁編寫指南媒区?您將了解為什么公司已成功提供實(shí)時(shí)補(bǔ)丁作為付費(fèi)服務(wù)驼仪。

哪些公司提供實(shí)時(shí)補(bǔ)丁袜漩?

Ksplice是第一個(gè)為Linux提供實(shí)時(shí)補(bǔ)丁的人绪爸。他們在2010年推出了商業(yè)服務(wù),支持一系列Linux風(fēng)格宙攻。當(dāng)甲骨文在2011年收購它們時(shí)奠货,除了甲骨文自己的Linux之外,其他所有產(chǎn)品都得到了支持座掘。這對紅帽和SUSE的其他大公牛來說是一面紅旗递惋。每個(gè)人都急于創(chuàng)建他們自己的實(shí)時(shí)補(bǔ)丁解決方案柔滔,他們分別在2014年以KpatchKgraft的形式獨(dú)立發(fā)布。不久之后兩者都成了商業(yè)服務(wù)萍虽。同樣在那一年廊遍,KernelCare進(jìn)入了戒指,填補(bǔ)了Ksplice留下的空間贩挣,并取消了對舊內(nèi)核和其他口味的支持喉前。

現(xiàn)場補(bǔ)丁多少錢?

截至2019年王财,五家公司提供現(xiàn)場打補(bǔ)丁的商業(yè)服務(wù)卵迂。價(jià)格根據(jù)地理區(qū)域而有所不同 - 顯示的是美國,并且按降序排列见咒。

對于本文的其余部分,我將只考慮三種低到中等成本選項(xiàng):Canonical,Livepatch,Red Hat Kpatch和KernelCare。

誰需要實(shí)時(shí)補(bǔ)斗枋睢?

根據(jù)訂閱成本越锈,擁有數(shù)百臺(tái)服務(wù)器的公司似乎是Oracle稀拐,Red Hat和SUSE的目標(biāo)。對于企業(yè)而言,實(shí)時(shí)修補(bǔ)的好處是毫無疑問的,因此將服務(wù)捆綁在支持合同中是完全合理的刚操。

對于個(gè)人而言济赎,實(shí)時(shí)修補(bǔ)仍然是一個(gè)非必要的好奇心,對家庭媒體服務(wù)器,宿舍游戲服務(wù)器,加密貨幣挖掘或任何重啟動(dòng)作的情況都很有用咒钟。他們開始的好方法是使用Ubuntu 18.04 LTS吹由。對于最多三臺(tái)機(jī)器,實(shí)時(shí)修補(bǔ)是一個(gè)痛苦且無成本的介紹朱嘴。

對于企業(yè)家倾鲫,中小企業(yè)和成長型公司來說,選擇的選擇較少。他們需要成本和覆蓋范圍的靈活性级乍,這種解決方案不能將其鎖定到特定平臺(tái)舌劳,并且可以隨著增長而擴(kuò)展。對他們來說玫荣,KernelCare非常適合甚淡。

如何安裝Linux內(nèi)核實(shí)時(shí)修補(bǔ)?

使用Canonical Livepatch服務(wù)實(shí)時(shí)修補(bǔ)Ubuntu內(nèi)核

Canonical Livepatch Service適用于14.04,16.04和18.04 LTS的服務(wù)器和桌面版本捅厂。最簡單的嘗試方法是在18.04 LTS桌面版上贯卦。當(dāng)您在干凈安裝后首次重新啟動(dòng)時(shí),Ubuntu對話窗口中的新功能的第二個(gè)屏幕為您提供了設(shè)置Livepatch的機(jī)會(huì)焙贷。如果您錯(cuò)過了撵割,請打開軟件更新程序并轉(zhuǎn)到設(shè)置的Updatestab,您可以從中登錄以激活它辙芍。

在安裝之前啡彬,您必須注冊密鑰。執(zhí)行此操作時(shí)故硅,頁面將顯示這些命令庶灿,以便通過終端進(jìn)行安裝。

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>

從現(xiàn)在開始吃衅,守護(hù)進(jìn)程將檢查關(guān)鍵內(nèi)核安全修補(bǔ)程序往踢,并默認(rèn)情況下每60分鐘自動(dòng)安裝一次。如果你想修補(bǔ)徘层,這里有一些使用canonical-livepatch命令行工具的例子峻呕。

檢查狀態(tài): canonical-livepatch status
顯示所有補(bǔ)丁信息: canonical-livepatch status --verbose
強(qiáng)制立即刷新: sudo canonical-livepatch refresh
更改檢查間隔(例如也搓,更改為90分鐘): sudo canonical-livepatch config check-interval=90

使用Kpatch實(shí)時(shí)修補(bǔ)RHEL 7內(nèi)核

Red Hat的Kpatch還沒有用戶友好的界面來進(jìn)行設(shè)置饼疙。通過一些努力变屁,它適用于Fedora和CentOS照皆,以及一些基于Debian的系統(tǒng),如Ubuntu和Gentoo(但在這些情況下碉哑,您必須編寫和測試自己的補(bǔ)肚甭佟)枉昏。

要在Red Hat Enterprise Linux 7上安裝kpatch:

sudo yum install kpatch

Kpatch沒有自動(dòng)化功能干花。而是使用標(biāo)準(zhǔn)命令行工具yum來檢查和安裝修補(bǔ)程序。包名稱提供關(guān)鍵安全修補(bǔ)程序kpatch-patch楞黄。如果您有支持訂閱池凄,您可以向Red Hat索取自定義補(bǔ)丁,您可以將其作為.rpm文件獲取鬼廓。兩者的安裝如下所示肿仑。

sudo yum install kpatch-patch # From Red Hat's repositories
sudo yum install kpatch-patch-<version>.el7.<your arch>.rpm # Downloaded custom patch

使用KernelCare實(shí)時(shí)修補(bǔ)Ubuntu和RHEL7 / CentOS 7 Linux內(nèi)核

KernelCare使用相同的兩行命令在Ubuntu 14.04,16.04和18.04 LTS以及Red Hat Enterprise Linux 7或CentOS 7上進(jìn)行安裝。

在開始之前,獲取30天免費(fèi)試用密鑰尤慰。

注冊頁面顯示了您的注冊密鑰以及安裝KernelCare所需的這兩個(gè)命令馏锡。

sudo wget -qq -O - https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash
sudo /usr/bin/kcarectl --register <your key>

如果一切正常,您將看到消息服務(wù)器已注冊伟端。從現(xiàn)在開始杯道,KernelCare守護(hù)程序每四個(gè)小時(shí)檢查一次關(guān)鍵的內(nèi)核安全補(bǔ)丁。如果有任何可用责蝠,它將安裝它們而無需重新啟動(dòng)党巾,無需進(jìn)一步干預(yù)。

就像canonical-livepatch霜医,kcarectl實(shí)用程序允許您在命令行上執(zhí)行操作齿拂。

  • 檢查狀態(tài): kcarectl --info
  • 顯示所有補(bǔ)丁信息: kcarectl --patch-info
  • 強(qiáng)制立即刷新: sudo kcarectl --auto-update
  • 取消注冊許可證: sudo kcarectl --unregister

結(jié)論

Linux的實(shí)時(shí)修補(bǔ)正處于轉(zhuǎn)折點(diǎn)。

雖然不是企業(yè)客戶的默認(rèn)選擇肴敛,但Canonical通過在Ubuntu 18.04 LTS上輕松使用Livepatch Service取得了很大進(jìn)展署海。我希望隨著用戶進(jìn)入專業(yè)領(lǐng)域,隨著他們熟悉它們医男,它的受歡迎程度將會(huì)提高砸狞。那些能夠在各種平臺(tái)上運(yùn)行的更具成本效益的實(shí)時(shí)修補(bǔ)解決方案的人將會(huì)發(fā)現(xiàn)自己傾向于使用KernelCare。

在任何情況下昨登,商業(yè)實(shí)時(shí)補(bǔ)丁提供的不僅僅是實(shí)時(shí)補(bǔ)丁的能力趾代,而是訪問補(bǔ)丁本身,安全托管丰辣,及時(shí)交付撒强,測試和驗(yàn)證,并保證在沒有任何有害影響的情況下工作笙什。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飘哨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子琐凭,更是在濱河造成了極大的恐慌芽隆,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件统屈,死亡現(xiàn)場離奇詭異胚吁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)愁憔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門腕扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吨掌,你說我怎么就攤上這事半抱∨。” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵窿侈,是天一觀的道長炼幔。 經(jīng)常有香客問我,道長史简,這世上最難降的妖魔是什么乃秀? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮乘瓤,結(jié)果婚禮上环形,老公的妹妹穿的比我還像新娘。我一直安慰自己衙傀,他們只是感情好抬吟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著统抬,像睡著了一般火本。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聪建,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天钙畔,我揣著相機(jī)與錄音,去河邊找鬼金麸。 笑死擎析,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挥下。 我是一名探鬼主播揍魂,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棚瘟!你這毒婦竟也來了现斋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤偎蘸,失蹤者是張志新(化名)和其女友劉穎庄蹋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迷雪,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡限书,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了章咧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔗包。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慧邮,靈堂內(nèi)的尸體忽然破棺而出调限,到底是詐尸還是另有隱情,我是刑警寧澤误澳,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布耻矮,位于F島的核電站,受9級特大地震影響忆谓,放射性物質(zhì)發(fā)生泄漏裆装。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一倡缠、第九天 我趴在偏房一處隱蔽的房頂上張望哨免。 院中可真熱鬧,春花似錦昙沦、人聲如沸琢唾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽采桃。三九已至,卻和暖如春丘损,著一層夾襖步出監(jiān)牢的瞬間普办,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工徘钥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衔蹲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓呈础,卻偏偏與公主長得像舆驶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子猪落,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容