Landlock:一种新型Linux安全模块

一.Landlock简介
  Landlock是一种Linux安全模块(Linux Security Module),其开发目的在于限制进程的权限,它允许进程创建沙箱(如:容器)作为安全层并在其内部定义安全规则,进程受安全规则的限制。如此,沙箱可以帮助减轻用户空间应用程序中bug或恶意行为(如进程被远程挟持)产生的安全影响。目前,landlock已发行到v18版本。

二.LSM框架
  LSM框架(Linux Security Module)是Linux中一种轻量级通用访问控制框架,用于限制进程所能获得的权限,以避免在进程受到攻击时,攻击者挟持进程,利用进程权限危害系统安全。其实现的基本原理在于:LSM框架在内核函数中定义了大量的钩子函数,当进程需要进行系统调用等特权操作时,位于执行路径中的钩子函数将被触发,钩子函数中的函数指针链将指向具体的权限控制函数,并返回进程是否具有相应的访问权限的结果。由于钩子函数事先被嵌套在内核中,Linux安全模块开发者只需要实现钩子函数所指向的权限判断部分。
  基于LSM框架的Linux安全模块如SELinux、AppArmor、Yama等,均是在LSM框架下挂载不同的安全模块函数实现的。由于一个钩子函数可挂载多个函数指针并依次执行,Linux多种安全模块原则上是可以共存的。使用时,Linux安全模块以内核可加载模块的形式实现,可以根据自己实际需求进行选择。

三.Landlock设计原则
  Landlock的目标是创建有范围的访问控制。为了强化整个系统,这个特性应该对任何进程可用,包括没有特权的进程。因为这样的进程可能会被破坏或隐藏(即不可信),所以从内核和其他进程的角度来看,Landlock的特性必须是安全的。因此,Landlock的接口必须暴露一个最小的攻击面。
  Landlock被设计为在遵循由其他访问控制机制(如DAC, LSM)实施的系统安全策略的同时,可被非特权进程使用。事实上,Landlock规则不会干扰对系统实施的其他访问控制,只会增加更多的限制。
  任何用户都可以在其进程上强制使用Landlock规则集。它们根据继承的约束进行合并和计算,以确保只能添加更多的约束。

四.Landlock基本原理与结构
——Landlock结构
  如下图所示,Landlock基本原理与LSM框架相同,都是通过触发内核路径上的钩子函数,定向到具体的权限检查逻辑,根据结果判断是否允许执行。Landlock在内核路径中自己定义了一套Landlock钩子函数,没有使用LSM框架的钩子函数,这使得Landlock可以很好的与其他基于LSM框架开发的Linux安全模块兼容。
  在具体权限判断部分,基于LSM框架的Linux安全模块使用规则比对的方法,规则只能由管理员权限制定。Landlock使用eBPF的方式,允许进程将规则代码注入内核中执行,这使得进程可以自主的为自己的行为制定规则,而不依赖管理员权限,同时,以程序嵌入的方式制定规则,相当灵活且细粒度。
  因此相较于其他的Linux安全模块,Landlock具有兼容性、细粒度、嵌入式程序规则、非特权使用等优点。

——恶意策略控制
  Landlock遵循最小权限集合的原则,通过减少内核修改、执行静态eBPF代码分析、将内核复杂逻辑移到eBPF代码层面解决,等手段来限制内核攻击面。

——继承关系
  每个新进程都将严格从其父进程继承Landlock限制,子进程只能在父进程限制的基础上使用Landlock进一步强化自身。因此在进程沙箱内部,相关的安全策略将在该线程的所有后代上执行,这允许为每个应用程序创建独立的和模块化的安全策略。

五.Landlock问题与前景
——Landlock仍存在的问题:
  Landlock可以限制对常规文件和目录的访问。但一些特殊的文件系统不受限制,如:通过/proc/self/fd/对一些用户不可见的文件系统(如管道、套接字)的访问等。
  在处理父子进程继承而产生的规则嵌套时,正确的处理多重规则集意味着从父级继承规则集限制到文件层次结构,由于文件由其层次结构标识和限制,将文件从一个目录移动或链接到另一个目录意味着去传播这一层级的约束,为了防止通过重命名或链接而导致的权限升级,并且为了简单起见,Landlock目前限制对同一目录的链接和重命名。
  此外在实际使用过程中,注入内核中的代码需要经过严格的审查,这将限制代码所能执行的功能,且相较于规则比对,eBPF注入内核程序的方式在编写规则时会更复杂,处理实际复杂问题的表现有待证实。
——Landlock应用前景
  容器技术为应用开发提供了很多便利,然而其安全问题成为推行容器化的阻碍,由于容器进程的特殊性,传统的基于LSM框架开发的Linux安全模块需要管理员权限来使用,限制了容器使用LSM特性保卫自身。Landlock非特权进程可使用的性质很好的符合了容器技术的特点,同时,Landlock可与其他Linux安全模块兼容,具有良好的兼容性,目前Docker公司也在推动此类新开发的适用于容器的LSM框架的进展,为容器提供更好的安全性保护。

