国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

利用capability特征加強Linux系統安全
2006-08-29   巧巧讀書

1.簡介

UNIX是一種安全操作系統,它給普通用戶盡可能低的權限,而把全部的系統權限賦予一個單一的帳戶--root。root帳戶用來管理系統、安裝軟件、管理帳戶、運行某些服務、安裝/卸載文件系統、管理用戶、安裝軟件等。另外,普通用戶的很多操作也需要root權限,這通過setuid實現。

這種依賴單一帳戶執行特權操作的方式加大了系統的面臨風險,而需要root權限的程序可能只是為了一個單一的操作,例如:綁定到特權端口、打開一個只有root權限可以訪問的文件。某些程序可能有安全漏洞,而如果程序不是以root的權限運行,其存在的漏洞就不可能對系統造成什么威脅。

從2.1版開始,內核開發人員在Linux內核中加入了能力(capability)的概念。其目標是消除需要執行某些操作的程序對root帳戶的依賴。從2.2版本的內核開始,這些代基本可以使用了,雖然還存在一些問題,但是方向是正確的。

2.Linux內核能力詳解

傳統UNIX的信任狀模型非常簡單,就是“超級用戶對普通用戶”模型。在這種模型中,一個進程要么什么都能做,要么幾乎什么也不能做,這取決于進程的UID。如果一個進程需要執行綁定到私有端口、加載/卸載內核模塊以及管理文件系統等操作時,就需要完全的root權限。很顯然這樣做對系統安全存在很大的威脅。UNIX系統中的SUID問題就是由這種信任狀模型造成的。例如,一個普通用戶需要使用ping命令。這是一個SUID命令,會以root的權限運行。而實際上這個程序只是需要RAW套接字建立必要ICMP數據包,除此之外的其它root權限對這個程序都是沒有必要的。如果程序編寫不好,就可能被攻擊者利用,獲得系統的控制權。

使用能力(capability)可以減小這種風險。系統管理員為了系統的安全可以剝奪root用戶的能力,這樣即使root用戶也將無法進行某些操作。而這個過程又是不可逆的,也就是說如果一種能力被刪除,除非重新啟動系統,否則即使root用戶也無法重新添加被刪除的能力。

2.1.能力的概念

Linux內核中使用的能力(capability)概念非常容易被混淆。計算機科學中定義了很多種能力(capability)。能力就是一個進程能夠對某個對象進行的操作,它標志對象以及允許在這個對象上進行的操作。文件描述符就是一種能力,你使用open系統調用請求獲得讀或者寫的權限,如果open系統調用成功,系統的內核就會建立一個文件描述符。然后,如果收到讀或者寫的請求,內核就使用這個文件描述符作為一個數據結構的索引,檢索相關的操作是否允許。這是一種檢查權限的有效方式,在執行open系統調用是,內核一次性建立必要的數據結構,然后的讀寫等操作檢查只需要在數據結構中梭梭即可。對能力的操作包括:復制能力、進程間的遷移能力、修改一個能力以及撤消一個能力等。修改一個能力類似與把一個可以讀寫的文件描述符改為只讀。目前,各種系統對能力的應用程度并不相同。

  POSIX 1003.1e中也提出了一種能力定義,通常稱為POSIX能力(POSIX capabilities),Linux中的定義不大一樣。內核使用這些能力分割root的權限,因為傳統*NIX系統中root的權限過于強大了。

2.2.Linux是如何使用POSIX capabilities代替傳統的信任狀模型的

每個進程有三個和能力有關的位圖:inheritable(I)、permitted(P)和effective(E),對應進程描述符task_struct(include/linux/sched.h)里面的cap_effective, cap_inheritable, cap_permitted。每種能力由一位表示,1表示具有某種能力,0表示沒有。當一個進程要進行某個特權操作時,操作系統會檢查cap_effective的對應位是否有效,而不再是檢查進程的有效UID是否為0。例如,如果一個進程要設置系統的時鐘,Linux的內核就會檢查cap_effective的CAP_SYS_TIME位(第25位)是否有效,

cap_permitted表示進程能夠使用的能力。在cap_permitted中可以包含cap_effective中沒有的能力,這些能力是被進程自己臨時放棄的,也可以說cap_effective是cap_permitted的一個子集。進程放棄沒有必要的能力對于提高安全性大有助益。例如,ping只需要CAP_NET_RAW,如果它放棄除這個能力之外的其它能力,即使存在安全缺陷,也不會對系統造成太大的損害。cap_inheritable表示能夠被當前進程執行的程序繼承的能力。

