lsm

使用 SMACK 防止程序写入 HOME 目录
lsm

使用 SMACK 防止程序写入 HOME 目录

我有一个二进制程序,每次启动时都会在 HOME 目录中创建一个空文件夹。我不喜欢这样并且想使用斯玛克机制来阻止它这样做。我的想法是用 tag 标记 HOME 目录HOME,用 tag 标记程序进程NoWriteHome,然后写三个 SMACK 规则: $ sudo setfattr -n security.SMACK64 -v 'HOME' "/home/${USER}" $ sudo setfattr -n security.SMACK64EXEC -v 'NoWriteHome' "${PATH_TO_EXECUTABLE}" $ ...

Admin

为什么 struct lsm_id 不存在于 Linux 内核源代码树中
lsm

为什么 struct lsm_id 不存在于 Linux 内核源代码树中

我正在编写一个 LSM,并使用我的内核 6.2.0-20-generic 来编译它。当我浏览 /lib/modules/6.2.0-20-generic/build 中的文件时,我可以看到有一个名为 lsm_id 的结构。但是当我检查 Github 中最近的 Linux 源代码树时,我看不到这个结构。我尝试下载不同的版本,但在任何 Linux 内核源代码中都找不到这个结构。 我可以看到今年已经发布了一个补丁,但我不确定为什么我在源代码树中看不到它以及它是如何进入我的 /lib/modules 中的内核源代码的?我想要获得已应用补丁的内核源代码,有什么方法可以...

Admin

在 /proc 文件上设置文件上下文
lsm

在 /proc 文件上设置文件上下文

我想/proc使用 SELinux 尽可能限制对文件的访问。当我尝试 chcon 中的目录时/proc,它失败: $ chcon -t staff_proc_t /proc/acpi chcon: failed to change context of '/proc/acpi' to ‘system_u:object_r:staff_proc_t’: Operation not supported 显然,/proc文件系统不允许直接更改上下文。如何在/proc条目上设置 SELinux 上下文? 如果这是不可能的,我想禁止通过其他方式访问这些文件。我想隐藏...

Admin

拦截系统调用并更改其参数
lsm

拦截系统调用并更改其参数

我有兴趣编写一个内核程序,它可以对系统调用进行所有可能的控制,例如交集、过滤以及更改其参数。 我寻找两个目标: 读取系统调用及其参数,并根据策略决定阻止或允许它们。 有权更改其参数并将其传递给用户。 事实上(我不知道这个寓言是否属实?),我想为一个进程做一些简单的虚拟化,它可以更改其对内核及其系统调用的视图(就像它"/tmp/new_folder/foo.txt"通过打开系统调用请求一个文件一样)然后我们返回"/tmp/another_folder/foo2.txt")。 我坚持认为这需要使用 ebpf 来完成。但如果有其他方式,我会欢迎。 另外,我应该...

Admin

Linux 安全模块 - SELinux/AppArmor
lsm

Linux 安全模块 - SELinux/AppArmor

有人可以向我解释为什么吗SELinux 在 Ubuntu 下正式被破解尽管AppArmor 运行良好? AppArmor 是基于“Linux 安全模块”框架构建的,SELinux 也是如此。这样一来,两者在Ubuntu下不应该都能顺利运行吗? 我可能对“Linux安全模块”框架有错误的理解。 谢谢! ...

Admin

AppArmor 和 SELinux 等 LSM 工具是否被视为 IDS/IPS?
lsm

AppArmor 和 SELinux 等 LSM 工具是否被视为 IDS/IPS?

我知道这是一个奇怪的问题。 IDS/IPS 基本上可以自主识别并选择性地阻止入侵。 尽管 SELinux 和 AppArmor 似乎也在尝试做同样的事情,但它们从未被贴上 IDS/IPS 的标签。我错过了什么吗?这是一个纯粹的学术问题。 此类工具是否会被视为基于主机的 IDS/IPS? ...

Admin

如何在 Debian Buster 上仅重新编译 Linux 内核的特定部分?
lsm

如何在 Debian Buster 上仅重新编译 Linux 内核的特定部分?

