亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于系統(tǒng)調(diào)用替換的Linux系統(tǒng)安全性設(shè)計與分析

        2011-06-12 08:55:06邢柳
        關(guān)鍵詞:用戶系統(tǒng)

        邢柳

        北京航天長征科技信息技術(shù)研究所 北京 100076

        0 前言

        Linux的系統(tǒng)調(diào)用的函數(shù)指針存放在系統(tǒng)調(diào)用符號表(sys_call_table)中。通過一些特殊的手段,我們可以更改其中系統(tǒng)地址的指針將系統(tǒng)調(diào)用引導(dǎo)到自己的程序代碼中,從而實現(xiàn)特定功能。使用LKM替換系統(tǒng)調(diào)用,我們可以在不重新編譯內(nèi)核的情況下,為Linux系統(tǒng)增加或完成一些特殊形式的功能。

        1 監(jiān)控特權(quán)命令chattr的必要性

        文件系統(tǒng)的屬性對于提高文件系統(tǒng)的安全性和保障文件系統(tǒng)的完整性(尤其對于系統(tǒng)日志文件)有很大的作用。chattr正是設(shè)置文件系統(tǒng)屬性的用戶接口命令。注意,該命令的使用必須是root用戶,其他用戶即使是文件的所有者對該文件使用chattr命令也會顯示“不允許的操作”的錯誤提示。系統(tǒng)管理員把系統(tǒng)的重要文件添加上隱藏屬性,以防止系統(tǒng)重要文件被刪除或篡改。比如使用了命令:

        chattr + a message.txt

        對message.txt文件設(shè)置了append屬性后,系統(tǒng)只允許在這個文件末尾追加數(shù)據(jù),不允許任何進(jìn)程覆蓋、截斷或者刪除這個文件。實驗結(jié)果顯示,message.txt只能被添加,而不準(zhǔn)修改。

        在Linux系統(tǒng)中,如果一個用戶以root的權(quán)限登錄,文件系統(tǒng)的權(quán)限控制將無法對root用戶和以root權(quán)限運行的進(jìn)程進(jìn)行任何的限制。這樣對于Linux操作系統(tǒng),如果攻擊者通過遠(yuǎn)程或者本地攻擊獲得root權(quán)限將可能對系統(tǒng)造成嚴(yán)重的破壞。而ext2文件系統(tǒng)可以作為最后道防線,最大限度地減小系統(tǒng)被破壞的程度,并保存攻擊者的行蹤。ext2屬性是由 sys_open()和 sys_truncate()等系統(tǒng)調(diào)用檢查和賦予的,不受用戶識別號和其他因素的影響,在任何情況下,對具有不可修改(immutable)屬性的文件的進(jìn)行任何修改都會失敗,不管是否是root用戶進(jìn)行的修改。

        如果root用戶去掉了文件的隱藏屬性,就可以對該文件進(jìn)行任意的刪除、修改等操作。本文對系統(tǒng)進(jìn)行的保護(hù)措施是:先對系統(tǒng)重要文件設(shè)置隱減屬性,然后加載本文提出的安全保護(hù)模塊。目的是使root用戶也不能更改文件的隱藏屬性,即不能篡改要保護(hù)的文件。從而保證系統(tǒng)重要文件不被破壞和刪除。

        2 文件系統(tǒng)的隱藏屬性

        眾所周知,Linux內(nèi)核中有大量安全特征,其中有很多特征有著廣泛的應(yīng)用,但是絕大多數(shù)的系統(tǒng)管理員(包括一些資深系統(tǒng)管理員)都忽略了 ext2文件系統(tǒng)的隱藏屬性(attribute)。Linux的這種安全特征甚至遠(yuǎn)沒有Lids和Tripwire等外部安全工具受關(guān)注,但是使用這個特征可以很好地保護(hù)系統(tǒng)的安全。從Linux的1.1系列內(nèi)核開始,ext2文件系統(tǒng)就開始支持一些針對文件和目錄的額外標(biāo)記或者叫做屬性(attribute)。ext2文件系統(tǒng)支持表1列出的屬性設(shè)置。

        在這些屬性中,最為重要的是a(Append Only)屬性和不可修改(immutable)屬性,它們對于提高文件系統(tǒng)的安全性和保障文件系統(tǒng)的完整性(尤其對于系統(tǒng)日志文件)有很大的作用。另外,由于ext3文件系統(tǒng)是以ext2文件系統(tǒng)為基礎(chǔ)的,因此所有ext2文件系統(tǒng)支持的屬性,ext3文件系統(tǒng)也都支持。

        3 替換系統(tǒng)調(diào)用

        替換系統(tǒng)調(diào)用就是我們自己構(gòu)造一個系統(tǒng)調(diào)用,想辦法使 sys_call_table相應(yīng)的系統(tǒng)調(diào)用號指向我們自己構(gòu)造的函數(shù)。在原來的2.4內(nèi)核里,可以將sys_call_table直接導(dǎo)出,這樣我們就很容易拿到sys_call_table的控制權(quán)來實現(xiàn)系統(tǒng)調(diào)用的替換,但是從2.6的版本以后,考慮到安全問題不允許將sys_call_table再導(dǎo)出,這樣就加大了取得syscall_table控制權(quán)的難度。下面討論獲取sys_call_table地址的方法。

        3.1 通過System.map和vmLinux取得sys_call_table地址

        在內(nèi)核代碼中存在許多符號(symbol),特別是大量的全局符號,內(nèi)核通過它的地址,如c02f94a0這樣的符號來使用變量,但是直接使用地址來引用變量又給內(nèi)核編程帶來了很大困難,所以內(nèi)核提供了一種折中的方案,即將每個符號和其對應(yīng)的地址保存在一個文件中,這樣既可在編程開發(fā)時使用符號,又可以方便的得到其地址。System.map就是保存這種對應(yīng)關(guān)系的文件。它通常位于/boot/System.map,在其內(nèi)部記錄了內(nèi)核各個符號的內(nèi)存定位信息。通過文本文件搜索,我們可以獲取sys_call_table的地址,并作為LKM模塊加載時的傳遞參數(shù)。

        vmlinuz是可引導(dǎo)的、壓縮的內(nèi)核,其中“vm”代表“Virtual Memory”,通常位于/boot/vmlinuz,一般是在編譯內(nèi)核時通過“make zImage”創(chuàng)建或make bzImage創(chuàng)建,然后通過拷貝產(chǎn)生,在開頭部分內(nèi)嵌有g(shù)zip解壓縮代碼。由內(nèi)核文件中包含的一個微型的 gzip用于解壓縮內(nèi)核并引導(dǎo)它。vmlinux是未壓縮的內(nèi)核,vmlinuz是vmlinux的壓縮文件。通過shell命令:grep sys_call_table/boot/System.map或nm vmlinux grep sys_call_table就可以獲得sys_call_table的地址。

        3.2 通過中斷向量取得sys_call_table地址

        替換系統(tǒng)調(diào)用可以通過中斷向量取得 sys_call_table地址。基本思路是這樣的,因為系統(tǒng)調(diào)用都是通過 0x80中斷來進(jìn)行的,故可以通過查找 0x80中斷的處理程序來獲得sys_call_table的地址。其基本步驟是,首先獲取中斷描述符表的地址,再從中查找 0x80中斷的服務(wù)例程,再搜索該例程的內(nèi)存空間,以從其中獲取sys_call_table的地址。

        4 替換sys_ioctl()系統(tǒng)調(diào)用

        chattr命令最終執(zhí)行進(jìn)sys_ioctl()系統(tǒng)調(diào)用里,所以,我們替換調(diào)用原有的sys_ioctl()函數(shù)。在新的sys_ioctl()函數(shù)里面,根據(jù)傳進(jìn)的參數(shù)進(jìn)行判斷,如果用戶輸入的是要求改寫文件屬性的chattr命令,那么就可以通過dbgprint函數(shù)調(diào)用printk,輸出信息到環(huán)形buffer,該信息由klogd取出,交給syslogd存到系統(tǒng)日志文件/.var/log/messages里面,管理員查看該日志,會發(fā)現(xiàn)有人想要執(zhí)行該操作,根據(jù)該信息輸出的時間,能判斷出是否合法用戶在執(zhí)行這條命令。

        5 測試結(jié)果

        本文的測試環(huán)境是Fedora core 5。在模塊hijack.ko里面,通過替換sys_ioctl()系統(tǒng)調(diào)用,實現(xiàn)了監(jiān)控 root用戶修改文件隱藏屬性功能。測試步驟如表2所示。

        表2 監(jiān)控特權(quán)命令chattr測試步驟

        6 結(jié)束語

        本文使用LKM替換系統(tǒng)調(diào)用,實現(xiàn)監(jiān)控特權(quán)命令的執(zhí)行。以監(jiān)控chattr命令執(zhí)行為例。本文的安全實現(xiàn)前提是,系統(tǒng)管理員把系統(tǒng)的重要文件添加上隱藏屬性,以防止系統(tǒng)重要文件被刪除或篡改。設(shè)置完各種隱藏屬性后,安裝hijack模塊,防止不法用戶獲取到root口令,破壞系統(tǒng)重要文件。

        [1]李善平,季江民,尹康凱.邊干邊學(xué)—Linux內(nèi)核指導(dǎo)(第二版)[M].杭州:浙江大學(xué)出版社.2008.

        [2]倪繼利.Linux安全體系分析與編程[M].北京:電子工業(yè)出版社.2007.

        [3]趙亮.探索Linux內(nèi)核級安全增強(qiáng)系統(tǒng)[J].開放系統(tǒng)世界.2003.

        [4]王艷麗.淺談Linux用戶管理[J].電子科技.2010.

        [5]曹云鵬.關(guān)于 Linux操作系統(tǒng)用戶管理的研究[J].科技情報開發(fā)與經(jīng)濟(jì).2003.

        [6]陳向陽,方漢.Linux實用大全[M].北京:科學(xué)出版社.1998.

        猜你喜歡
        用戶系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        Camera360:拍出5億用戶
        婷婷丁香五月亚洲| 无码人妻一区二区三区兔费| 无码国产伦一区二区三区视频| 国产精在线| 国产人妖赵恩静在线视频| 中文字幕在线乱码亚洲| 99久久免费只有精品国产| 精品久久久久久久中文字幕| 亚洲AV无码一区二区一二区色戒 | 蜜臀精品一区二区三区| 国产精品视频亚洲二区| 亚洲国产日韩欧美一区二区三区 | 337p西西人体大胆瓣开下部| 久久精品这里只有精品| 丰满人妻无套内射视频| 亚洲av日韩av卡二| 久久综合九色综合欧美狠狠| 精品欧美久久99久久久另类专区| 亚洲免费福利视频网站| 精品久久久久久无码专区| 一本大道色婷婷在线| 西西人体大胆视频无码| 中国亚洲av第一精品| 国产精品兄妹在线观看麻豆| 男人天堂网在线视频| 国产肥熟女视频一区二区三区| 日韩精品视频久久一区二区 | 日本高清中文一区二区三区| 丁香婷婷在线成人播放视频| 樱桃视频影视在线观看免费| 色爱无码A V 综合区| 国产丝袜长腿在线看片网站| 中文字幕亚洲无线码一区女同| 国产人澡人澡澡澡人碰视频| 国产黄色精品高潮播放| 国产精品网站91九色| 国产成人一区二区三区影院动漫| 一本一本久久a久久精品综合| 国产精品一区二区久久蜜桃| 午夜男女很黄的视频| 一区二区日韩国产精品|