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 引 言
- 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框架中注册这些函数。