3.Linux支持的能力

Linux實現了7個POSIX 1003.1e規定的能力,還有21個(截止到2.4.7-10版本的內核)Linux所特有的,這些能力在/usr/src/linux/include/linux/capability.h文件中定義。其細節如下:

能力名 數字 描述

CAP_CHOWN 0 允許改變文件的所有權

CAP_DAC_OVERRIDE 1 忽略對文件的所有DAC訪問限制

CAP_DAC_READ_SEARCH 2 忽略所有對讀、搜索操作的限制

CAP_FOWNER 3 如果文件屬于進程的UID,就取消對文件的限制

CAP_FSETID 4 允許設置setuid位

CAP_KILL 5 允許對不屬于自己的進程發送信號

CAP_SETGID 6 允許改變組ID

CAP_SETUID 7 允許改變用戶ID

CAP_SETPCAP 8 允許向其它進程轉移能力以及刪除其它進程的任意能力

CAP_LINUX_IMMUTABLE 9 允許修改文件的不可修改(IMMUTABLE)和只添加(APPEND-ONLY)屬性

CAP_NET_BIND_SERVICE 10 允許綁定到小于1024的端口

CAP_NET_BROADCAST 11 允許網絡廣播和多播訪問

CAP_NET_ADMIN 12 允許執行網絡管理任務:接口、防火墻和路由等,詳情請參考/usr/src/linux/include/linux/capability.h文件

CAP_NET_RAW 13 允許使用原始(raw)套接字

CAP_IPC_LOCK 14 允許鎖定共享內存片段

CAP_IPC_OWNER 15 忽略IPC所有權檢查

CAP_SYS_MODULE 16 插入和刪除內核模塊

CAP_SYS_RAWIO 17 允許對ioperm/iopl的訪問

CAP_SYS_CHROOT 18 允許使用chroot()系統調用

CAP_SYS_PTRACE 19 允許跟蹤任何進程

CAP_SYS_PACCT 20 允許配置進程記帳(process accounting)

CAP_SYS_ADMIN 21 允許執行系統管理任務:加載/卸載文件系統、設置磁盤配額、開/關交換設備和文件等。詳情請參考/usr/src/linux/include/linux/capability.h文件。

CAP_SYS_BOOT 22 允許重新啟動系統

CAP_SYS_NICE 23 允許提升優先級,設置其它進程的優先級

CAP_SYS_RESOURCE 24 忽略資源限制

CAP_SYS_TIME 25 允許改變系統時鐘

CAP_SYS_TTY_CONFIG 26 允許配置TTY設備

CAP_MKNOD 27 允許使用mknod()系統調用

CAP_LEASE 28 Allow taking of leases on files

4.能力邊界集

Linux2.2內核提供了對能力的基本支持。但是在引入了能力之后遇到了一些困難,雖然2.2版本的內核能夠理解能力,但是缺乏一個系統和用戶之間的接口。除此之外,還存在其它的一些問題。從2.2.11版本開始,這種情況發生了很大的改觀,在這個版本中引入了能力邊界集(capability bounding set)的概念,解決了和系統和用戶之間的接口問題。能力邊界集(capability bounding set)是系統中所有進程允許保留的能力。如果在能力邊界集中不存在某個能力,那么系統中的所有進程都沒有這個能力,即使以超級用戶權限執行的進程也一樣。

能力邊界集通過sysctl命令導出,用戶可以在/proc/sys/kernel/cap-bound中看到系統保留的能力。在默認情況下,能力邊界集所有的位都是打開的。

root用戶可以向能力邊界集中寫入新的值來修改系統保留的能力。但是要注意,root用戶能夠從能力邊界集中刪除能力,卻不能再恢復被刪除的能力,只有init進程能夠添加能力。通常,一個能力如果從能力邊界集中被刪除,只有系統重新啟動才能恢復。

刪除系統中多余的能力對提高系統的安全性是很有好處的。假設你有一臺重要的服務器,比較擔心可加載內核模塊的安全性。而你又不想完全禁止在系統中使用可加載內核模塊或者一些設備的驅動就是一些內核模塊。在這種情況下,最好使系統在啟動時加載所有的模塊,然后禁止加載/卸載任何內核模塊。在Linux系統中,加載/卸載內核模塊是由CAP_SYS_MODULE能力控制的。如果把CAP_SYS_MODULE從能力邊界集中刪除,系統將不再允許加載/卸載任何的內核模塊。

