LSM零知识学习二、Linux内核中的安全模块

这篇具有很好参考价值的文章主要介绍了LSM零知识学习二、Linux内核中的安全模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接前一篇文章:LSM零知识学习一、概念与框架机制

本文内容参考:

《Linux内核安全模块深入剖析》 李志 机械工业出版社

Linux LSM(Linux Security Modules) Hook Technology_weixin_30929011的博客-CSDN博客

Linux Security Module Usage — The Linux Kernel documentation

一、总体概况

前文已提到,LSM的全称为Linux Security Module,字面意思为Linux安全模块。其在Linux内核中体现为一组安全相关的函数,这些安全函数在系统调用的执行路径中会被调用。因此LSM的目的是对用户态进程进行强制访问控制。至于这些安全函数要实施什么样的访问控制,则是由具体的安全模块决定的。截止到2014年,Linux内核主线上有5个安全模块:SELinux、AppArmor、Smack、TOMOYO和Yama(后来又增加了LoadPin、SafeSetID)。用户可以选择哪些安全模块被编译进内核。可以同时有多个安全模块存在于内核中,但是在运行时只能有一个安全模块处于工作状态。

虽然还被称为模块,但实际上自Linux内核2.6.x版本之后,Linux就强制LSM各个模块必须被编译进内核中,不能再以模块的形式存在了。这意味着,在运行时不能再随意加载一个所谓的安全模块作为访问控制机制了,也不能随意卸载一个安全模块了。到2012年时,Linux主线中已经有5个安全模块了。但是除了Yama,其它各个安全模块是运行时互斥的。比如系统中SELinux在工作,Smack就一定不能工作。这时就有人想,能不能让安全模块可以同时工作呢?Smack的负责人Casey Schaufler承担了这项工作。但两年过去了,虽然Casey Schaufler提交了多个patch,但终因安全模块的差异性和系统的复杂性而没有成功。

以下是一段英文,取自于Linux内核文档,与上段文字对应:

The name "module" is a bit of a misnomer since these extensions are not actually loadable kernel modules. Instead, they are selectable at build-time via CONFIG_DEFAULT_SECURITY and can be overridden at boot-time via the "security=..." kernel command line argument, in the case where multiple LSMs were built into a given kernel.

二、各模块简介

  • SELinux

在上文提到的5个安全模块中,SELinux进入内核时间最早。事实上,LSM机制是伴随着SELinux而进入内核的。SELinux是5个安全模块中功能最全最复杂的一个。

SELinux的开发引入了LSM。在2001年,Linus Torvalds拒绝了SELinux直接进入内核主线,他要求把SELinux做成一个相对独立的模块。于是Linux内核安全子领域的开发者实现了LSM机制。LSM机制带来了两个可能:一个是内核代码中多个安全模块并存;另一个是用户或者管理员可以在内核编译和系统启动时选择安全模块。

  • Smack

第二个进入Linux内核主线的是Smack。Smack标榜的是简单,其在安全功能上和安全机制上没有突破。

  • TOMOYO

第三个进入Linux内核主线的是TOMOYO。TOMOYO的长处是易用性,相关管理工具和文档都很完备。

  • AppArmor

第四个进入Linux内核主线的是AppArmor。AppArmor开发得很早,但开发时断时续,结果很晚才进入内核主线。AppArmor也在易用性上下功夫,其长处是很容易对单个应用进行安全加固并且不影响到系统其它部分。

  • Yama

最后一个是Yama。Yama的有趣之处是其只针对某一个安全问题点(ptrace)做工作,其余不管。

通过以上简介可以看到,SELinux之后的模块在系统性安全上没有突破,只在简单性和易用性上下功夫,而且有从系统性全功能安全防护向单个应用安全和单一功能防护上发展的趋势。文章来源地址https://www.toymoban.com/news/detail-685097.html

