基于 Jenkins 搭建针对内核的 CI

背景简述 目标内核分支:4.4、4.18、4.19、5.10 根文件系统:最后一版非 Stream 的 CentOS 8 架构概述: 制作一份统一的原始 rootfs 镜像; 为每个内核版本各自设立一个 Job,各自拷贝一份原始 rootfs 运行 VM,随后在 VM 内执行编译内核、安装内核、运行测试套以及其他特定内核版本所需的动作。 Jenkins 配置手册 使用清华开源镜像站 。 Jenkins 有普通版(每周一更)和 LTS 版(每 12 周一更),安装包(以 Ubuntu 为例)在清华源上分别保存在 debian/ 和 debian-stable/ 上。下载下来直接安装即可,不用配 apt 啥的,主要是网络代理太麻烦。 安 …

LSM 启动过程

要使能一个 LSM 有两个步骤: 1、该 LSM 的编译选项被打开 各 LSM 代码中都会使用 DEFINE_LSM() 在内核中创建该模块。这个宏的定义如下: 1// include/linux/lsm_hooks.h 2 3#define DEFINE_LSM(lsm) \ 4 static struct lsm_info __lsm_##lsm \ 5 __used __section(".lsm_info.init") \ 6 __aligned(sizeof(unsigned long)) 其实就是创建了一个 struct lsm_info 的实例, …

LSM 的 Security Blob 机制

Linux 内核主线相关补丁: 1ecd5f82e05dd LSM: Infrastructure management of the ipc security blob 2019bcca4626a Smack: Abstract use of ipc security blobs 37c6538280ae9 SELinux: Abstract use of ipc security blobs 4f4ad8f2c4076 LSM: Infrastructure management of the task security 5afb1cbe37440 LSM: Infrastructure management of the …

CVE-2021-43057 分析

0x00 基本信息 信息总览:NVD 链接 漏洞披露:bugs.chromium.org 漏洞评估:CVSS 7.8 上游补丁:链接 0x01 详细描述 在 selinux_ptrace_traceme 函数(即 SELinux 对 PTRACE_TRACEME 的 LSM 接口的实现)中发现一个 Use-After-Free 问题,该问题是由于错误地尝试获取其他内核任务的*主体凭证(Subjective Credential)*而导致的。具体情况如下: 原先在 SELinux 中,有个函数 task_sid() 可以获取一个内核任务的*客体凭证(Objective Credential)*所对应的 SID,但却被用在了一些应该使用 …

关于 SELinux 的宽泛介绍

尚未完工。但鉴于总是要查 SELinux 的笔记,所以决定先行放出。 访问控制 Linux 操作系统上有两种访问控制:自主访问控制(Discretionary Access Control,DAC)和强制访问控制(Mandatory Access Control,MAC)。讨论两者的异同之前,需要明确几个概念: 用户(user):人(碳基高等灵长类生物) 主体(subject):OS 中以某用户身份执行的进程 客体(object):OS 中的各种资源(如文件、sockets、设备等) DAC 的策略是由资源的所有者来决定他人对该资源的访问权限。标准 Linux 安全是一种 DAC:文件的所有者可以对文件的读、写、执行权限进行设定;其 …