CAP_SYS_MODULE能力的值是16,因此我們使用下面的命令就可以把它從能力邊界集中刪除:

echo 0xFFFEFFFF >/proc/sys/kernel/cap-bound

5.lcap

雖然我們可以直接修改/proc/sys/kernel/cap-bound來刪除系統的某中能力,但是這樣畢竟非常的不方便。有一個程序lcap可以幫助我們更方便的從系統中刪除指定的能力。它可以從http://home.netcom.com/~spoon/lcap/下載。編譯之后就可以直接使用。如果不帶參數,lcap可以列出系統當前支持的各種能力:

  
[root@nixe0n lcap-0.0.6]# ./lcap
Current capabilities: 0xFFFFFEFF
0) *CAP_CHOWN          1) *CAP_DAC_OVERRIDE
2) *CAP_DAC_READ_SEARCH     3) *CAP_FOWNER
4) *CAP_FSETID         5) *CAP_KILL
6) *CAP_SETGID         7) *CAP_SETUID
8) CAP_SETPCAP         9) *CAP_LINUX_IMMUTABLE
10) *CAP_NET_BIND_SERVICE    11) *CAP_NET_BROADCAST
12) *CAP_NET_ADMIN       13) *CAP_NET_RAW
14) *CAP_IPC_LOCK        15) *CAP_IPC_OWNER
16) *CAP_SYS_MODULE       17) *CAP_SYS_RAWIO
18) *CAP_SYS_CHROOT       19) *CAP_SYS_PTRACE
20) *CAP_SYS_PACCT       21) *CAP_SYS_ADMIN
22) *CAP_SYS_BOOT        23) *CAP_SYS_NICE
24) *CAP_SYS_RESOURCE      25) *CAP_SYS_TIME

熱詞搜索:

