Linux下的Capabilities安全机制分析
更新时间:2023-07-19 22:33:01 阅读量: 实用文档 文档下载
- Linux cp推荐度:
- 相关推荐
Linux下的Capabilities安全机制分析
笪已墅型埋一——‘≤运画爱爹一——
Capabmties安全机制分析
解放军信息工程学院
巫晓明
郭玉东
摘要熟悉和掌握Lmux操作系统所提供的安全机制.对于提高系统安全以及开发出高安全性的应用软件是非常关键的.
本文从内核源码角度分析了Lmux下的capabl|_ties的实现机制,同时分析了如何利用capab_|it惜安全机制来提高系
统安全性.
关键词:L『nux
capabf|_tles
安全机制文件访问权限
引言
L nux是典型的多用户操作系统.早期Llnux中的访问控制机制主要是传统uNIx中的基于用户身份鉴别的自主访问控制DAc(DIscreIlonary
AccesscontroI】.uNl×将文件的访
身份.从而可以进行任伺特权操作。目前.置有seIu,d标志
的root用户程序是L川x最大的安全隐患,攻击者最常用的
攻击途径就是利用r。ot用户的se㈨d程序存在的安全漏洞来获取root身份.从而获得整个系统的控制权.
问者分为三类群体即文件属主(Dwner)与文件属主同组的用户(group).以及其他用户(other).同时将对文件的操作分为读、写执行三种因此不同的访问者与不同的操作方式组成了不同文件访问权限.DAc的主要思想是由文件属
se㈨d机制所带来的安全问题主要在于L川x系统将权限
过分集中于root用户为此.人们提出了种分割root用户
权限的称为capab…t啪的安全访问控制模型.
主来指定文件的访问权限.在L…x中.文件node节点中的
mod8域的第九位用来存储文件访问权限.
同样的.Lmux在系统中设立了
个超级用户root用于
系统管理.root用户对系统具有一切特权操作.比如,可以访问系统中的任何文件.修改任何文件的文件访问权限、加载{或卸载)系统模块等等.
对于普通用户的一些只有root用户才能完成的操作需要(如用户修改口令时.就需要root权限来读写系统的口令文
一.Cap.biIities安全模型介绍
capabI㈨es的主要思想在于分割root用户的特权.即将r00t的特权分割成不同的capabIlIty(本文译为权能),每种权能代表一定的特权操作.例如.权能cAP—sYs—MoDuLE表示用户能够加载(或卸载)内核模块操作的特权操作.而cAP—sETuID表示用户能够修改进程用户身份的特权操作.
在c日pab㈨嘲中系统将根据进程拥有的权能来进行特权操作
的访问控制.
在capabl|It|es中,只有进程和可执行文件才具有权能.每个进程拥有三组权能集.分别称为c
ap—effe
cll
ve
件).L川×提供了一种称为setuId的机制来解决.setuid机
制即允许进程在运行过程中改变用户身份,从而可以获得不同的访问权限.L-nux中的进程因此拥有丰富的用户身份信息uld(真实用户号}euld(有效用户号).suId(保存用户号}.fsu-d(文件系统用户号】,通过这些用户号进程可以方便灵活地对其用户身份做暂时改变或恢复等操作.进程改变用户身份有两种方式一种是给可执行文件置上某种标志C称为se㈨d标志).进程执行这些文件时便拥有与文件属主
cap—mhe…able、cap—permⅢed(分别简记为:pEp.pP).
其中.cap—permltted表示进程所能拥有的最大权能集.cap—effectlve表示进程当前可用的权能集.而cap—lnheⅢ曲Je则表示进程可以传递给其子进程的权能集.系统根据进程的c8p—effectlve权能集来进行访问控制,cap—effect_ve为cap—permmed的子集.进程可以通过取消cap—effecllve中的某些权能来放弃进程的一些特权。
可执行文件也拥有三组权能集.对应于进程的三组权能集,分别称为cap—effectl”.cap—aIlowed和c印一forced(分别简记为fE.玑伊).其中.cap—alfowed表示程序运行时可从原进程的caP—mherltable中继承的权能集,capjorced表示运行文件时必须拥有才能完成其服务的权能集cap—effectIve则表示文件开始运行时可以使用的权能.
而
相同的有效用户身份.另一种是通过调用LⅢx提供的系统
调用setuld()
sefeuld().se仃euIdf】,setresuld(),setfsuid
{)等I统称为setⅧd())来改变进程用户身份.
setuId机制既解决了普通用户访问系统特殊资源的需要.同时又通过具体程序来限制用户的访问行为从而保证了这些系统资源的安全性.
但是.setu-d机制在提供方便的同时也带来了安全问题.如普通用户在执行root用户的selurd程序时.便拥有了root
18计算机安全20。3
万方数据
Linux下的Capabilities安全机制分析
———_互亟旷—J墅型幽
改变执行映象后的新进程的各权能集将由原进程的权能信息和可执行文件的权能信息来共同决定.这种决定关系可公式化为:
DI=DI
DP
=fP
(f&p|)
OE=DP
&fE
其中.oDpE.叫为新进程的权能信息.DP
pE
pl
为原进程的权能信息;而fPfl
fE则为可执行文件的权能
信息.
从公式可看出.可以通过配置可执行文件的权能集来指定进程的权能集.
=.L.nux内核中capabiIities的实现机制
L
nux内核从22版本开始就加进了c8p8b¨Ites的概念
与机制并随着版本升高逐步得到改进(本文以L州x24内核为分析对象).但是.到目前为止L川x还不支持可执行文
件的权能集因此还不能通过具体配置可执行文件的权能
集来配置进程的权能集系统只是简单地根据进程的用户身
份来默认进程的权能集.即赋予root用户的进程权能的全集.而将清空普通用户进程的权能集.
1.相关的数据结构
(1)进程控制结构task—struct中与capab…ti s相关的数据结构
struct
task—struct{
kerneI—cap—t
cap—effectIve.cap—InherIt8ble
0ap—perm『lled,
Int
keep—capabi|Itles
1
}
目前.LInux定义了29种权能.因此在进程控制结构
ta
SK—s”ucl中用三个32位的整数:cap—effectfve,
cap—Inher旧bk
c8p—permltfed来分别表示进程的三组权能
集,整数的每位代表种权能(高3位没有定义).
在taSK—struct中还目进了~个控制位keep—capabI|:ties.用于控制进程的用户身份由ro。t特权用户变为普通用户时是否保持其权能信息不变.keep—capabI|Ities的值可以通过系统调用prcf【{)来改变。
(2)cap-bset权能边界集(capab;ljty
bounding
set)
Lmux使用一个全局变量cap-bs叭.甩来限定系统中所有进程所能拥有的权能.将c印-bset中的某权能位清0则系统所有进程不会再拥有此权能,cap—bset的值只能在内核编译前改变.
(3)
3ecurebits安全位
secure
blts为个3
2位的位图.目前只定义了
万
方数据sEcuRE—NoR00T和sEcuRE—N0一sETu旧一FIxuP两位.sEcuRE—NoROOT位.用于控制是否将属主为r。ot的可执行文件的各权能集调整为全集.而sEcuRE—NO—sETuD—Fl×uP位则用于控制进程改变了用户身份后是否对其权能集作相应的调整。securebts的值也只能在内核编译前改变.
2、进程权能集的计算与调整
(1)㈨t进程的具体赋值
州进程是系统启动后运行的第一个用户进程.它的各权能集和keep—capabl【_ties的值在宏定义㈨T—TAsK中具体赋值.具体值为:
cap—e什ectIve=cap—permItted;cap—bseI.cap—lnherltabIe=0.
keep—capab…tles=0
(2)进程调用fo咄()、vfork()或cIone()等函数生成子进程时.子进程复制父进程的各权能集
(3)改变进程映象后的新进程各权能集的重新计算进程调用execve()执行新程序映象后的权能信息将根据可执行文件的权能信息和进程原来的权能信息来共同计算,计算公式为
D
=DI
pP
;(fP&cap—bset)I(fI&pJ)
DE‘=pP’&fE
其中,pP
pE
pI表示进程调用execve()前的各权能
集DP、pE‘,∥表示调用execve()成功后进程的各权能
集.伊、¨fE表示可执行文件的各权能集cap』se1为系统的权能边界集.
由于目前L川x还不支持可执行文件的权能集,因此系统
将所有可执行文件的各权能集均默认为权能的空集,但是在sEcuRE—NOR00T位的控制下系统可将r001用户进程执行的文件的各权能集调整全集.目前Lmux必须root用户进程所执行
的文件的权能集置为全集。因此.在L㈨x内核中虽是根据进
程拥有的权能进行特权操作的访问控制.但由于可执行文件的杈能集的未实现,系统实际上仍然是按照用户身份进行特权操作的访问控制.因此.如果不能具体配置可执行文件的权能信息,并不能充分发挥capabI¨tes卓越的安全性能。
(4)进程改变用户身份后各权能集的调整
进程改变用户身份后其各权能集是否进行调整将由
s
ec
u
reblts中的sEcuRE—N0一sETu|D—FlxuP位和
keep—cap8bi|ites来共同控制.由于在LInux中还不能具体配置
可执行文件的权能集.因此将secureblts和keep—capablI
tes
都设为O,即进程改变用户身份后其权能要作相应的调整.
具体的调整由内核函数cap-emu胁e—set圳d()来完成调整
规则为:
1)如果将进程的euld从0调整为非0(r00t用户的用户号为O),则清空进程的cap
effectIvej
2003
11计算机安全19
Linux下的Capabilities安全机制分析
技7It论坛 毫题
Linu×安金
2)如果进程由特权用户进程(进程的ul。洲dⅫd至
少有一个为o)变为普通用户进程(进程的u旧eu|a都不为。)时
即取消进程的任伺特权:
3)如果进程的e
cap
u
su
由内核函数c印ableC)来完成c8pab|e(J函数检测进程的有
d
效权能集(cap—effect岍)来确定进程是否拥有相应的权能。
对于又什访司请求系统主要检查进程的用户身份以及所请求的操作方式是否符合又件访问权限.文件访问请求权限的检查在Lnu×内核中主要由函数vk—per丌1瞰m()来完成。
vh—permcAP—DAc
ss
洁空进程的cap—efreclIve和c印perm…ea
d从非。调整为。
ve。
则将进程的
permmed赋给进程的cap—effect
on()忽略了对拥有cAP—DAc一0VERRD和
sEARCH权能的进程的DAc常规权限的检查。
而如果将进程的keep—capaD…t哦置为1时进程改变
用户身份后不进行权能集的调整.在这种情况下普通用户进程也可拥有权能即也可进行特权操作。
(5)进程各权能集的直接修改
Llnux提供了谩置进程权能集的系统调用capseI()进程可以调用c8pseI()来直接修改除眦进程以外的任何进程的各权能寨。但只有拥有cAP—sETPcAP权能的进程才有此特权操作而且修改后的新权能集必须为该进程cap
集
permmed的子
READ
总结
从上面的分析我们可以看到
由于还不能具体配置
LInux下的可执行文件的权能集因此Lnu×系统中的进程基木上进是分为拥有所有权能的超级用户进程和没有任何权能的普通用户进程,从某种程度上说.Lnux实际上仍然是根据进程的用户身份来进行特权操作的访问控制。
不过.我们还是可以利用Lnux对Cap8D¨Ies安全模型
即进程不能调用c3pset()为自己增加新的权能。考验
到权能cAP—sETPcAP的可能带来的安全威胁Lmu×在权能边界集cap_Dset中屏蔽了cAPsETPcAP权能。
的现有支持通过正确配置与权能相关的数据结构来提高
L
nux的安全性。比如从全局变量c印bset中●蔽掉系统不
三、Linux中的访问控制
系统将对所有的文件访问请求或特权操作请求进行相应的权限检查.只有通过相应的的权限检查进程才能进行相应的访问或操作。
对于进程的特权操作请求系统将检查进程的权能信息来
常用的权能就可以保证这些权能所代表的特权操作小会被攻击者滥用.从而可性提高整’个系统的安全性.将系统需要的所有功能模块都编译进内核
cAP
然后清除ca
p—b
s
eI中的
sYs—MoDuL[权能位就叫以禁止任何进程进行加载(或
卸载)内核模块的特权操作这样就可以杜绝些通过L川x
的可加载内核模块机制来实现的内核木马。删除系统或进程中多余的权能对系统的安全性总是很有好处的。o
决定是否允许进程进行相关操作。mux对进程的权能的检查
袋电子政务挺求与安全]》
出版日期:2003—5—1译作者:陈兵
出版社:北京犬学出版社定价:人民币23元
[内容提要]
本书主要围绕电子政务的开发技术和安全技术两方面进行展开.开发技术主要包括电子政务系统的硬件环境软件环境以及各种信息处理技术.电子政务的安全技术则探讨了安全防范技术.信息加解密技术和高可用性技术等内容.并给出电子政务的总体安全廨决方案和安全管理方案。
本书适合国家公务员。党校与行政学院师生。MPA.MBA公共管理及电子商务等相关专业高等院校师生使用也适合人事相关电子政务工作的管理人员、信息技术人员使用.
20,f算机安全2003
万方数据
Linux下的Capabilities安全机制分析
Linux下的Capabilities安全机制分析
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
巫晓明, 郭玉东解放军信息工程学院
计算机安全
NETWORK & COMPUTER SECURITY2003,""(11)0次
本文链接:/Periodical_dzzwyjc200311008.aspx授权使用:浙江大学(wfzjdx),授权号:d941da5f-896c-4c0d-9c19-9df100dd403c
下载时间:2010年9月14日
正在阅读:
Linux下的Capabilities安全机制分析07-19
操纵杆支架及铣36槽内侧面夹具说明书09-20
2014-2015-1信号复习题11-17
海洋 - 21世纪的希望教学设计04-04
难忘的足球比赛作文1000字06-30
人教版六年级上册数学工程应用题总复习03-15
水利水电工程标准施工招标文件技术标准和要求(合同技术条款)(2009年版)11-24
有钱别乱花,汽车改装有必要这样吗05-03
2011年秋季四川省会计从业资格考试试卷06-11
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- Capabilities
- 机制
- 分析
- 安全
- Linux
- 设备管理人员绩效考核方案
- 直线与圆专题复习题及答案
- 八年级(下)思品:宪法是国家的根本大法 鲁人教版
- 雅思口语part2高频话题整理
- 硅橡胶性能及其研究进展
- 通信专业实务(初级)课后练习题(含答案)
- 党员民主生活会发言稿
- 人教版(新目标)初中英语定语从句讲解练习
- 供应商往来对帐及结算管理办法
- 灌河中学2010-2011学年度七年级数学上册期末试题及答案
- QP024-环境异常矫正与预防措施程序
- 2015年全国中考物理110套试题估测题汇编
- 南白象中学(1964--2009)
- 医学伦理学 道德评价3
- 低压配电柜型号及意思
- qc七大手法与qc九大步骤
- 大脑皮层中的多肽及其相应神经元
- TiAl基金属间化合物的发展
- 打印职业发展的可行性
- 2012 高考 网上缴费 说明