我目前正在开发一个Linux安全模块,它存储在security内核源代码树的目录中。当我使用以下命令编译和安装内核时,模块已加载并且一切正常: fakeroot make -j9 -f debian/rules.gen binary-arch_amd64_none_amd64 apt remove linux-image-4.19.0-9-amd64-unsigned dpkg -i linux-image-4.19.0-9-amd64-unsigned_4.19.118-2_amd64.deb 但是,如果我对模块进行更改并使用上面的命令重建内核,它...

Admin

LSM Hooks - inode hooks 和 path hooks 之间有什么区别
lsm

LSM Hooks - inode hooks 和 path hooks 之间有什么区别

下面有两组LSM钩子inode 操作的安全挂钩:inode_* 和path_*。其中许多看起来都一样。例如,inode_link 和path_link。 inode 和路径钩子有什么区别?每种应该什么时候使用? ...

Admin

SELinux 与 AppArmor 的适用性
lsm

SELinux 与 AppArmor 的适用性

我正在阅读一些有关 LSM 实现的入门知识,因此最终我会深入研究AppArmor和SELinux。 我知道这次讨论但这并没有清楚地解释我对这两个 LSM 实现的一个疑问: 事实是否是这样的: SELinux 必须在系统范围内应用(因此auto-relabeling首次启动的过程需要与文件系统扫描一样多的时间) AppArmor 提供了仅针对您想要的进程/脚本定义策略的灵活性? - 通过交互式审核流程) (?) ...

Admin

在 Linux 中启用 AppArmor
lsm

在 Linux 中启用 AppArmor

我已经编译了一个内核(linux-libre-xtreme)这个配置,它启用了大多数 LSM:YAMA、SMACK、AppArmor、TOMOYO 和 SELinux。但是,当我使用 OpenRC 启动 apparmor 服务时,我得到: # rc-service apparmor start * Stopping AppArmor ... * Unloading AppArmor profiles * Root privileges not available ...

Admin

是MAC还是DAC
lsm

是MAC还是DAC

我在查看 LSM 属性/上限实现的实用程序或使用时遇到问题。 我整理了一些伪代码片段来尝试表达我的担忧和问题。它是根据 (p 3) 中的图表建模的 https://www.kernel.org/doc/ols/2002/ols2002-pages-604-617.pdf 内核访问检查(大约)和 LSM 调用: DAC op:__? // ? what operation would pass a DAC check yet not the LSM hook ? file:___ perms: u.. g.. o.. euid:100 egid:...

Admin

Selinux inode 安全结构分配
lsm

Selinux inode 安全结构分配

我试图了解inode_security_structSelinux 中的分配。我查找了selinux的源代码,这个结构体只有一个分配在 hooks.c 文件的第 230 行。此分配位于创建 inode 时调用的 LSM 挂钩中。 我的问题是Selinux如何分配在selinux init之前创建的inode? 谢谢。 ...

Admin

为什么 POSIX IPC API 中没有 LSM 挂钩?
lsm

为什么 POSIX IPC API 中没有 LSM 挂钩?

据我了解,Linux 安全模块(LSM)框架有许多钩子,它们是安全模块的回调,用于注册在安全敏感操作之前执行额外安全检查的函数。 大多数时候,这些钩子被放置在访问内部数据结构(如file. 我不明白的一件事是为什么 System V IPC API 中有钩子,但相应的 POSIX API 中没有。例如,有security_ipc_permission一个钩子被描述include/linux/lsm_hooks.h为“影响所有 System V IPC 操作”,还有几个专门针对每个 API(例如消息队列)的钩子,但没有与 POSIX API 对应的钩子。手...

Admin

ebpf:从用户空间发送数据并等待
lsm

ebpf:从用户空间发送数据并等待

我正在使用 ebpf 和 bcc 编写 ebpf-lsm 程序。我想阻止已连接的 USB 设备并将其信息发送到用户空间,并且无论我是否绑定该设备,用户都会向我发送信息。 我怎样才能做到这一点?我知道使用 ebpf 映射我们可以从用户空间接收数据,那么我该如何等待呢?换句话说,如何阻止 ebpf 程序直到用户响应? 感谢您的指导! ...

Admin