到了这里,关于LSM零知识学习二、Linux内核中的安全模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web渗透安全学习笔记:2、HTML基础知识

    目录 前言 HTML的标题 段落链接与插入图片 HTML元素 HTML属性 HTML头部 HTML与CSS HTML与JavaScript 表格与列表 HTML区块 布局 HTML表单 HTML与数据库 音频与视频 HTML事件 运行效果:   ———————————————————————————————————————————  ——

    2024年01月21日
    浏览(54)
  • Linux:入门学习知识及常见指令

    操作系统(Operating System)是软件,操作系统的存在是为了让计算机更好用,这是操作系统的根本要义 在计算机内部大致是可以这样进行划分: 操作系统是一款进行软硬件资源管理的软件,具体如何理解这句话? 在C语言学习中我们写的第一个程序一般都是: 从最终效果来看,

    2024年02月15日
    浏览(50)
  • 【网络安全入门】学习网络安全必须知道的100 个网络基础知识

    什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2 OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。 3 什么是骨干网? 骨干网络是集中的基础设施,旨在将

    2024年02月08日
    浏览(53)
  • 现代C++中的从头开始深度学习【1/8】:基础知识

            提及机器学习框架与研究和工业的相关性。现在很少有项目不使用Google TensorFlow或Meta PyTorch,在于它们的可扩展性和灵活性。 也就是说,花时间从头开始编码机器学习算法似乎违反直觉,即没有任何基本框架。然而,事实并非如此。自己对算法进行编码可以清晰而

    2024年02月13日
    浏览(44)
  • Java中的异常语法知识居然这么好玩!后悔没有早点学习

    学习异常后,发现异常的知识是多么的吸引人!不仅可以用来标记错误,还可以自己定义一个异常,用来实现自己想完成的业务逻辑,接下来一起去学习吧 目录 一、异常的概念及体系结构 1.异常的概念 2.异常的体系结构 3.异常的分类  二、怎么处理异常 1.防御式编程 2.异常

    2024年02月04日
    浏览(49)
  • Linux学习(嵌入式硬件知识)

           GPU(Graphics Processing Unit,图形处理单元)和 CPU(Central Processing Unit,中央处理单元)是计算机中两种不同的处理器。它们在功能、设计和用途上有所不同。 CPU(中央处理单元): CPU 是计算机中的主要处理器,负责执行计算机程序中的指令。 CPU 主要用于执行通用计算

    2024年04月27日
    浏览(53)
  • web渗透安全学习笔记:1、入门基础知识/ XXS漏洞

        自编写python渗透工具编写学习笔记专栏以来,笔者便发现了一个较为严重的问题:我们大多数文章都是学习如何用python编写扫描与利用漏洞的渗透工具,却没有真正解析漏洞的形成原因,长此以往我们的学习就只会浮于表面,广而不深。为了改变这一现状,笔者决定以深

    2024年02月03日
    浏览(55)
  • Python 爬虫的学习 day01 ,爬虫的基本知识, requests 和 charde模块, get函数的使用

    1.1什么是网络爬虫 网络爬虫,又称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 1.2  网络爬虫的特点 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万

    2024年02月15日
    浏览(44)
  • 用ChatGPT学习多传感器融合中的基础知识

    该列表会不定期更新… 解答 : 匈牙利算法是解决二分图最大匹配的经典算法之一。其中的增广矩阵路径指的是在当前匹配下,从一个未匹配节点开始,沿着交替路(交替路是指依次经过未匹配点、已匹配点、未匹配点……的路径)不断寻找增广路(增广路是指起点和终点都

    2023年04月16日
    浏览(81)
  • 【Linux学习】信号——预备知识 | 信号产生 | 核心转储

    🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言: 你只管努力,剩下的交给时间! 从生活中入手,例如发令枪,闹钟,红绿灯等等,这些都是信号。信号必须都是 动态 的,像路标就不能称之为信号。 以红绿灯为例,一看到红绿灯我们就知道红灯行,绿灯停,我们不

    2023年04月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包