LSM框架下可执行程序的强制访问控制机制
基于LSM架构对Linux文件系统进行安全性增强
基于LSM架构对Linux文件系统进行安全性增强
罗俊;谭兴烈
【期刊名称】《计算机工程与应用》
【年(卷),期】2005(041)017
【摘要】Linux内核只提供了经典的UNIX自主访问控制.Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架,它使得各种不同的安全访问控制模型能够以Linux可加载内核模块的形式实现出来.首先对Linux安全模块(LSM)的实现机制和接口进行了介绍,然后提出了一种对Linux文件系统的基于LSM架构的强访问控制增强,同时改进了LSM机制引入了多级安全策略的机制.
【总页数】4页(P133-135,189)
【作者】罗俊;谭兴烈
【作者单位】电子科技大学计算机学院,成都,610041;成都卫士通信息产业股份有限公司,成都,610041
【正文语种】中文
【中图分类】TP316
【相关文献】
1.基于Linux文件系统安全性的LSM框架的研究 [J], 李婷妤;彭军
2.基于LSM框架构建Linux安全模块 [J], 吴娴;钱培德
3.基于云的RFID系统架构与安全性分析 [J], 原变青;贾岚;杨婷
4.基于安全性测试的电网IMS平台架构优化设计 [J], 葛吉刚;赵婷;陈璞;隋璐捷
5.基于云架构下多中心真实世界研究数据平台安全性设计要点分析 [J], 杜金源;胡黎明;裴云飞
因版权原因,仅展示原文概要,查看原文内容请购买。
2023上半年-国产操作系统(麒麟)安全管理师(初级)考前冲刺题A3卷
2023上半年国产操作系统(麒麟)安全管理师(初级)考前冲刺题A3卷1.【单选题】最终的进程优先级共多少级,称为基本优先级( )。
A:30级B:32级C:16级D:28级正确答案:B答案解析:进程优先级共 32 级,是从 0 到 31 的数值2.【单选题】多路径的优点主要是( )。
A:冗余B:改进性能C:冗余和改进性能D:便于使用正确答案:C答案解析:多路径的优点主要是冗余和改进性能。
3.【单选题】软件的( )可以作为软件唯一性特征,可以作为软件白名单关键要素。
A:SM3值B:绝对路径C:相对路径D:名称正确答案:A答案解析:SM3是国密哈希算法,可以作为软件唯一性特征,可以作为软件白名单关键要素。
4.【单选题】静态度量机制能够防御( )。
A:已知恶意程序B:既能够防御已知恶意程序,也能防御未知恶意程序C:未知恶意程序D:系统漏洞正确答案:B答案解析:静态度量机制既能够防御已知恶意程序,也能防御未知恶意程序。
5.【单选题】漏洞管理的5个过程是漏洞预警、漏洞检测、( )、漏洞修复和漏洞审计。
A:风险管理B:漏洞挖掘C:漏洞补丁D:系统漏洞正确答案:A答案解析:漏洞管理的5个过程是漏洞预警、漏洞检测、风险管理、漏洞修复和漏洞审计。
6.【单选题】麒麟采取的漏洞定级标准是( )。
A:CVSS 3.0B:CVSS 2.0C:CVSS 3.2D:CVSS 3.1正确答案:D答案解析:麒麟采取的漏洞定级标准是CVSS 3.1。
7.【单选题】社会工程学的( )等属于信息系统的安全威胁。
A:拒绝服务攻击B:内部人员威胁C:特洛伊木马D:ARP欺骗、IP源地址欺骗正确答案:B8.【单选题】商用密码能否用于保护国家秘密信息( )。
A:可以B:不可以C:特定行业可以D:根据需要确定正确答案:B答案解析:商用密码不用于保护国家秘密信息。
9.【单选题】在麒麟操作系统中,安全中心的哪个功能模块可以实现一键安全加固与还原( )。
LSM
LSM(Linux Security Modules)LSM简介Linux 安全模块(英语:LSM)是Linux内核中用于支持各种计算机安全模型的框架,它与任何单独的安全实现无关。
这个框架使用GNU通用公共许可证授权,并且从Linux 2.6 开始成为官方Linux 内核的一部分。
Linux 安全模块提供了强制访问控制所需的功能,同时尽量减少对Linux 内核的修改。
Linux安全模块(LSM)的起因是:一方面Linux内核现有的安全机制是不足够的;另一方面现存的安全增强系统又各自为战并且难以使用。
Linux安全模块(LSM)比较好的解决了这个问题:一方面补丁比较小,对内核源代码的修改影响不多,所带来的负载也不大;另一方面对现存的安全增强系统提供了比较好的接口支持,并已经有不少很好的安全模块可以使用。
LSM原理LSM由钩子函数和虚拟指针域组成。
它在关键操作处插入钩子函数,这些函数可由用户注册来实现安全策略。
在重要结构中设置虚拟指针域,用于定义访问控制所需要的主体和客体属性。
1)虚拟指针域进行访问控制需对主客体的安全属性进行比较,判断主体对客体是否有相应操作的权利。
LSM在内核数据结构中设置透明的安全字段,类型为:void *。
该字段的具体结构由用户加载的安全模块定义,并将之与内核模相应数据结构关联。
如:super_block结构:代表文件系统。
linux_binprm结构:代表程序task_struct结构:代表任务(进程)kern_ipc_perm结构:代表Semaphore信号,共享内存段,或者消息队列inode结构:代表管道,文件,或者Socket套接字。
file结构:代表打开的文件。
sk_buff结构:代表网络缓冲区(包)。
net_device结构:代表网络设备。
msg_msg:代表单个的消息。
这些虚拟指针域的分配、释放、并发控制也定义为钩子函数,由用户实现。
用于分配安全指针域的函数为alloc_security()。
强制访问控制 安全策略
强制访问控制安全策略强制访问控制安全策略引言在当今信息化社会中,数据的安全性日益受到关注。
强制访问控制是一种重要的安全策略,它通过规定系统对用户和资源的访问权限,确保只有合法的用户能够访问合法的资源。
本文将介绍强制访问控制的概念和不同类型的安全策略。
强制访问控制概述强制访问控制是一种基于安全标签的访问控制机制,它通过强制执行政策来限制用户对资源的访问。
与自由访问控制不同,强制访问控制的权限由系统管理员分配,用户无法随意更改或绕过。
强制访问控制通常用于处理对机密信息的访问,如军事、政府和金融领域。
强制访问控制的类型1. 强制访问控制 - 标签审计策略•标签审计策略是一种最基本的强制访问控制策略。
它使用标签来标识用户和资源,并根据标签属性来确定访问权限。
只有符合标签属性要求的用户才能访问相应资源。
•标签审计策略的优点是简单易行,适用于小型系统。
但它需要事先定义好标签属性和权限规则,扩展性较差。
•审计策略是一种较为严格的强制访问控制策略。
它要求用户在访问资源之前必须得到授权,授权后的访问行为将被记录下来进行审计。
只有经过审计的合法访问行为才能被允许。
•审计策略的优点是能够详细监控和追溯用户的访问行为,提高了系统的安全性。
然而,审计策略需要对大量的日志进行处理,给系统性能带来一定的压力。
3. 强制访问控制 - 多级安全政策•多级安全政策是一种针对高度机密信息的强制访问控制策略。
它将资源和用户按照安全等级进行分类,并确保只有具备足够安全等级的用户才能访问对应的资源。
•多级安全政策的特点是安全等级的严格控制和信息的隔离性。
然而,它需要较为复杂的安全标记体系和精细的权限管理,增加了系统的复杂性和管理成本。
结论强制访问控制是一种重要的安全策略,它通过规定系统对用户和资源的访问权限,限制了对机密信息的无授权访问。
不同类型的强制访问控制策略适用于不同的场景,可以根据实际需求进行选择和配置。
正确使用强制访问控制策略将提高系统的安全性和可靠性,保护敏感信息的安全。
基于LSM的分布式强制访问控制的设计与实现
第l 6卷 第 期 20 年 l 0H 6 2月
.
c) 兀E E H O O YA DD V L P N ( ’ T C N L O N E E O ME T 1 R
计 算 机 技 术 与 发 展
vD l N ,2 0_6 o 1 I
・
Ac e sCo to s d o M c s n r l Ba e n LS
RUA Y e, NG X ebn , H N u YA u.i , Z OU i -i J i g Ja qn .I n n B
( .c ̄l f o ue c ne A h i i rt f cn l y 1Sh mp t Si c , n u v syo h o g ,Maasa 4 0 2 C ia oC r e Un e i Te o ’nh n23 0 , h ; n
毒
摘 耍:S Ln x eui dl ) L M( i cry u S t Mou s是得到 Lns ovl 本人支持的安全访问控制的底层架构, e i ra s uT d 强制访问控制是操作系 统安全增强技术 中经常采用的方式。为了在基于 Lnx的集群系统上, iu 实现节点间信息 的安全流动 , 在简要介绍 L M 和 S 强制访问控制的原理的基础上, 讨论 了如何拓展 L M 及其相应 的安全政策来实现集群系统节点问的安全访问控制, S 并设 计和实现了基于 L M 的分布式强制访 问控制。最后指出了这一实现在性能上的缺陷和进一步改进的方向。 S
o i r ue C bs d o S .n t ee d p it U efr n el tt na di rv n t n t eftr . fd ti t MA a e n L M I h n , n t r ma c mi i s b d o O p o i a o n mpo e  ̄ u e i h u Ke o d : M ; yw r s ; l t s dsr ue cu e ; i i t sr tb d
网络安全等级保护设计方案(三级)-技术体系设计
网络安全等级保护设计方案(三级)-技术体系设计XXX科技有限公司20XX年XX月XX日目录一安全计算环境 (3)1.1 用户身份鉴别 (3)1.2 自主访问控制 (6)1.3 标记和强制访问控制 (7)1.4 系统安全审计 (8)1.5 用户数据完整性保护 (9)1.6 用户数据保密性保护 (10)1.7 数据备份恢复 (11)1.8 客体安全重用 (14)1.9 可信验证 (14)1.10 配置可信检查 (16)1.11 入侵检测和恶意代码防范 (16)1.12 个人信息保护 (16)二安全区域边界 (17)2.1 区域边界访问控制 (17)2.2 区域边界包过滤 (18)2.3 区域边界安全审计 (18)2.4 区域边界完整性保护 (19)2.5 入侵防范 (21)2.6 恶意代码和垃圾邮件防范 (22)2.7 可信验证 (22)三安全通信网络 (23)3.1 网络架构 (23)3.2 通信网络安全审计 (26)3.3 通信网络数据传输完整性保护 (28)3.4 通信网络数据传输保密性保护 (28)3.5 可信连接验证 (29)四安全管理中心 (29)4.1 系统管理 (29)4.2 安全管理 (30)4.3 审计管理 (30)4.4 集中管控 (31)五安全物理环境 (32)5.1 物理位置选择 (32)5.2 物理访问控制 (33)5.3 防盗窃和防破坏 (33)5.4 防雷击 (33)5.5 防火 (34)5.6 防水和防潮 (34)5.7 防静电 (35)5.8 温湿度控制 (35)5.9 电力供应 (35)5.10 电磁防护 (36)5.11 智慧机房安全建设 (36)六结论 (37)一安全计算环境依据《网络安全等级保护安全设计技术要求》中的第三级系统“通用安全计算环境设计技术要求”,同时参照《网络安全等级保护基本要求》等标准要求,对等级保护对象涉及到的安全计算环境进行设计,设计内容包括用户身份鉴别、自主访问控制、标记和强制访问控制、系统安全审计、用户数据完整性保护、用户数据保密性保护、数据备份恢复、客体安全重用、可信验证、配置可信检查、入侵检测和恶意代码防范、个人信息保护等方面。
LSM框架下可执行程序的强制访问控制机制
有效防止特洛伊 木马的攻击 ,这对 于保证整个系统的安全 具 有重要意义 ,因此 , C在高等级 安全操作系统 的设计中被 MA 强制要求。然而 ,当今主流 的操作系统并未提供 MA C机制 , 难以为系统提供 充足的安全保证。为此 ,学术界对 如何增 强
护操作系统 中资源免受非法访 问起着关键 的作用 。访问控制
可 以 分为 自主 访 问控 制 ( C 和 强 制 访 问控 制( n aoy DA ) Ma dtr A cs ot l ces nr , C o MAC ,与 D ) AC相比 , MAC中的安全策略 由
安全管理员根据安全威胁和安全假设预 先定义 ,用户或代表
摘
要 :分析 L M 框架 的基本设计思想和 Lnx S i 系统 上原 有的可执 行程序访 问控制机 制存在 的问题 , u 在此基础上讨论在 L M 框架下可执 S
行程序强制访 问控制机制 的设计 。作为 验证 ,基于 Lnx .1 i 2. u 6 1内核 实现了一个可执 行程 序强制访问控制系统原型 ,对如何在操作系统中
实现可执行程序 的强制访 问控制 具有指导意义 。 关键词 : S 框架 ;强制访 问控制 ;可执行程序 LM
M a d t r c s n r l e h n s f e u a l n a o yAc e sCo to c a im 0 c t b e M Ex Pr g a o r m Und rLS e M
L U We-e g, u L u- n, I i I i n HUJ n, V H i u 2L U ya p j
f. tt Ke a oa r fnoma o e ui , au t nvri f hn s a e f cec sB in 0 0 9 1Sae yL brt yo fr t nS c ryGrd aeU ies yo iee o I i t t C Acdmyo in e, e ig10 3 ; S j
利用LSM框架实现基于角色的访问控制
1 L M 框 架 S
l l L M 的设计 原则 - S
L M是为 Lnx内核开发 一个通 用 的安全 访 问控 制框 架 , S iu
安 全性 的要求 , 从而影响了 Lnx系统 的应用 。另一 方面 , iu 目前
b s d o S f me o k a e n L M r a w r. Ke wo d y rs L n x L n x s c r y mo u e A c s o t l Roe b e c e sc n rl i u i u e u t d l c e s c nr i o l - a d a c s o t s o
有很多安全访问控制模型及其实现 , 已经被研究 和开发 出来 , 用
以增 强 Ln x系 统 的 安 全 性 , 较 知 名 的 有 安 全 增 强 Ln x iu 比 iu
该架构允许 把 具 体 的 安 全策 略 及 其 实 现作 为一 个 可 选 择 的
L M( iu enl due 载人 内核 , K LnxK re Mo l) 这样 就可以支持现有 的各 种安全访 问控 制系统 , 为将来 的 Lnx安全 访 问机制提 供一 并 iu
维普资讯
第2 3卷 第 8期
20 0 6年 8月
计 算机 应 用与软件
Co mpu e p ia in n ot r trAp lc to s a d S fwa e
Vo . 3, 1 2 No. 8 Au . 0 6 g 2 0
利 用 L M 框 架 实 现 基 于 角 色 的 访 问控 制 S
0 引 言
selinux强制访问控制规则
selinux强制访问控制规则SELinux(Security-Enhanced Linux)是一种强制访问控制(Mandatory Access Control)机制,用于在Linux操作系统中实施细粒度的访问控制策略。
它通过对系统资源和进程进行标记和限制,提供了更高级别的安全性。
本文将介绍SELinux强制访问控制规则的基本原理和常见应用。
让我们了解SELinux的基本概念。
SELinux是一个内核级别的安全模块,它与传统的Linux访问控制(例如文件权限)不同,可以实现对进程、文件和设备等资源的细粒度访问控制。
SELinux通过为每个进程和对象分配一个安全上下文(Security Context),并使用安全策略(Policy)对访问进行限制,从而提供了更强大的安全保护。
在SELinux中,强制访问控制规则是通过安全策略定义的。
安全策略是一个包含了一系列规则的数据库,用于描述系统中的对象和主体,并定义了它们之间的访问规则。
每个规则由一个三元组(源上下文、目标上下文和访问类型)组成,用于控制主体对对象的访问。
SELinux的强制访问控制规则是基于最小权限原则的。
也就是说,一个主体只能访问它需要的资源,并且只能以被授权的方式进行访问。
这种最小权限原则可以最大限度地减少系统被攻击的风险,提高系统的安全性。
在SELinux中,每个进程和文件都有一个安全上下文。
安全上下文由一个标签(Label)组成,用于标识其所属的安全域和角色。
安全域定义了对象的访问权限,而角色定义了主体的权限。
通过安全上下文,SELinux可以根据安全策略对进程和文件的访问进行精确控制。
除了安全上下文,SELinux还使用了类型强制(Type Enforcement)和访问向量缩小(Confinement)等技术来增强安全性。
类型强制是指通过为对象和主体分配不同的类型和角色,限制它们之间的相互作用。
访问向量缩小是指将系统中的对象和主体分组,并限制它们之间的访问。
LSM相关知识及理解
LSM相关知识及理解⼀.什么是LSMLSM全称为Linux Security Modules,Linux安全模块,是⼀个在内核模块的基础上提出的轻量级的安全访问控制框架。
下图为包含LSM的Linux内核模块结构,可以看出来LSM框架只是提供⼀个⽀持安全模块的接⼝,本⾝不能增强系统安全性。
通过LSM框架,安全模块层的安全模块们可以⾮常⾃由地在内核⾥加载和卸载,不需要对内核进⾏重新编译。
*(图源:曲坤,周莲英-基于 LSM 的安全审计机制研究与实现。
侵删)框架结构:1)在内核数据结构中加⼊安全域(存放安全属性)2)在内核代码中不同的关键点插⼊对hook函数的调⽤安全域是⼀个void *类型的security指针,security具体指向的数据类型由安全模块定义,从⽽将安全信息和内核内部对象联系起来。
安全域主要涉及task_struct(任务和进程)、linux_binprm(程序)、super_block(⽂件系统)、inode(管道、⽂件或者socket套接字)、file(打开的⽂件)、sk_buff(⽹络缓冲区)、net_device(⽹络设备)、ker_ipc_perm(Semaphore消息,共享内存段,消息队列)、msg_msg(单个消息)这⼏种内核对象。
LSM框架在安全域涉及的内核对象的数据结构体中加⼊void *类型的security指针,指向的数据类型由安全模块定义,通常为结构体指针。
然后在该结构体中记录当前内核对象的上下⽂参数和相关的安全信息。
⼆.hook机制LSM框架通过提供⼀系列的hook,⽤来控制对内核对象的操作。
下图为hook函数的访问⽰意图,⾸先⽤户访问系统调⽤时,先通过原有的内存接⼝进⾏功能性的错误检查,然后再进⾏⾃主访问控制DAC 检查。
在访问内核的内部对象之前,通过安全模块的hook函数调⽤LSM,LSM查看操作上下⽂和主客体安全域的相关信息决定是否允许请求,觉得访问的合法性,返回信息。
selinux 强制访问控制规则
selinux 强制访问控制规则Selinux强制访问控制规则Selinux(Security-Enhanced Linux)是一种在Linux操作系统中实现强制访问控制(MAC)的安全机制。
它通过强制执行访问控制规则,限制了进程对系统资源的访问权限,提供了更高的安全性和保护性。
Selinux的强制访问控制规则主要包括以下几个方面:1. 标签类型(Type):Selinux通过标签类型来区分不同的对象。
每个文件、进程或网络端口都被赋予一个唯一的标签类型。
标签类型定义了对象的安全上下文,包括其访问权限和行为限制。
2. 标签角色(Role):Selinux通过标签角色来区分不同的角色。
每个进程都被赋予一个标签角色,用于定义其对系统资源的访问权限。
标签角色定义了进程的权限范围,限制了其能够执行的操作。
3. 标签级别(Level):Selinux通过标签级别来区分不同的安全级别。
每个对象都被赋予一个标签级别,用于定义其对其他对象的访问权限。
标签级别定义了对象之间的安全隔离性,限制了高级别对象对低级别对象的访问。
4. 访问控制规则(Rule):Selinux通过访问控制规则来限制对象之间的访问。
访问控制规则定义了对象之间的访问策略,包括允许或禁止某些操作。
这些规则是基于标签类型、标签角色和标签级别来定义的,确保了对象之间的安全访问。
Selinux的强制访问控制规则是在操作系统内核层面实现的,与传统的自由访问控制(DAC)不同。
DAC是基于用户和组的访问控制,而Selinux是基于标签的访问控制。
由于Selinux的标签是与对象绑定的,即使用户具有访问权限,但如果对象的标签不允许该操作,用户仍无法执行。
Selinux的强制访问控制规则可以有效地防止攻击者利用操作系统的漏洞进行非法操作。
例如,一个恶意程序试图修改系统文件,但其标签类型不允许写入该文件,Selinux将会阻止该操作。
这样可以减轻系统管理员的负担,提高系统的安全性。
安卓安全访问机制
安卓安全访问机制(SEAndroid)一、背景和意义在移动互联网领域,Android系统目前已经取得了统治性的地位。
相对于IOS的封闭性,Android的开发性也带来了越来越多的安全问题,引起了业内人士与手机用户的广泛关注。
目前针对安卓平台的恶意软件越来越多,恶意软件可以泄露用户的个人资料和隐私,甚至对用户造成巨大的经济损失。
当用户从非授权的应用商店下载应用后,很可能就会被植入恶意软件。
安全访问机制负责限制应用程序可以获取的系统信息和系统资源。
通过它,我们可以限制安装软件的权限和行为,降低恶意软件的危害。
二、技术介绍Android系统是基于Linux内核开发的。
因此,Android系统不仅保留和继承了Linux 操作系统的安全机制,而且其系统架构的各个层次都有独特的安全特性。
Android的Linux内核包含了强制访问控制机制和自主访问控制机制。
强制访问控制机制由Linux安全模块来实现,但Google出于某种原因,并没有将LSM编译进Android内核。
自主访问控制机制通常由文件访问控制来实现,Linux文件系统的权限控制是由user、group、other与读(r) 、写(w) 、执行(x)的不同组合来实现的。
这样,每个文件都有三个基本权限集,它们的组合可以容许、限制、拒绝用户、用户组和其他用户的访问。
通常,只有uid是“system”或“root”用户才拥有Android系统文件的访问权限,而应用程序只有通过申请Android权限才能实现对相应文件的访问,也正因为此,Android使用内核层Linux的自主访问控制机制和运行时的Dalvik虚拟机来实现Android的“沙箱”机制。
Android“沙箱”的本质是为了实现不同应用程序和进程之间的互相隔离,即在默认情况下,应用程序没有权限访问系统资源或其它应用程序的资源。
每个APP和系统进程都被分配唯一并且固定的User Id,这个uid与内核层进程的uid对应。
操作系统安全部分答案
1.安全性与操作系统之间的关系是怎样的?2.从操作系统安全的角度如何理解计算机恶意代码、病毒、特洛伊木马之间的关系?恶意代码指的所有感染计算机并且造成破坏的程序,病毒是恶意代码的一种,可以复制感染计算机程序造成破坏。
而特洛伊木马是一种载体,它伪装成合法的程序,在执行的时候才把隐藏在其中的恶意代码释放,如病毒、蠕虫等。
3.从操作系统面临的安全威胁看,密码服务与操作系统安全功能之间的关系如何?密码服务虽然主要依赖于应用层的密钥管理功能,但是如果操作系统无法保护数据文件,无法有效的保护密钥,那么数据加密的作用将大大降低,所以操作系统安全是密码服务的基石。
4.简述操作系统安全和信息系统安全之间的关系?操作系统的安全性在计算机信息系统的整体安全性中具有至关重要的作用,没有操作系统提供的安全性,信息系统的安全性是没有基础的。
5.简述安全操作系统研究的主要发展过程。
6.Linux自由软件的广泛流行为什么会对我国安全操作系统的研究与开发具有积极的推进作用?1.安全操作系统的安全功能与安全保证之间有怎样的关系?安全功能主要说明操作系统所实现的安全策略和安全机制符合评价准则哪一级的功能要求。
而安全保证则是通过一定的方法保证操作系统所提供的安全功能确实达到了确定的功能要求。
2.从操作系统安全的角度如何区分可信软件与不可信软件?软件保证能安全运行,并且后来系统的安全也依赖于软件的无错操作。
3.在操作系统中哪些实体即可以是主体又可以为客体?请举例说明。
在操作系统中,进程作为用户的客体,同是又是其访问对象的主题。
4.如何从安全策略、安全模型和系统安全功能设计之间的关系上,来验证安全内核的安全?安全策略是指有关管理、保护和发布敏感信息的法律、规定和实施细则。
安全模型则是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和安全策略实现机制的关联提供了一种框架。
JP指出要开发安全系统首先应该建立系统的安全模型。
=5.为什么要将可信的管理人员列入可信计算基的范畴?由于系统管理员的误操作或恶意操作也会引起系统的安全性问题,因此他们也被看做TCB的一部分。
基于BLP和Clark-Wilson策略的混合强制模型
基于BLP和Clark-Wilson策略的混合强制模型陈进;吕红兵;潘雪增【摘要】BLP模型通过允许低安全级别到高安全级别的信息流动,保证了信息的机密性.但是不能解决普遍存在的下向信息流.而Clark-Wilson模型通过可监控的状态转换提供了完整性保护.提出的模型以BLP控制策略为基础,并在Clark-Wilson 模型的监控下,允许下向信息流的流动.证明了该模型是安全的,可行的.【期刊名称】《计算机工程与应用》【年(卷),期】2011(047)005【总页数】4页(P65-68)【关键词】信息安全;BLP模型;Clark-Wilson模型;强制访问控制【作者】陈进;吕红兵;潘雪增【作者单位】浙江大学计算机科学与技术学院,杭州,310027;浙江大学计算机科学与技术学院,杭州,310027;浙江大学计算机科学与技术学院,杭州,310027【正文语种】中文【中图分类】TP316人类已经进入信息化时代,信息安全问题也已日益成为世界的首要问题。
为了确保信息安全,系统必须提供有效的访问控制。
访问控制是信息保障的核心内容,是实现数据保密性和完整性的重要手段。
访问控制的基本任务是:防止非法用户进入系统及合法用户对系统资源的非法使用,它保证主体对客体的所有直接访问都是经过授权的[1]。
传统的访问控制包括:自主访问控制、强制访问控制和基于角色的访问控制。
基于不同领域信息系统设计,提出了不同的信息安全模型,但是由于不同的安全模型考虑的因素不同,所以存在着各自的弊端。
如Bell-LaPadula(BLP)模型[2]强调信息的机密性而严格控制下向信息流。
Clark-Wilson模型[1]强调数据的完整性但是不能给予有效的机密性保护。
Biba模型[3]同样强调数据的完整性但是需要引用“可信主体[4]”解决可用性问题。
首先介绍了Bell-LaPadula模型和Clark-Wilson模型的访问控制,分析了Bell-LaPadula模型存在的不足。
LSM框架下可执行程序的强制访问控制机制
召,DARPA等开展了LSM(Linux Security Module)[1]的研发。
LSM是一种灵活的通用访问控制框架,用户可以根据安全需求来选择安全模块,加载到Linux内核中,从而提高其安全访问控制机制的易用性。
1 LSM框架研究LSM的设计思想是在内核对象数据结构中放置透明安全域(opaque security field)作为其安全属性,并在内核源代码中放置钩子(hook)函数,由hook函数来完成对内核对象的访问的判断,基本原理如图1所示。
在LSM框架下,用户进程执行系统调用时,将通过原有的内核接口逻辑依次执行功能性错误检查、传统的DAC检查,并在访问内核对象之前,通过hook函数调用具体的访问控制策略实现模块来决定该访问是否合法。
图1 LSM的基本原理LSM实现了一个通用的访问控制框架[2],为安全模块的开发提供了统一的标准接口,并对内核作了以下2处重要修改[3]:(1)为内核数据结构添加透明安全域;(2)在内核代码中的关键访问点插入安全钩子函数。
1.1 透明安全域任何安全模型要控制主体对客体的访问,首先必须对主和客体进行安全标识。
LSM 作为一个通用的访问控制框架,基金项目:国家“973”计划基金资助项目“信息与网络安全体系结构研究”(G1999035801)作者简介:刘威鹏(1980-),男,博士研究生,主研方向:可信计算,安全操作系统;胡俊、吕辉军、刘毅,博士研究生收稿日期:2007-05-09 E-mail:wpliu@—160—不能为内核对象指定特定的安全标签,而需要指定一个能够适应安全模型变化的标签。
因此,LSM框架通过在内核对象的数据结构中添加透明安全域来实现框架本身的通用性。
LSM在内核中9个与访问控制相关的内核对象数据结构中添加了透明安全域,例如:inode(文件)、Linux_bprm(可执行程序)、super_block(文件系统)等。
透明安全域本身是一个空指针类型(void*),该域的具体结构由安全模块定义,通过该域能将安全信息与内核对象关联。
LINUX和WINDOWS的安全性比较
LINUX和WINDOWS的安全性安全问题对于IT管理员来说是需要长期关注的。
主管们需要一套框架来对操作系统的安全性进行合理的评估,包括:基本安全、网络安全和协议,应用协议、发布与操作、确信度、可信计算、开放标准。
在本文中,我们将按照这七个类别比较微软Windows和Linux的安全性。
最终的定性结论是:目前为止,Linux提供了相对于Windows更好的安全性能,只有一个方面例外(确信度)。
无论按照什么标准对Windows和Linux进行评估,都存在一定的问题:每个操作系统都不止一个版本。
微软的操作系统有Windows98、Windows NT、Windows 2000、Windows 2003 Server和Windows CE,而Linux 的发行版由于内核(基于2.2、2.4、2.6)的不同和软件包的不同也有较大的差异。
我们本文所使用的操作系统,都是目前的技术而不是那些"古老"的解决方案。
用户需要记住:Linux和Windows在设计上就存在哲学性的区别。
Windows操作系统倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合;而Linux不同于Windows,它的内核空间与用户空间有明显的界限。
根据设计架构的不同,两者都可以使操作系统更加安全。
1、Linux和Windows安全性的基本改变对于用户来说,Linux和Windows的不断更新引发了两者之间的竞争。
用户可以有自己喜欢的系统,同时也在关注竞争的发展。
微软的主动性似乎更高一些――这是由于业界"冷嘲热讽"的"激励"与Linux的不断发展。
微软对Windows安全进行改观微软会发布Windows XP的Service Pack2。
这一服务包增强了Windows 的安全性,关闭了原先默认开放的许多服务,也提供了新的补丁管理工具。
为了避免受到过多无用的信息,警告服务和信使服务都被关闭。
基于LSM的Docker访问控制机制研究
基于LSM的Docker访问控制机制研究李平平;陈莉君【期刊名称】《信息技术》【年(卷),期】2016(040)011【摘要】Docker[1]容器技术是一种基于LXC的新型容器技术,其提供一种可重复的环境中自动部署软件的方式.访问控制机制是为了确保不能非授权访问信息系统资源.针对Docker容器进程对Linux宿主机的安全隐患,提出一种基于LSM实[2]现Docker容器进程对内核资源的强制访问控制机制框架,该框架从内核层面实现Docker容器进程对Linux宿主机访问控制.实验结果表明,该框架完善了Docker 容器和Linux宿主机的访问控制机制,可以有效阻止Docker容器进程访问Linux 宿主机中未被隔离的内核资源,确保了Docker容器对Linux宿主机资源访问的安全.%Docker container technology is a new type of container technology based on LXC, which provides a kind of reusable software in the environment. The purpose of access control mechanism is to prevent unauthorized access to information system resources. Aiming at the security risk of Docker container process to Linux host,this paper proposed a framework of mandatory access control mechanism to protect the kernel resources between the Docker container and Linux host based on LSM which implements a process from Docker container for Linux host access control in the kernel level. The experimental results show that the framework improves the access control mechanism between Docker container and Linux host, can effectively prevent processes of Dockercontainer from accessing the host Linux kernel resources which not been isolated and ensure the safety of Docker container for Linux host access.【总页数】6页(P134-138,142)【作者】李平平;陈莉君【作者单位】西安邮电大学计算机学院,西安710061;西安邮电大学计算机学院,西安710061【正文语种】中文【中图分类】TP316【相关文献】1.LSM框架下可执行程序的强制访问控制机制 [J], 刘威鹏;胡俊;吕辉军;刘毅2.基于LSM的安全访问控制实现 [J], 阮越;王成耀3.基于LSM的安全审计机制研究与实现 [J], 曲坤;周莲英4.利用LSM框架实现基于角色的访问控制 [J], 王亚刚;房鼎益;吴晓南;刘炜5.基于LSM的分布式强制访问控制的设计与实现 [J], 阮越;杨学兵;周建钦;纪滨因版权原因,仅展示原文概要,查看原文内容请购买。
基于LSM的分布式强制访问控制的设计与实现
基于LSM的分布式强制访问控制的设计与实现
阮越;杨学兵;周建钦;纪滨
【期刊名称】《计算机技术与发展》
【年(卷),期】2006(16)12
【摘要】LSM(Linux Security Modules)是得到Linus Torvalds本人支持的安全访问控制的底层架构,强制访问控制是操作系统安全增强技术中经常采用的方式.为了在基于Linux的集群系统上,实现节点间信息的安全流动,在简要介绍LSM和强制访问控制的原理的基础上,讨论了如何拓展LSM及其相应的安全政策来实现集群系统节点间的安全访问控制,并设计和实现了基于LSM的分布式强制访问控制.最后指出了这一实现在性能上的缺陷和进一步改进的方向.
【总页数】3页(P250-252)
【作者】阮越;杨学兵;周建钦;纪滨
【作者单位】安徽工业大学,计算机学院,安徽,马鞍山,243002;安徽工业大学,计算机学院,安徽,马鞍山,243002;南京大学,计算机系,江苏,南京,210093;安徽工业大学,计算机学院,安徽,马鞍山,243002;安徽工业大学,计算机学院,安徽,马鞍山,243002【正文语种】中文
【中图分类】TP393.08
【相关文献】
1.基于BLP的虚拟机多级安全强制访问控制系统设计与实现 [J], 池亚平;姜停停;戴楚屏;孙尉
2.LSM框架下可执行程序的强制访问控制机制 [J], 刘威鹏;胡俊;吕辉军;刘毅
3.基于强制访问控制的安全Linux系统设计与实现 [J], 潘龙平;庄毅;吴学成
4.基于传统DBMS的强制访问控制安全功能的设计与实现 [J], 邵佩英;孙淑玲
5.基于强制访问控制的文件安全监控系统的设计与实现 [J], 王雷;庄毅;潘龙平因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
召,DARPA等开展了LSM(Linux Security Module)[1]的研发。
LSM是一种灵活的通用访问控制框架,用户可以根据安全需求来选择安全模块,加载到Linux内核中,从而提高其安全访问控制机制的易用性。
1 LSM框架研究LSM的设计思想是在内核对象数据结构中放置透明安全域(opaque security field)作为其安全属性,并在内核源代码中放置钩子(hook)函数,由hook函数来完成对内核对象的访问的判断,基本原理如图1所示。
在LSM框架下,用户进程执行系统调用时,将通过原有的内核接口逻辑依次执行功能性错误检查、传统的DAC检查,并在访问内核对象之前,通过hook函数调用具体的访问控制策略实现模块来决定该访问是否合法。
图1 LSM的基本原理LSM实现了一个通用的访问控制框架[2],为安全模块的开发提供了统一的标准接口,并对内核作了以下2处重要修改[3]:(1)为内核数据结构添加透明安全域;(2)在内核代码中的关键访问点插入安全钩子函数。
1.1 透明安全域任何安全模型要控制主体对客体的访问,首先必须对主和客体进行安全标识。
LSM 作为一个通用的访问控制框架,基金项目:国家“973”计划基金资助项目“信息与网络安全体系结构研究”(G1999035801)作者简介:刘威鹏(1980-),男,博士研究生,主研方向:可信计算,安全操作系统;胡俊、吕辉军、刘毅,博士研究生收稿日期:2007-05-09 E-mail:wpliu@—160—不能为内核对象指定特定的安全标签,而需要指定一个能够适应安全模型变化的标签。
因此,LSM框架通过在内核对象的数据结构中添加透明安全域来实现框架本身的通用性。
LSM在内核中9个与访问控制相关的内核对象数据结构中添加了透明安全域,例如:inode(文件)、Linux_bprm(可执行程序)、super_block(文件系统)等。
透明安全域本身是一个空指针类型(void*),该域的具体结构由安全模块定义,通过该域能将安全信息与内核对象关联。
1.2 安全钩子函数LSM提供了2类hook函数:(1)用于分配、释放和管理内核对象的透明安全域;(2)用于控制对内核对象的访问。
对这2类hook函数的调用均是通过全局表security_ops(即指向security_opertations的指针)中的函数指针来实现的,在security_operations结构体中定义了150多个函数指针,这些指针分为6类,分别与进程、文件系统、可执行程序、进程间通信、网络以及系统操作有关,安全开发者通过对其中的hook函数进行具体实现来满足实际的安全需求。
2 可执行程序的强制访问控制的设计和实现2.1 问题分析在Linux系统中的/bin, /sbin等目录中存在很多与系统管理相关的可执行程序,由于它们涉及到许多重要的操作,例如,通过执行grub能够更改系统的启动,通过insmod, rmmod 能够添加和删除模块,因此系统提供了一套自主访问控制机制来对这些可执行程序进行保护。
每个可执行程序根据其所属的“owner-group-other ”3个层次各自分为“读(r)-写(w)-执行(x)”3个操作项,系统提供了chmod的命令,允许可执行程序的拥有者能够修改操作项,还提供了chown命令允许拥有者改变对象的拥有权。
在上述目录中,绝大部分可执行程序在“其他”位上都设置为“x”标志,意味着这些程序对于系统中任何用户都是可执行的,而在实际的应用环境中,系统的普通用户只能够执行完成基本任务的一系列可执行程序,而不应有其他特权操作。
为方便系统的管理,还设置了root用户,该用户具有特权,能够执行任何可执行程序并对其执行其他操作。
这种对于可执行程序的保护机制的安全性建立在root用户不会被冒充并熟悉系统各项管理等假设的基础之上,因此,由root用户全权负责系统的管理在一定程度上能够方便系统的管理,并易于使用。
而在实际中,一旦超级用户被攻破或超级用户进程被非法控制,会给系统带来很大的安全威胁和隐患。
2.2 安全策略和设计方案对于高安全等级的操作系统,强制访问控制是必须的。
为了防止用户对可执行程序的滥用,避免不必要的权限扩大给系统带来的安全威胁和安全隐患,需要对用户能够运行的可执行程序进行强制访问控制限制。
该强制性是系统安全管理员通过授权管理工具,根据系统的实际安全需求和威胁进行配置的,即使是系统的超级用户或可执行程序的拥有者也无法改变。
在原型系统中,用户分2级:0级为管理员用户,1级为普通用户;可执行程序也分为2级:0级为特权可执行程序,1级为普通可执行程序。
此外,每个用户具有一个访问控制号(ACL_NUM),每个可执行程序具有一个访问控制字符串(ACL_STRING)。
可执行程序强制访问控制策略为:0级用户可以执行0级和1级的可执行程序,1级用户不能执行0级可执行程序,只能执行在全局资源访问控制链表中级别为1,并且该用户的ACL_NUM和链表中可执行程序ACL_STRING相匹配的可执行程序。
为便于可执行程序管理,在系统中维护了3个可执行程序控制白表:(1)系统最小授权可执行程序白表,定义了每个用户在系统中能够执行的最小的操作集合;(2)用户组最小授权可执行程序白表,在系统中,每个用户隶属于一个用户组,用户组中的每一个用户都继承用户组最小授权可执行程序白表;(3)用户配置可执行程序白表。
在通过授权管理工具成功添加一个新用户后,该用户能够继承系统最小授权可执行程序白表和该用户所隶属的用户组授权最小可执行程序白表,而通过授权管理工具,能够对于用户配置可执行程序白表进行添加、删除以及修改操作,也能够对用户组授权最小可执行程序链表进行修改。
以上3个白表最终合成用户可执行程序白表。
在Linux安全模块初始化时,系统的链表初始化函数读取用户可执行程序白表文件,在系统内存中构造出全局资源访问控制链表,用于程序访问控制的最终判定使用。
2.3 关键数据结构和主要钩子函数作为验证,在Linux2.6.11内核上实现了可执行程序的强制访问控制系统原型,以下是关键数据结构://系统核安全状态数据结构struct Sos_core_sec_state_type {struct list_head * fs_list;void * user_sec_data; };上述结构是系统安全中枢,记录了系统安全信息。
fs_list 为指向文件系统安全状态数据结构队列的指针,在系统中维护一个文件系统安全数据状态结构链表,从而提供对多个不同类型文件系统的支持。
user_sec_data是指向用户安全状态数据结构的指针,这时的系统核安全状态数据结构和一个用户安全状态数据结构相对应。
其中,list_head结构体是Linux 内核源代码中定义的双向链表,该结构体本身不存取任何信息,只是提供给其他结构作为双向链表的接口。
//文件系统安全状态数据结构struct Sos_fs_sec_state_type {struct list_head * file_attr_listhead; };上述结构是添加在内核超级块(super_block)数据结构上的透明安全域,记录了某个文件系统的安全信息,其中file_attr_listhead为指向资源(文件或目录)访问控制链表的指针,该队列形成整个文件系统的访问控制信息列表。
//索引节点安全状态数据结构struct Sos_inode_sec_state_type {unsigned int inode_mac_level;char acl[16];};上述结构是添加在内核索引节点(inode)数据结构上的透明安全域,记录了某个索引节点的安全信息。
其中,inode_mac_level是某个索引节点的访问控制安全级别,即强制访问控制中客体的安全标记,用于判断用户能否访问可执行程序。
acl[16]是一个字符串数组,其中存储了一个128 b 的二进制数,用于维护索引节点的访问控制信息。
//系统用户安全数据结构struct Sos_user_sec_data_type {int user_level;int user_acl_no;};上述结构主要记录用户安全信息。
其中,user_level为用户的安全级别,即主体的安全标记,用于判断用户能否访问—161—某个可执行程序。
user_acl_no是用户的acl号,结合acl[16]用于判断用户是否可以执行某个可执行程序。
所采用的方法如下:如果用户的acl号为n(0<n<128)(在添加用户时确定),并且索引节点的acl[16]中从右数第n位为1,那么允许用户运行该可执行程序,否则不允许执行。
在对用户进行可执行程序授权时,用户可执行程序白表的程序的acl[16]根据用户的acl号置位。
这4个数据结构存在一定的关联。
系统核安全状态数据结构中包括指向文件系统安全数据结构队列的指针和用户安全数据结构的指针,而在文件系统安全数据结构中又维护着索引节点安全属性队列指针。
Linux中的struct linux_binprm用来记录一些在装入新程序时所需的参数和环境变量。
LSM提供了用于控制可执行程序操作的hook函数:bprm_check_security (struct linux_binprm * bprm)该函数在目标程序装载之前进行执行权限检查,这个钩子在一次exec()中可能被调用多次。
原型系统中有2个关键的钩子函数:(1)Sos_post_addmount(),作用是在系统挂载新文件系统时,读取该文件系统的访控文件,并根据访控文件在内存中产生系统安全核状态数据结构;(2)Sos_bprm_check_security(),作用是在用户运行可执行程序前,对用户和可执行程序的安全标签进行比对,并在访问控制链表进行搜索,判断用户是否有权运行该可执行程序,其流程如图2所示。
图2 int Sos_bprm_check_security()流程其关键代码如下:int Sos_bprm_check_security (struct linux_binprm * bprm){//根据inode在访问控制队列中进行查找struct list_head * attr_head;attr_head = find_elem_with_tag(fs_sec_data -> file_attr_listhead, comp_inodeattr_with_ino, & (ino->i_ino));//对应项不为空if(attr_head !=NULL) {//判断用户的acl号是否和可执行程序acl是否一致,若一致,//则不进行控制,否则拒绝执行if(os210_acl_test(user_sec_data -> user_acl_no, inode_sec_data -> inode_acl)){return 0;}else {printk("exec %s denied!\n",bprm->filename);return -EPERM;}//对应项为空,拒绝执行else{printk(" exec %s denied!\n",bprm->filename);return -EPERM;}}在LSM框架下编写了完hook函数后,需要将security_operations结构体内的各个成员(函数指针)指向自己编写的hook函数,即struct security_operations Sos_security_ops = {.bprm_check_security =Sos_bprm_check_security;.sb_post_addmount =Sos_post_addmount;};而后使用register_security(&Sos_security_ops)在LSM框架中注册这些函数。