Landlock:一种新型Linux安全模块相关推荐

  1. Linux断点方法,一种基于Linux问题断点的定位方法及系统与流程

    本发明属于Linux断点解决技术领域,涉及一种基于Linux问题断点的定位方法及系统. 背景技术: 在Linux的日常测试过程中,经常会遇见一些未知的原因下系统启动过程中突然出现的宕机,黑屏等现象.导 ...

  2. linux 修改bios信息,一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法及系统_2017103901253_权利要求书_专利查询_专利网_钻瓜专利网...

    1.一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法,其特征在于: 步骤101,启用IPMI服务: 步骤102,BIOS Setup选项使能设置: 步骤103,修改BIOS选项当前值与 ...

  3. 无法检测的新型 Linux 恶意软件利用 Dogecoin API 攻击 Docker 服务器

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 虽然Linux 恶意软件曾位于恶意软件生态系统的边缘位置,但如今每周都会发现新型 Linux 威胁. Intezer 实验室发布报告称 ...

  4. 2011年至2019年制造的 AMD 处理器均易受两种新型攻击

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周,奥地利格拉茨技术大学和法国雷恩大学的六名研究人员表示,2011年至2019年制造的 AMD 处理器易受两种新型攻击的影响.它们影响 ...

  5. matlab的单项悟空整流,一种新型单相脉冲整流器的MATLAB仿真研究

    一种新型单相脉冲整流器的MATLAB仿真研究 摘要:给出了一种新型的脉冲整流器,详细地介绍了其工作原理和控制方案,并对该整流器及其控制系统建立了MATLAB仿真模型,仿真结果验证了该方案的优越性. 关 ...

  6. linux 网络监控 邮件,一种基于Linux的邮件监控方法与流程

    本发明涉及计算机安全技术领域,具体地说是一种实用性强.基于Linux的邮件监控方法. 背景技术: 随着计算机的普及以及人们对个人信息安全的重视,如何保障计算机乃至个人信息的安全成为了一个至关重要的问题 ...

  7. linux 目录防篡改,一种基于Linux虚拟文件系统的防篡改方法及系统的制作方法

    一种基于Linux虚拟文件系统的防篡改方法及系统的制作方法 [技术领域] [0001]本发明涉及文件防护技术领域,特别涉及一种基于Linux虚拟文件系统的防篡改方法及系统. [背景技术] [0002] ...

  8. linux内核不能识别u盘分区,一种在Linux内核中识别特定USB大容量存储设备的方法及系统与流程...

    本发明涉配usb设备识别技术领域,特别是涉及一种在linux内核中识别特定usb大容量存储设备的方法及系统. 背景技术: 在linux系统下对usb设备进行管控,一般而言有两种方法,一种是阻断新插入设 ...

  9. 一种新型分割图像中人物的方法,基于人物动作辨认

    想要进行图像分割,传统方法是先检测图中物体,在进行分离.在本文中,来自清华大学.腾讯AI研究室和英国卡迪夫大学的研究者们提出了一种新型分割图像中人物的方法,基于人物动作辨认.以下是论智对原文的编译. ...

  10. 【Linux CPUFreq模块】

    Linux CPUFreq模块 CPUFreq 简介 模块架构 代码 CPUFreq 核心数据结构 CPUFreq governor核心数据结构 cpufreq notifiers CPUFreq C ...

最新文章

  1. 世界级Linux技术大师首次公开大量技术内幕
  2. memcache的分布式缓存问题
  3. Redis总结(二)C#中如何使用redis
  4. linux 系统的内核,[科普] Linux 的内核与 Linux 系统之间的关系
  5. HDU 2993 MAX Average Problem(斜率优化DP)
  6. python三维数据图_matplotlib中三维数据的热图
  7. UVA 1584 环状序列
  8. 苹果手机怎么在照片上添加文字_不管用什么手机,这样操作一下,就能直接给照片添加文字...
  9. 设计一图书信息管理系统,实现以下功能:系统以菜单方式工作,图书信息录入功能(图书信息用文件保存) ;
  10. Outlook设置新folder location后无法显示default view的解决方案
  11. matlab 函数pdf怎么用_PDF文档怎么进行批量旋转?调整页面用迅捷PDF转换器
  12. word 文本差异比较
  13. 58 Hive案例(访问时长统计)
  14. 基于微信小程序的体育课评分系统小程序
  15. python中cv2、Image和plt的图片打开、显示和保存
  16. 运动世界校园显示服务器开小差,你的跑步成绩无效,是否申请成绩异常?
  17. HashMap为什么用红黑树而不用跳表?redis的zset为什么用跳表而不用红黑树?
  18. 人工神经网络原理及应用,人工神经网络教程PDF
  19. dell 720 raid 配置
  20. NB-Iot烟感04:BC26模块原理图设计

热门文章

  1. Fluent动网格知识汇总
  2. 计算机网络标准化相关组织
  3. python文件粉碎传输_如何自己实现文件粉碎机?
  4. 计算机的网络命令大全,windows常用网络命令图文详解
  5. ruby通过ftp下载文件
  6. 【重要更新】TX Text Control ActiveX X16发布 | 附下载
  7. pmp知识点(8)-项目质量管理
  8. 阿帕奇服务器查看本地网页,如何在Apache Web服务器上查看当前连接?
  9. Windows漏洞补丁更新网址
  10. 牛顿迭代法的图像推导思路以及代码