上一篇:另類怪招 加強Windows操作系統安全性
下一篇:Linux操作系統防火墻下的應用策略路由

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
中文字幕精品一区| 日韩一区二区视频| 国产a久久麻豆| 精品在线观看免费| 国产麻豆欧美日韩一区| 美日韩一区二区| 韩国成人精品a∨在线观看| 久久97超碰色| 激情另类小说区图片区视频区| 国模套图日韩精品一区二区| 国产黄色精品视频| 成人99免费视频| 色综合久久久久久久久久久| 91网页版在线| 欧美日韩成人综合天天影院| 日韩一区二区三区av| 欧美大片在线观看| 国产免费观看久久| 亚洲一区二区在线免费看| 日韩国产欧美一区二区三区| 精品一区二区三区影院在线午夜| 精品亚洲国产成人av制服丝袜| 国产精品99久久久久久有的能看| 成人黄色a**站在线观看| 91视频一区二区| 69堂亚洲精品首页| 国产日韩精品一区二区三区| 一区二区三区在线观看动漫| 老汉av免费一区二区三区| 不卡一区二区三区四区| 欧美浪妇xxxx高跟鞋交| 337p日本欧洲亚洲大胆精品| 国产日韩欧美精品电影三级在线| 亚洲乱码一区二区三区在线观看| 午夜婷婷国产麻豆精品| 国产麻豆成人精品| 欧美伊人久久大香线蕉综合69| 欧美成人乱码一区二区三区| 亚洲同性gay激情无套| 青青草精品视频| 一本大道久久a久久综合| 欧美第一区第二区| 亚洲国产一区在线观看| 成人一级片在线观看| 91精品国产91久久久久久一区二区| 国产日韩欧美一区二区三区综合| 亚洲在线一区二区三区| 成人99免费视频| 精品国一区二区三区| 亚洲夂夂婷婷色拍ww47| av电影天堂一区二区在线| 欧美一级黄色大片| 亚洲成人av福利| 色综合久久久久综合体桃花网| 久久看人人爽人人| 久久精品72免费观看| 欧美日韩精品欧美日韩精品| 国产精品美女久久久久久| 久久99精品国产麻豆不卡| 色一区在线观看| 中文字幕精品三区| 国产精品99精品久久免费| 7777精品伊人久久久大香线蕉完整版| 亚洲免费观看高清完整| 国产v日产∨综合v精品视频| 精品日韩一区二区三区 | 亚洲欧洲精品一区二区三区| 国产综合久久久久久久久久久久| 欧美日韩国产综合久久| 亚洲影院免费观看| 在线免费观看成人短视频| 亚洲人精品午夜| 日本韩国欧美国产| 夜色激情一区二区| 欧美私人免费视频| 亚洲在线成人精品| 欧美剧在线免费观看网站| 亚洲成人7777| 欧美电影一区二区| 日本麻豆一区二区三区视频| 91精品国产综合久久精品图片| 爽好多水快深点欧美视频| 制服丝袜中文字幕一区| 毛片av中文字幕一区二区| 日韩精品一区二区三区中文精品| 麻豆91免费观看| 久久久久久久久免费| 粉嫩aⅴ一区二区三区四区五区 | 99热在这里有精品免费| 日韩一区在线看| 欧美日韩在线电影| 久久精品免费看| 久久综合色播五月| 成人午夜激情在线| 一区二区三区在线观看动漫| 91精品国产综合久久久久久漫画| 玖玖九九国产精品| 国产精品天天摸av网| 在线观看欧美精品| 久久99国产精品免费网站| 国产精品久久久久一区二区三区| 色哟哟国产精品免费观看| 天天操天天色综合| 国产午夜亚洲精品羞羞网站| 99精品一区二区| 免费成人在线播放| 国产精品无遮挡| 91麻豆精品国产综合久久久久久| 国产精品自拍三区| 樱花影视一区二区| 久久久久久久久99精品| 精品视频在线免费观看| 国产自产高清不卡| 亚洲成人资源在线| 久久久精品免费网站| 欧美日韩国产综合视频在线观看| 国产精品一级二级三级| 日韩精品电影在线| 自拍偷拍国产亚洲| 国产日韩av一区二区| 欧洲亚洲国产日韩| 成人亚洲一区二区一| 日本成人超碰在线观看| 亚洲欧美综合另类在线卡通| 欧美精品一区二区三区在线| 欧美在线高清视频| 国产69精品久久久久毛片| 日韩av电影免费观看高清完整版 | 亚洲观看高清完整版在线观看| 日韩美女精品在线| 亚洲小说春色综合另类电影| 丝袜亚洲精品中文字幕一区| 亚洲国产精品一区二区久久| 久久久www成人免费无遮挡大片| 欧美性xxxxx极品少妇| 99久久伊人网影院| 国产999精品久久| 九九视频精品免费| 青青草精品视频| 日本成人在线看| 丝袜亚洲另类欧美| 丝袜亚洲精品中文字幕一区| 亚洲成人免费av| 五月天中文字幕一区二区| 亚洲免费观看高清完整版在线观看熊 | 国产高清视频一区| 国内精品视频一区二区三区八戒| 天天综合网天天综合色| 午夜日韩在线电影| 日日夜夜一区二区| 日韩精品免费专区| 青青草国产精品97视觉盛宴| 婷婷六月综合亚洲| 日韩av不卡一区二区| 日韩二区三区四区| 老鸭窝一区二区久久精品| 精品一区二区三区免费| 久久精品久久精品| 国产成人精品网址| 成人自拍视频在线观看| 成a人片亚洲日本久久| 91在线观看污| 欧美日韩在线观看一区二区| 欧美日韩国产一二三| 欧美精品自拍偷拍动漫精品| 欧美伦理影视网| 日韩一二在线观看| 久久久久国产一区二区三区四区| 中文字幕欧美日韩一区| 一区二区三区**美女毛片| 手机精品视频在线观看| 日韩精品91亚洲二区在线观看| 久久99热国产| 91日韩在线专区| 欧美乱妇23p| 国产亚洲精品aa午夜观看| 亚洲三级久久久| 蜜桃av一区二区在线观看 | 日本一区二区成人在线| 亚洲欧美在线观看| 日韩不卡一二三区| 成人午夜电影小说| 欧美日韩精品三区| 国产欧美日韩在线| 亚洲小说春色综合另类电影| 久久99在线观看| 欧美性猛交xxxxxx富婆| 日韩欧美一二三四区| 国产精品久久影院| 青椒成人免费视频| 91蜜桃网址入口| 精品国产91洋老外米糕| 亚洲蜜臀av乱码久久精品| 免费观看在线综合| 91成人网在线| 中文字幕乱码亚洲精品一区| 免费人成在线不卡| 欧美吻胸吃奶大尺度电影| 久久综合成人精品亚洲另类欧美| 亚洲一区二区欧美|