【正文】
/Linux . X zcat/path/to/patch . X LSM. Patch | gz p1 Then users can connect to have realizing safety module site, download the needed security module, will security module to Linux kernel loaded, so that users need security strategy can effect, thus improving the security of the system. Specific safety module installation method here will skip, each security module will provide detailed installation instructions files, users can refer to these documents, such as SELinux security module installation instructions files at: HTTP: / / , and as the security module installation instructions files at: HTTP: / / If users have Linux kernel and safety related background knowledge and development experience, according to their own needs to write safety module security policy. At HTTP: / / can immunix org/j j LSM lsm_bk. HTML tracking check Linux security module (LSM) source code and existing security module of source code, reference its realization methods writing their own security module. So that to satisfy his safety requirements in the meanwhile, can also for Linux security module (LSM) development make some contribution, make its early is Linux kernel accepted as Linux kernel security mechanism standard, make more users to benefit from. 7. The concrete use instructions: step by step Linux security module (LSM) cause is: on the one hand Linux kernel existing security mechanism is not enough。 On the other hand the existing security enhancements system and hard to use did and. Linux security module (LSM) good solve this problem: on the one hand, to the kernel patch is small and source code changes affect small, brought about by the load is not large also。 On the other hand to existing security enhancements system provides better interface support, and has many good security 濱州學(xué)院畢業(yè)設(shè)計(jì)(專業(yè)外文翻譯) 12 module can use. Linux security module (LSM) is still as a Linux kernel patch form, but it also provides provide Linux stable version of the series and Linux development version of the series, and hopefully into Linux stable version. We look forward to that day: Linux security module (LSM) is Linux kernel accepted as Linux kernel security mechanism standard, in every Linux release in which provide more and more users. Linux 安全模塊( LSM) Linux 安全模塊( LSM)是 Linux 內(nèi)核的一個(gè)輕 量級(jí)通用訪問控制框架。本文介紹 Linux 安全模塊( LSM)的相關(guān)背景,設(shè)計(jì)思想,實(shí)現(xiàn)方法;并說明如何使用 Linux安全模塊( LSM)來增強(qiáng) Linux 系統(tǒng)的安全性:一方面是供內(nèi)核開發(fā)人員和安全研究人員使用的接口,另一方面是供普通用戶使用的模塊,以及具體的使用方法。如果讀者具有 Linux 內(nèi)核和安全的相關(guān)背景知識(shí),可以有助于對(duì)本文的理解;如果不具有,可以先閱讀本文最后參考資料中列出的 IBM dW 上的三篇文章。 :為什么和是什么 近年來 Linux 系統(tǒng)由于其出色的性能和穩(wěn)定性,開放源代碼特性帶來的靈活 性和可擴(kuò)展性,以及較低廉的成本,而受到計(jì)算機(jī)工業(yè)界的廣泛關(guān)注和應(yīng)用。但在安全性方面, Linux 內(nèi)核只提供了經(jīng)典的 UNIX 自主訪問控制( root 用戶,用戶 ID,模式位安全機(jī)制),以及部分的支持了 標(biāo)準(zhǔn)草案中的 capabilities 安全機(jī)制,這對(duì)于 Linux 系統(tǒng)的安全性是不足夠的,影響了 Linux 系統(tǒng)的進(jìn)一步發(fā)展和更廣泛的應(yīng)用。 有很多安全訪問控制模型和框架已經(jīng)被研究和開發(fā)出來,用以增強(qiáng) Linux 系統(tǒng)的安全性,比較知名的有安全增強(qiáng) Linux( SELinux),域和類型增強(qiáng)( DTE),以及Linux 入侵檢測系統(tǒng)( LIDS)等等。但是由于沒有一個(gè)系統(tǒng)能夠獲得統(tǒng)治性的地位而進(jìn)入 Linux 內(nèi)核成為標(biāo)準(zhǔn);并且這些系統(tǒng)都大多以各種不同的內(nèi)核補(bǔ)丁的形式提供,使用這些系統(tǒng)需要有編譯和定制內(nèi)核的能力,對(duì)于沒有內(nèi)核開發(fā)經(jīng)驗(yàn)的普通用戶,獲得并使用這些系統(tǒng)是有難度的。在 2020 年的 Linux 內(nèi)核峰會(huì)上,美國國家安全局( NSA)介紹了他們關(guān)于安全增強(qiáng) Linux( SELinux)的工作,這是一個(gè)靈活的訪問控制體系 Flask 在 Linux 中的實(shí)現(xiàn),當(dāng)時(shí) Linux 內(nèi)核的創(chuàng)始人 Linus Torvalds 同意 Linux 內(nèi)核確實(shí)需 要一個(gè)通用的安全訪問控制框架,但他指出最好是通過可加載內(nèi)核模塊的方法,這樣可以支持現(xiàn)存的各種不同的安全訪問控制系統(tǒng)。因此, Linux安全模塊( LSM)應(yīng)運(yùn)而生。 Linux 安全模塊( LSM)是 Linux 內(nèi)核的一個(gè)輕量級(jí)通用訪問控制框架。它使得各種不同的安全訪問控制模型能夠以 Linux 可加載內(nèi)核模塊的形式實(shí)現(xiàn)出來,用戶可以根據(jù)其需求選擇適合的安全模塊加載到 Linux 內(nèi)核中,從而大大提高了 Linux安全訪問控制機(jī)制的靈活性和易用性。目前已經(jīng)有很多著名的增強(qiáng)訪問控制系統(tǒng)移濱州學(xué)院畢業(yè)設(shè)計(jì)(專業(yè)外文翻譯) 14 植到 Linux 安全模塊( LSM)上實(shí)現(xiàn), 包括 capabilities,安全增強(qiáng) Linux( SELinux),域和類型增強(qiáng)( DTE),以及 Linux 入侵檢測系統(tǒng)( LIDS)等等。雖然目前 Linux 安全模塊( LSM)仍然是作為一個(gè) Linux 內(nèi)核補(bǔ)丁的形式提供,但是其同時(shí)提供 Linux 穩(wěn)定版本的系列和 Linux 開發(fā)版本的系列,并且很有希望進(jìn)入 Linux 穩(wěn)定版本,進(jìn)而實(shí)現(xiàn)其目標(biāo):被 Linux 內(nèi)核接受成為 Linux 內(nèi)核安全機(jī)制的標(biāo)準(zhǔn),在各個(gè) Linux 發(fā)行版中提供給用戶使用 。 2. 設(shè)計(jì)思想介紹:得讓兩方面都滿意 Linux 安全模塊( LSM)的設(shè)計(jì)必須盡量滿足兩方面人的要求:讓不需要它的人盡可能少的因此得到麻煩;同時(shí)讓需要它的人因此得到有用和高效的功能。 以 Linus Torvalds 為代表的內(nèi)核開發(fā)人員對(duì) Linux 安全模塊( LSM)提出了三點(diǎn)要求: 真正的通用,當(dāng)使用一個(gè)不同的安全模型的時(shí)候,只需要加載一個(gè)不同的內(nèi)核模塊 概念上簡單,對(duì) Linux 內(nèi)核影響最小,高效,并且能夠支持現(xiàn)存的 capabilities 邏輯,作為一個(gè)可選的安全模塊 另一方面,各種不同的 Linux 安全增強(qiáng)系統(tǒng)對(duì) Linux 安全模塊( LSM)提出的要求是:能夠允許他們以可加載內(nèi)核模塊的形式重新實(shí)現(xiàn)其安全功能,并且不會(huì)在安全性方面帶來明顯的損失,也不會(huì)帶來額外的系統(tǒng)開銷。 為了滿足這些設(shè)計(jì)目標(biāo), Linux 安全模塊( LSM)采用了通過在內(nèi)核源代碼中放置鉤子的方法,來仲裁對(duì)內(nèi)核內(nèi)部對(duì)象進(jìn)行的訪問,這些對(duì)象有:任務(wù), inode結(jié)點(diǎn),打開的文件等等。用戶進(jìn)程執(zhí)行系統(tǒng)調(diào)用,首先游歷 Linux 內(nèi)核原有的邏輯找到并分配資源,進(jìn)行錯(cuò)誤檢查,并經(jīng)過經(jīng)典的 UNIX 自主訪問控制,恰好就在 Linux內(nèi)核試圖對(duì)內(nèi)部對(duì)象進(jìn)行訪問之前,一個(gè) Linux 安全 模塊( LSM)的鉤子對(duì)安全模塊所必須提供的函數(shù)進(jìn)行一個(gè)調(diào)用,從而對(duì)安全模塊提出這樣的問題 是否允許訪問執(zhí)行? ,安全模塊根據(jù)其安全策略進(jìn)行決策,作出回答:允許,或者拒絕進(jìn)而返回一個(gè)錯(cuò)誤。 另一方面,為了滿足大多數(shù)現(xiàn)存 Linux 安全增強(qiáng)系統(tǒng)的需要, Linux 安全模塊( LSM)采取了簡化設(shè)計(jì)的決策。 Linux 安全模塊( LSM)現(xiàn)在主要支持大多數(shù)現(xiàn)存安全增強(qiáng)系統(tǒng)的核心功能:訪問控制;而對(duì)一些安全增強(qiáng)系統(tǒng)要求的其他安全功濱州學(xué)院畢業(yè)設(shè)計(jì)(專業(yè)外文翻譯) 15 能,比如安全審計(jì),只提供了的少量的支持。 Linux 安全模塊( LSM)現(xiàn)在主要支持 限制型 的訪 問控制決策:當(dāng) Linux 內(nèi)核給予訪問權(quán)限時(shí), Linux 安全模塊( LSM)可能會(huì)拒絕,而當(dāng) Linux 內(nèi)核拒絕訪問時(shí),就直接跳過 Linux 安全模塊( LSM);而對(duì)于相反的 允許型 的訪問控制決策只提供了少量的支持。對(duì)于模塊功能合成,Linux 安全模塊( LSM)允許模塊堆棧,但是把主要的工作留給了模塊自身:由第一個(gè)加載的模塊進(jìn)行模塊功能合成的最終決策。所有這些設(shè)計(jì)決策可能暫時(shí)影響了Linux 安全模塊( LSM)的功能和靈活性,但是大大降低了 Linux 安全模塊( LSM)實(shí)現(xiàn)的復(fù)雜性,減少了對(duì) Linux 內(nèi)核的修改和影響 ,使得其進(jìn)入 Linux 內(nèi)核成為安全機(jī)制標(biāo)準(zhǔn)的可能性大大提高;等成為標(biāo)準(zhǔn)后,可以改變決策,增加功能和靈活性 。 3. 實(shí)現(xiàn)方法介紹:對(duì) Linux 內(nèi)核的修改 Linux 安全模塊( LSM)目前作為一個(gè) Linux 內(nèi)核補(bǔ)丁的形式實(shí)現(xiàn)。其本身不提供任何具體的安全策略,而是提供了一個(gè)通用的基礎(chǔ)體系給安全模塊,由安全模塊來實(shí)現(xiàn)具體的安全策略。其主要在五個(gè)方面對(duì) Linux 內(nèi)核進(jìn)行了修改: 在特定的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中加入了安全域 在內(nèi)核源代碼中不同的關(guān)鍵點(diǎn)插入了對(duì)安全鉤子函數(shù)的調(diào)用 加入了一個(gè)通用的安全系統(tǒng)調(diào)用 提供了函數(shù)允許內(nèi)核 模塊注冊為安全模塊或者注銷 將 capabilities 邏輯的大部分移植為一個(gè)可選的安全模塊 下面對(duì)這五個(gè)方面的修改逐個(gè)做簡要的介紹。 安全域是一個(gè) void*類型的指針,它使得安全模塊把安全信息和內(nèi)核內(nèi)部對(duì)象聯(lián)系起來。下面列出被修改加入了安全域的內(nèi)核數(shù)據(jù)結(jié)構(gòu),以及各自所代表的內(nèi)核內(nèi)部對(duì)象: task_struct 結(jié)構(gòu):代表任務(wù)(進(jìn)程) linux_binprm 結(jié)構(gòu):代表程序 super_block 結(jié)構(gòu):代表文件系統(tǒng) inode 結(jié)構(gòu):代表管道,文件,或者 Socket 套接字 file 結(jié)構(gòu):代表打開的文件 sk_buff 結(jié)構(gòu):代表網(wǎng)絡(luò)緩沖區(qū)(包) _device 結(jié)構(gòu):代表網(wǎng)絡(luò)設(shè)備 濱州學(xué)院畢業(yè)設(shè)計(jì)(專業(yè)外文翻譯) 16 kern_ipc_perm 結(jié)構(gòu):代表 Semaphore 信號(hào),共享內(nèi)存段,或者消息隊(duì)列 msg_msg:代表單個(gè)的消息 另外, msg_msg 結(jié)構(gòu), msg_queue 結(jié)構(gòu), shmid_kernel 結(jié)構(gòu)被移到include/linux/ 和 include/linux/ 這兩個(gè)頭文件中,使得安全模塊可以使用這些定義。 Linux 安全模塊( LSM)提供了兩類對(duì)安全鉤子函數(shù)的調(diào)用:一類管理內(nèi)核對(duì)象的安全域,另一類仲裁對(duì)這些內(nèi)核 對(duì)象的訪問。對(duì)安全鉤子函數(shù)的調(diào)用通過鉤子來實(shí)現(xiàn),鉤子是全局表 security_ops 中的函數(shù)指針,這個(gè)全局表的類型是security_operations 結(jié)構(gòu),這個(gè)結(jié)構(gòu)