探索Linux的安全機(jī)制
經(jīng)過十年的發(fā)展,Linux的功能在不斷增強(qiáng),其安全機(jī)制亦在逐步完善。按照TCSEC評(píng)估標(biāo)準(zhǔn),目前Linux的安全級(jí)基本達(dá)到了C2,更高安全級(jí)別的Linux系統(tǒng)正在開發(fā)之中。
下面我們來看一看Linux已有的安全機(jī)制,這些機(jī)制有些已被標(biāo)準(zhǔn)的Linux所接納,有些只是提供了“補(bǔ)丁”程序。
PAM機(jī)制
PAM(Pluggable Authentication Modules)是一套共享庫,其目的是提供一個(gè)框架和一套編程接口,將認(rèn)證工作由程序員交給管理員,PAM允許管理員在多種認(rèn)證方法之間作出選擇,它能夠改變本地認(rèn)證方法而不需要重新編譯與認(rèn)證相關(guān)的應(yīng)用程序。
PAM的功能包括:
● 加密口令(包括DES以外的算法);
● 對(duì)用戶進(jìn)行資源限制,防止DOS攻擊;
● 允許隨意Shadow口令;
● 限制特定用戶在指定時(shí)間從指定地點(diǎn)登錄;
● 引入概念“client plug-in agents”,使PAM支持C/S應(yīng)用中的機(jī)器——機(jī)器認(rèn)證成為可能。
PAM為更有效的認(rèn)證方法的開發(fā)提供了便利,在此基礎(chǔ)上可以很容易地開發(fā)出替代常規(guī)的用戶名加口令的認(rèn)證方法,如智能卡、指紋識(shí)別等認(rèn)證方法。
入侵檢測(cè)系統(tǒng)
入侵檢測(cè)技術(shù)是一項(xiàng)相對(duì)比較新的技術(shù),很少有操作系統(tǒng)安裝了入侵檢測(cè)工具,事實(shí)上,標(biāo)準(zhǔn)的Linux發(fā)布版本也是最近才配備了這種工具。盡管入侵檢測(cè)系統(tǒng)的歷史很短,但發(fā)展卻很快,目前比較流行的入侵檢測(cè)系統(tǒng)有Snort、Portsentry、 Lids等。
利用Linux配備的工具和從因特網(wǎng)下載的工具,就可以使Linux具備高級(jí)的入侵檢測(cè)能力,這些能力包括:
● 記錄入侵企圖,當(dāng)攻擊發(fā)生時(shí)及時(shí)通知管理員;
● 在規(guī)定情況的攻擊發(fā)生時(shí),采取事先規(guī)定的措施;
● 發(fā)送一些錯(cuò)誤信息,比如偽裝成其他操作系統(tǒng),這樣攻擊者會(huì)認(rèn)為他們正在攻擊一個(gè)Windows NT 或Solaris系統(tǒng)。
加密文件系統(tǒng)
加密技術(shù)在現(xiàn)代計(jì)算機(jī)系統(tǒng)安全中扮演著越來越重要的角色。加密文件系統(tǒng)就是將加密服務(wù)引入文件系統(tǒng),從而提高計(jì)算機(jī)系統(tǒng)的安全性。有太多的理由需要加密文件系統(tǒng),比如防止硬盤被偷竊、防止未經(jīng)授權(quán)的訪問等。
目前Linux已有多種加密文件系統(tǒng),如CFS、TCFS、CRYPTFS等,較有代表性的是TCFS(Transparent Cryptographic File System)。它通過將加密服務(wù)和文件系統(tǒng)緊密集成,使用戶感覺不到文件的加密過程。TCFS不修改文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),備份與修復(fù)以及用戶訪問保密文件的語義也不變。
TCFS能夠做到讓保密文件對(duì)以下用戶不可讀:
● 合法擁有者以外的用戶;
● 用戶和遠(yuǎn)程文件系統(tǒng)通信線路上的偷聽者;
● 文件系統(tǒng)服務(wù)器的超級(jí)用戶。
而對(duì)于合法用戶,訪問保密文件與訪問普通文件幾乎沒有區(qū)別。
安全審計(jì)
即使系統(tǒng)管理員十分精明地采取了各種安全措施,但還會(huì)不幸地發(fā)現(xiàn)一些新漏洞。攻擊者在漏洞被修補(bǔ)之前會(huì)迅速抓住機(jī)會(huì)攻破盡可能多的機(jī)器。雖然Linux不能預(yù)測(cè)何時(shí)主機(jī)會(huì)受到攻擊,但是它可以記錄攻擊者的行蹤。
Linux還可以進(jìn)行檢測(cè)、記錄時(shí)間信息和網(wǎng)絡(luò)連接情況。這些信息將被重定向到日志中備查。
日志是Linux安全結(jié)構(gòu)中的一個(gè)重要內(nèi)容,它是提供攻擊發(fā)生的唯一真實(shí)證據(jù)。因?yàn)楝F(xiàn)在的攻擊方法多種多樣,所以Linux提供網(wǎng)絡(luò)、主機(jī)和用戶級(jí)的日志信息。例如,Linux可以記錄以下內(nèi)容:
● 記錄所有系統(tǒng)和內(nèi)核信息;
● 記錄每一次網(wǎng)絡(luò)連接和它們的源IP地址、長(zhǎng)度,有時(shí)還包括攻擊者的用戶名和使用的操作系統(tǒng);
● 記錄遠(yuǎn)程用戶申請(qǐng)?jiān)L問哪些文件;
● 記錄用戶可以控制哪些進(jìn)程;
● 記錄具體用戶使用的每條命令。
在調(diào)查網(wǎng)絡(luò)入侵者的時(shí)候,日志信息是不可缺少的,即使這種調(diào)查是在實(shí)際攻擊發(fā)生之后進(jìn)行。
強(qiáng)制訪問控制
強(qiáng)制訪問控制(MAC,Mandatory Access Control)是一種由系統(tǒng)管理員從全系統(tǒng)的角度定義和實(shí)施的訪問控制,它通過標(biāo)記系統(tǒng)中的主客體,強(qiáng)制性地限制信息的共享和流動(dòng),使不同的用戶只能訪問到與其有關(guān)的、指定范圍的信息,從根本上防止信息的失泄密和訪問混亂的現(xiàn)象。
傳統(tǒng)的MAC實(shí)現(xiàn)都是基于TCSEC中定義的MLS策略,但因MLS本身存在著這樣或那樣的缺點(diǎn)(不靈活、兼容性差、難于管理等),研究人員已經(jīng)提出了多種MAC策略,如DTE、RBAC等。由于Linux是一種自由操作系統(tǒng),目前在其上實(shí)現(xiàn)強(qiáng)制訪問控制的就有好幾家,其中比較典型的包括SElinux、RSBAC、MAC等,采用的策略也各不相同。
NSA推出的SELinux安全體系結(jié)構(gòu)稱為 Flask,在這一結(jié)構(gòu)中,安全性策略的邏輯和通用接口一起封裝在與操作系統(tǒng)獨(dú)立的組件中,這個(gè)單獨(dú)的組件稱為安全服務(wù)器。SELinux的安全服務(wù)器定義了一種混合的安全性策略,由類型實(shí)施 (TE)、基于角色的訪問控制 (RBAC) 和多級(jí)安全(MLS) 組成。通過替換安全服務(wù)器,可以支持不同的安全策略。
SELinux使用策略配置語言定義安全策略,然后通過checkpolicy 編譯成二進(jìn)制形式,存儲(chǔ)在文件 /ss_policy中,在內(nèi)核引導(dǎo)時(shí)讀到內(nèi)核空間。這意味著安全性策略在每次系統(tǒng)引導(dǎo)時(shí)都會(huì)有所不同。策略甚至可以通過使用 security_load_policy 接口在系統(tǒng)操作期間更改(只要將策略配置成允許這樣的更改)。
RSBAC的全稱是Rule Set Based Access Control(基于規(guī)則集的訪問控制),它是根據(jù)Abrams和LaPadula提出的Generalized Framework for Access Control(GFAC)模型開發(fā)的,可以基于多個(gè)模塊提供靈活的訪問控制。所有與安全相關(guān)的系統(tǒng)調(diào)用都擴(kuò)展了安全實(shí)施代碼,這些代碼調(diào)用中央決策部件,該部件隨后調(diào)用所有激活的決策模塊,形成一個(gè)綜合的決定,然后由系統(tǒng)調(diào)用擴(kuò)展來實(shí)施這個(gè)決定。RSBAC目前包含的模塊主要有MAC、RBAC、ACL等。
MAC是英國的Malcolm Beattie針對(duì)Linux 2.2編寫的一個(gè)非常初級(jí)的MAC訪問控制,它將一個(gè)運(yùn)行的Linux系統(tǒng)分隔成多個(gè)互不可見的(或者互相限制的)子系統(tǒng),這些子系統(tǒng)可以作為單一的系統(tǒng)來管理。MAC是基于傳統(tǒng)的Biba完整性模型和BLP模型實(shí)現(xiàn)的,但作者目前似乎沒有延續(xù)他的工作。
防火墻
防火墻是在被保護(hù)網(wǎng)絡(luò)和因特網(wǎng)之間,或者在其他網(wǎng)絡(luò)之間限制訪問的一種部件或一系列部件。
Linux防火墻系統(tǒng)提供了如下功能:
● 訪問控制,可以執(zhí)行基于地址(源和目標(biāo))、用戶和時(shí)間的訪問控制策略,從而可以杜絕非授權(quán)的訪問,同時(shí)保護(hù)內(nèi)部用戶的合法訪問不受影響。
● 審計(jì),對(duì)通過它的網(wǎng)絡(luò)訪問進(jìn)行記錄,建立完備的日志、審計(jì)和追蹤網(wǎng)絡(luò)訪問記錄,并可以根據(jù)需要產(chǎn)生報(bào)表。
● 抗攻擊,防火墻系統(tǒng)直接暴露在非信任網(wǎng)絡(luò)中,對(duì)外界來說,受到防火墻保護(hù)的內(nèi)部網(wǎng)絡(luò)如同一個(gè)點(diǎn),所有的攻擊都是直接針對(duì)它的,該點(diǎn)稱為堡壘機(jī),因此要求堡壘機(jī)具有高度的安全性和抵御各種攻擊的能力。
● 其他附屬功能,如與審計(jì)相關(guān)的報(bào)警和入侵檢測(cè),與訪問控制相關(guān)的身份驗(yàn)證、加密和認(rèn)證,甚至VPN等。