| Linux内核Capability LSM模块进程特权信任状本地权限提升漏洞 (Linux,缺陷) |
| 涉及程序: |
| Linux内核程序 |
| 描述: |
| Linux内核Capability LSM模块进程特权信任状本地权限提升漏洞 |
| 详细: |
| Linux Kernel是开放源代码操作系统Linux的内核。 Linux Kernel在处理Capability模块实现时存在问题,本地攻击者可以利用这个漏洞提升权限。 当特权操作由Capability LSM 模块控制时,系统基于进程信任状(creds)来仲裁特权操作。当Capability未被编译进内核时,内核使用默认的安全模块(security/dummy.c)仲裁特权操作,机制非常简单,仅仅检查进程euid、fsuid(进行文件系统相关特权操作时)是否为0。在这种情况下,dummy模块根本不关心进程的信任状,每个进程的信任状都拷贝其父进程的信任状。追根溯源,每个进程的信任状无论进程用户是否为超级用户,最终都拷贝Init进程的信任状,信任状中包含有超级用户进程的所有权能。在根据用户ID进行特权判断情况下,此错误未被激发。但在插入Capability模块后,特权机制转为根据进程信任状进行判断,而此前存在的任何进程的信任状都与Init进程一致,导致这些进程都具有超级用户root的特权。此错误的本质是装载Capability模块时没有对已有进程的信任状按Capability机制的要求进行重新计算。试验表明,此错误出现在2.6.* Linux内核中。 <*来源:liangbin (liangbin@venustech.com.cn) 链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110384535113035&w=2 *> 受影响系统: Linux kernel 2.6.9 Linux kernel 2.6.8 Linux kernel 2.6.7 Linux kernel 2.6.6 Linux kernel 2.6.5 Linux kernel 2.6.4 Linux kernel 2.6.3 Linux kernel 2.6.2 Linux kernel 2.6.1 Linux kernel 2.6 |
| 攻击方法: |
| 以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负! 当Capability模块未被编译进内核时,(如果已经编译进内核,须disable相应编译选项后重新编译内核)。在装载Capability模块前,以普通用户身份允许一个vim编辑器,在vim种输入命令: :r /etc/shadow vim 将回应 “can't open file /etc/shadow”,这个访问root文件操作的操作被拒绝。 不要终结vim,转到其它控制台以root身份登录,插入Capability模块: #modprobe capability 在模块被转载后,回到vim中再次尝试打开shadow文件,将发现能够以普通用户读写并且保存(w!)shadow文件!根本的原因是vim进程的信任状中包含了权能CAP_DAC_OVERRIDE和CAP_DAC_READ_SEARCH,因而能够进行超越访问控制策略的特权操作。 使用以下命令可查看vim的信任状: $cat /proc/2454/status (2454 是vim进程的pid) Name: vim State: S (sleeping) SleepAVG: 91% Tgid: 2454 Pid: 2454 PPid: 1552 TracerPid: 0 Uid: 500 500 500 500 Gid: 500 500 500 500 FDSize: 256 Groups: 500 VmSize: 9356 kB VmLck: 0 kB VmRSS: 2728 kB VmData: 856 kB VmStk: 16 kB VmExe: 1676 kB VmLib: 3256 kB Threads: 1 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 8000000000003000 SigCgt: 00000000ef824eff CapInh: 0000000000000000 CapPrm: 00000000ffffffff CapEff: 00000000fffffeff 最后3行即是vim的信任状,可以看到它具有除了CAP_SETPCAP外的所有Capability权能。 以上测试在 2.6.* 和2.5.72-lsm1中通过。 |
| 解决方案: |
| 临时解决方法: 如果您不能立刻安装补丁或者升级,CNNS建议您采取以下措施以降低威胁: * 第三方补丁如下: 在 security/capability.c中加入以下代码 static void recompute_capability_creds(struct task_struct *task) { if(task->pid <= 1) return; task_lock(task); task->keep_capabilities = 0; if ((task->uid && task->euid && task->suid) && !task->keep_capabilities) cap_clear (task->cap_permitted); else task->cap_permitted = CAP_INIT_EFF_SET; if (task->euid != 0){ cap_clear (task->cap_effective); } else{ task->cap_effective = CAP_INIT_EFF_SET; } if(task->fsuid) task->cap_effective &= ~CAP_FS_MASK; else task->cap_effective |= CAP_FS_MASK; task_unlock(task); return; } 并且在已有capability_init 函数在其返回前加入以下代码: struct task_struct *task; read_lock(&tasklist_lock); for_each_process(task){ recompute_capability_creds(task); } read_unlock(&tasklist_lock); return 0; 厂商补丁: Linux ----- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.kernel.org/ |
相关推荐
概率论—期末复习速成笔记(自用)
概率论期末复习
Linux必备知识——开发必备(实时更新)
tail -f 文件
我用 AI Agent 全自动跑 COMSOL 仿真:从建模到后处理,踩了 10+ 个深坑
本文探讨了利用AI通过COMSOL Java API实现AI芯片液冷冷板全流程自动化仿真的实践。针对700W高功耗AI芯片的散热需求,构建了包含4颗Chiplet和微通道冷板的三维液冷模型。通过严格设计的Prompt工程,AI Agent成功完成了从几何建模到结果验证的全过程,最终实现了芯片最高温度54°C的良好散热效果。文章重点分享了10个关键问题的解决经验,包括流体连通性验证、网格顺序控制、离散阶数选择、收敛判据优化等,并建立了包含流场/热场/网格独立性的三重验证体系。实践表明,AI可高效处理重复性工作
Linux安全体系的文件权限管理
<br /><br />自主访问机制(Discretionary Access Control,DAC) 指对象(比如程序、文件或进程等)的的拥有者可以任意的修改或授予此对象相应的权限。Linux的UGO(User、Group、Other)和ACL(Access Control List,访问控制列表)权限管理方式就是典型的自主访问机制。<br />Linux支持UGO和ACL权限管理方式,UGO将权限位信息存储在节点的权限中,ACL将权限位信息存储在节点的扩展属性中。不同的文件系统权限位的存储和处理方式不
Stable-Baselines3性能优化:多环境训练对比指南(DummyVecEnv vs SubprocVecEnv)
本文深入对比了Stable-Baselines3中DummyVecEnv与SubprocVecEnv两种向量化环境的性能差异与应用场景。DummyVecEnv适用于轻量级、步进快的环境,调试友好且开销低;而SubprocVecEnv则通过真正的多进程并行,能显著加速计算密集型环境的训练。文章通过基准测试与决策树,指导开发者根据环境计算成本、CPU核心数等关键因素做出最优选择,以实现训练效率最大化。
解密网页视频Blob链接:从防盗链到流媒体分片技术
本文深入解析了网页视频中Blob链接的工作原理,揭示了其作为现代视频防盗链与流媒体分片技术核心的本质。文章详细阐述了Blob对象与Media Source API如何协同工作,将视频数据分片传输,并结合HTML5的video元素实现安全、流畅的播放体验,有效提升了资源保护能力。
Linux能力机制
Linux能力机制早期linux上信任状模型非常简单,就是"超级用户对普通用户"模型。普通用户的很多操作需要root权限,这通过setuid实现。如果程序编写不好,就可能...
Python+Seaborn可视化:双因素方差分析结果这样呈现更专业
本文详细介绍了如何利用Python中的Seaborn和statsmodels库,专业地执行并可视化双因素方差分析结果。通过模拟实验数据,演示了从模型构建、统计检验(包括交互作用分析)到诊断验证的全流程。重点展示了如何使用Seaborn绘制交互效应图、组合分布图及热图,将复杂的统计结果转化为直观、富有洞察力的可视化图表,助力科研论文与商业报告的专业呈现。
Linux 0号进程的建立
目录进程的内核表示进程0的创建进程0的运行 0号进程在内核中是一个比较特殊的进程,因为它是静态创建的,不是通过do_fork()创建的。所以从0号进程出发有助于理解一个进程的创建需要为它准备好哪些条件。 进程的内核表示 进程可以简单理解为Linux操作系统中的一个运行实体,在内核中用数据结构task_struct表示,这个结构体表示了进程运行时所需要的所有信息,所以这是内核中较为复杂的一个结构体,基于我们此篇文章所需要表达的知识,我们重点介绍下该结构体的成员thread_info,这个成员所分配的内存空间与
基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发
PCL+QT开发
VCAST创建单元测试工程
选择工作目录,后面创建胡UT工程将会生成到这个目录。
Linux 权能综述
为了执行权限检查,传统的 UNIX 实现区分两种类型的进程:特权进程(其有效用户 ID 为0,称为超级用户或 root),和非特权用户(其有效 UID 非0)。特权进程绕过所有的内核权限检查,而非特权进程受基于进程的认证信息(通常是:有效 UID,有效 GID,和补充组列表)的完整权限检查的支配。 自内核 2.2 版本开始,Linux 将传统上与超级用户关联的特权分为几个单元,称为 capabil
华为OD技术面真题 - JAVA开发 - 1
汇总华为OD技术面八股JAVA八股,高频技术真题并提供详细解答。
[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特
[安全通告]通告:[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特权信任状本地权限提升漏洞分类:设计错误日期:12/20/2004CVE编号:NO受威胁的系统: Linux kernel 2.6.*未受威胁的系统:1.漏洞描述当POSIX权能(Capability)LSM未被编译进内核时,在插入Capability模块(commoncap.ko
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
容器的“信任幻觉”:深入解析容器逃逸风险与纵深防御
容器技术(如Docker)依赖共享内核实现隔离,但内核漏洞或配置错误可能导致容器逃逸。本文剖析四大攻击向量:内核漏洞利用、不安全的内核子系统交互(如CVE-2022-0492)、特权容器和危险挂载,并提出纵深防御方案:1)无根容器(Rootless)降低逃逸危害;2)AppArmor/SELinux限制容器行为;3)Seccomp过滤危险系统调用;4)Capabilities剥离非必要权限。通过多层防护,平衡容器化敏捷性与安全性。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
linux lsm实现进程白名单,linux安全模块学习之LSM的介绍实现
原标题:linux安全模块学习之LSM的介绍实现文章来自公众号:睿江云计算相关背景介绍近年来Linux系统由于其出色的性能和稳定性,开放源代码特性带来的灵活性和可扩展性,以及较低廉的成本,而受到计算机工业界的广泛关注和应用。但在安全性方面,Linux内核只提供了经典的UNIX自主访问控制(root用户,用户ID,模式位安全机制),以及部分的支持了POSIX.1e标准草案中的capabilities...
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
[转载] Linux的capability深入分析
[转载] Linux的capability深入分析 一)概述: 1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作. 2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概
linux系统利用可执行文件的Capabilities实现权限提升
一、操作目的和应用场景 Capabilities机制是在Linux内核2.2之后引入的,原理很简单,就是将之前与超级用户root(UID=0)关联的特权细分为不同的功能组,Capabilites作为线程(Linux并不真正区分进程和线程)的属性存在,每个功能组都可以独立启用和禁用。其本质上就是将内核调用分门别类,具有相似功能的内核调用被分到同一组中。 这样一来,权限检查的过程就变成了:在执行特权操作时,如果线程的有效身份不是root,就去检查其是否具有该特权操作所对应的capabilities,并以此为
Linux学习笔记 - 程序的执行(一)
进程用来表示正在运行的一组程序竟争系统资源的行为。程序和进程之间的联系,表现在如何在程序文件的内容上建立起进程执行上下文。除了把一组指令装入内存并让CPU执行外,内核还须灵活处理以下几方面的问题: 不同的可执行文件格式。 共享库:很多可执行文件并不包含执行程序所需的所有代码,而是期望内核在运行时从共享库中加载函数。 执行上下文的其他信息:这包括程序员熟悉的命令行参数与环境变量。
Linux安全模块(LSM)简介
Linux安全模块(LSM)简介 2009-07-11 11:36中国IT实验室佚名 关键字:Linux技巧 Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架。本文介绍Linux安全模块(LSM)的相关背景,设计思想,实现方法;并说明如何使用Linux安全模块(LSM)来增强Linux系统的...
Linux的capability深入分析
Linux的capability深入分析 from:https://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html 一)概述: 1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念...
debian 安装vsftpd
----------------------------------------------------------------------------------------------------------- 虚拟用户登录(使用db4.8数据库文件) ------------------------------------------------------------------
linux2.6.36内核配置笔记
1、解压飞凌自己的内核linux2.6.36到/home/ok6410中: root@ubuntu:/mnt/hgfs/FORLINX_share/OK6410/Linux-2.6.36# tar zxvf FORLINX_linux-2.6.36.2.tar.gz -C /home/ok6410/ 2、在/home/ok6410/linux-2.6.36.2-v1.05中,查看配置文件ls
selinux 学习笔记一(LSM在kernel中的实现)
LSM(linux security module)作为一个单独模块,通过在kernel编译过程中的编译flag:CONFIG_SECURITY 控制是否启用该模块中定义的安全相关的功能。具体配置信息见:kernel/linux-4.9/security/Kconfig 当在编译阶段打开该配置开关,kernel中的用于管理各个进程的task_struct对象会增加一个安全相关的引用。如下所示: k...
linux capability 权限控制
http://www.ibm.com/developerworks/library/l-posixcap.html Some programs need to perform privileged operations on behalf of an unprivileged user. For instance, the passwd program writes to the ver
2万+



被折叠的 条评论
为什么被折叠?



