關(guān)鍵詞:可信計(jì)算,主動(dòng)防御,運(yùn)行時(shí)防護(hù),入侵檢測(cè),應(yīng)用程序白名單
背景
有人說Linux比Windowns安全,發(fā)展至今,這個(gè)論斷是錯(cuò)誤的。Win經(jīng)過多年的安全反復(fù)折磨,Win11自身的安全特性加上自帶的各種安全工具已經(jīng)可以保證在個(gè)人桌面上足夠安全。Linux本身存在各種安全機(jī)制和安全工具,但由于以下各種原因,其安全現(xiàn)狀很不理想。
Linux使用場(chǎng)景的多樣化。有云環(huán)境、IOT環(huán)境、工業(yè)互聯(lián)網(wǎng)環(huán)境等等。每種場(chǎng)景下,其安全威脅和要求相差很大,很難有統(tǒng)一的"安全銀彈"。
在每種使用場(chǎng)景下,都會(huì)有對(duì)內(nèi)核、系統(tǒng)組件的各種改動(dòng)。且不管自己引入代碼的安全威脅,很多人為了方便把為數(shù)不多的安全功能直接關(guān)閉、禁用。
缺乏專業(yè)的安全人員。很多中小公司都是運(yùn)維人員兼職安全工作,安全問題頻發(fā)。
專業(yè)知識(shí)的匱乏、沒有針對(duì)自己場(chǎng)景的安全規(guī)劃。不管什么安全問題,使用百度一搜,也不理解是否適合自己的場(chǎng)景,更分不清哪些是pr文章、哪些是自己可以利用的。舉個(gè)例子:零信任比較火,大小公司都上零信任。
當(dāng)前情況下,“藍(lán)軍”知識(shí)、人才還是比正向安全建設(shè)的多。加上圈子文化,宣傳的單一化,形成漏洞、滲透、逆向等于安全的錯(cuò)誤印象。
HIDS的缺點(diǎn)
在種種亂象之下,也形成了一些安全共識(shí):賬戶及權(quán)限管理、修復(fù)漏洞、安全基線、最小攻擊面、入侵檢測(cè)、安全掃描、代碼安全、數(shù)據(jù)(傳輸)加解密等等。其中主機(jī)入侵檢測(cè)HIDS是重要的運(yùn)行時(shí)安全檢測(cè)工具,但是開發(fā)和運(yùn)營(yíng)一套HIDS需要不菲的成本,由于場(chǎng)景的多樣化,使用HIDS不一定適合自己的實(shí)際場(chǎng)景。
HIDS是事后、事中檢測(cè)和防御工具,屬被動(dòng)安全工具。
盡管有開源的HIDS工具,但不一定適合自己的場(chǎng)景,多數(shù)場(chǎng)景下都需要定制化開發(fā),涉及到不少的開發(fā)量。
部署也需要一定的機(jī)器資源、網(wǎng)絡(luò)資源。
部署后也要有相應(yīng)的人員運(yùn)營(yíng)。數(shù)據(jù)分析、誤報(bào)、漏報(bào)、應(yīng)急響應(yīng)都會(huì)讓運(yùn)營(yíng)人員累的夠嗆,還沒有成就感。
由于系統(tǒng)版本和開發(fā)人員的技能差異,HIDS實(shí)現(xiàn)上有不同的缺陷,如數(shù)據(jù)收集不全、資源使用過多,有的實(shí)現(xiàn)還比較容易繞過。
應(yīng)用程序白名單
以上種種缺點(diǎn),HIDS只適合于一定規(guī)模的公司。小公司不可能像大公司那樣有清晰的劃分、專業(yè)的團(tuán)隊(duì),就需要有比較容易使用的安全工具解決大部分安全問題。而且對(duì)于IOT設(shè)備,由于不能集中管控,安全更加復(fù)雜。需要從另一個(gè)角度思考安全防護(hù),驗(yàn)證執(zhí)行代碼的簽名---應(yīng)用程序白名單(NIST sp800-167)。應(yīng)用程序白名單(本文中應(yīng)用程序指可執(zhí)行/so ELF文件、腳本、解釋性程序、webshell等):
不在白名單中的代碼不允許執(zhí)行。
很多惡意目的都是以可執(zhí)行程序、so庫(kù)、腳本程序、webshell等為載體完成。
也可阻止以執(zhí)行代碼為載體的漏洞利用。
應(yīng)用程序白名單與 HIDS的比較
HIDS的檢測(cè)規(guī)則是 "黑名單"規(guī)則, 應(yīng)用程序白名單是"白名單"規(guī)則。
HIDS是檢測(cè),應(yīng)用程序白名單是防御。
HIDS是收集數(shù)據(jù)---分析數(shù)據(jù)---告警。應(yīng)用程序白名單是立即阻止破壞。
不在白名單中的惡意程序,即使已經(jīng)感染機(jī)器,也不能運(yùn)行造成破壞。
應(yīng)用程序白名單也是解決當(dāng)前威脅最嚴(yán)重---勒索軟件的根本解決方案。
對(duì)各種惡意軟件的變種、未知惡意軟件、間諜軟件、rootkit等,一(軟)件防御。
強(qiáng)制訪問控制MC介紹
MC是內(nèi)核中實(shí)現(xiàn)應(yīng)用程序白名單的強(qiáng)制訪問控制,屬可信計(jì)算的一部分,是實(shí)現(xiàn)主動(dòng)防御的主體功能。
對(duì)一個(gè)Linux系統(tǒng)來說, 即使有漏洞,如果不運(yùn)行,不與外界交互,也是安全的?;€完整的系統(tǒng),隨著與內(nèi)外部的交互,就引入了各種安全問題。保證系統(tǒng)運(yùn)行過程中的完整性,是保證安全的基礎(chǔ)。保證系統(tǒng)中執(zhí)行代碼的完整性,是系統(tǒng)完整性的重要組成部分。MC驗(yàn)證 elf可執(zhí)行程序、so庫(kù)、腳本、解釋性程序的簽名,也就是說任何在應(yīng)用層運(yùn)行的代碼都保證來源可信。
盡管Linux系統(tǒng)中有selinux、apparmor、smack等,但配置比較復(fù)雜,掌握使用比較困難,在很多場(chǎng)景下都是關(guān)閉的。而且都沒有運(yùn)行時(shí)驗(yàn)證執(zhí)行代碼。
MC設(shè)計(jì)和實(shí)現(xiàn)遵循以下原則:
簡(jiǎn)單。容易理解,實(shí)現(xiàn)簡(jiǎn)單、使用簡(jiǎn)單。在/proc文件系統(tǒng)中引入接口,規(guī)則配置類似iptable規(guī)則。這樣就降低了運(yùn)營(yíng)人員的學(xué)習(xí)和使用難度。避免了selinux規(guī)則配置的復(fù)雜性。
高性能。不能消耗太多的資源, 而且資源消耗可視化:在/proc/kernel/mc下有MC系統(tǒng)消耗的cpu時(shí)間。測(cè)試來看,正常使用狀態(tài)下,cpu消耗幾乎忽略不計(jì)。
total_cost是MC系統(tǒng)花費(fèi)的總時(shí)間,以jiffies為單位,換算成秒大約10.3秒, ?占總時(shí)間的? 1.7%。
不求功能全面。通過規(guī)劃、定制規(guī)則,滿足多數(shù)場(chǎng)景即可?,F(xiàn)階段主要面向IOT設(shè)備、自己可以安裝內(nèi)核的服務(wù)器、容器宿主機(jī)環(huán)境。
應(yīng)用程序白名單既可以定義成應(yīng)用程序的絕對(duì)路徑,也可以是應(yīng)用程序的標(biāo)記以適應(yīng)容器云場(chǎng)景。當(dāng)前標(biāo)記是應(yīng)用程序的sha256sum值。
MC系統(tǒng)組成
打上補(bǔ)丁的內(nèi)核。
目錄/proc/sys/kernel/mc/下的接口。通過這些接口可以進(jìn)行配置規(guī)則、查看策略,查看性能統(tǒng)計(jì)信息等等。
一些應(yīng)用層工具,主要包含:一些簽名的工具、 接收MC系統(tǒng)內(nèi)核日志并進(jìn)行動(dòng)作的精靈進(jìn)程。
解釋類程序的配置規(guī)則格式。編譯性程序不需要配置,強(qiáng)制驗(yàn)證簽名
配置規(guī)則是向 /proc/sys/kernel/mc/set_interp_rule寫入規(guī)則.?
規(guī)則格式如下:
ADD/DEL interp MAGIC/MIME/EPATH/*? [offset magic_word]/[mime_type VERIFY|SKIP]/[epath]...
動(dòng)作? 解釋器路徑? 配置是[魔數(shù)/MIME/忽略路徑]的關(guān)鍵字 ? 相應(yīng)配置的具體內(nèi)容
ADD/DEL interp MAGIC [[offset magic_word] [offset magic_word] ... ] ? ?//給解釋器配置解釋文件的魔數(shù)
ADD/DEL interp MIME ?[mime_type VERIFY|SKIP] ? ? ? ? ? ? ? ? ? ? ? ? ? //給解釋器配置解釋文件的MIME類型
ADD/DEL interp EPATH [epath] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //給解釋器配置忽略的文件或者路徑?
ADD/DEL interp DEFAULT [ACCEPT|REJECT] ? ? ? ? //給解釋器配置默認(rèn)策略
ADD/DEL interp * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //強(qiáng)制驗(yàn)證解釋器解釋、打開的文件
上面配置命令里大寫的是關(guān)鍵字,關(guān)鍵字不區(qū)分大小寫,但一般大寫以示區(qū)別。
MC相關(guān)接口和工具
/proc/sys/kernel/mc 目錄、 /etc/mc配置文件目錄、 /usr/local/bin/mc-*工具程序、日志文件。
每部分的具體功能和使用請(qǐng)參考 https://github.com/z789/mc-rpm。
MC的使用要求
要求使用者充分了解自己的系統(tǒng),充分了解系統(tǒng)上運(yùn)行的軟件。哪些可以加入白名單,哪些不能,哪些是信任的軟件,哪些是不信任的軟件。
在充分了解自己場(chǎng)景的基礎(chǔ)上,能設(shè)計(jì)適合自己場(chǎng)景的規(guī)則,系統(tǒng)更安全且消耗更少的資源。
優(yōu)先配置MAGIC規(guī)則,其次是MIME規(guī)則,最后是忽略路徑EPATH規(guī)則。?
EPATH盡量少使用,如果使用,盡量精確到文件。如果能設(shè)計(jì)適合自己的MIME系統(tǒng),完全可以不用EPATH。
最后
網(wǎng)絡(luò)安全已經(jīng)是國(guó)家安全的重要組成部分,每一個(gè)公民都應(yīng)盡自己的義務(wù)維護(hù)國(guó)家安全??尚庞?jì)算作為安全基礎(chǔ)理論,包含豐富的內(nèi)容。而應(yīng)用程序白名單是不依賴任何硬件特性,比較容易理解和使用,業(yè)界急需,且能解決大部分安全問題的機(jī)制。隨著IT的發(fā)展,安全也會(huì)出現(xiàn)新的問題,愿與有志中國(guó)網(wǎng)絡(luò)安全建設(shè)的人員共同討論、進(jìn)步。
審核編輯:劉清
評(píng)論