Unix 功能如何发挥作用?

发布于 2024-12-07 05:06:51 字数 366 浏览 2 评论 0原文

似乎从内核 2.2 开始,他们引入了功能的概念。根据关于功能的 unix 手册页,它说如果您不是 root 用户,您可以通过在每个线程的基础上调用 cap_set_proc 来授予自己功能。那么这是否意味着,如果您正在为 UNIX 编写恶意软件,您是否会授予自己大量功能并危害系统?如果没有,如何授予运行该程序所需的能力?

看来 Unix 的安全模型是相当有缺陷的原始的。我说得对吗?

我将更具体地说:(

当以非 root 用户身份运行时)如何向在不同用户下运行的另一个进程发送信号?在信号手册页上,它说您需要 CAP_KILL 功能才能执行此操作。但是,阅读功能手册页后,我不确定如何授予进程该功能。

it seems that starting kernel 2.2, they introduced the concept of Capabilities. According to the unix man page on capabilities, it says if you're not a root user, you can grant yourself of capabilities by calling cap_set_proc per thread basis. So does this mean that if you're writing a malware for unix, do you just grant yourself bunch of capabilities and compromise the system? If not, how does one grant capabilities required to run the program?

it seems that Unix's security model is quite flawed primitive. Am I getting this right?

I'll go more specific:

How do you (when running as a non-root user) send a signal to another process that is running under different user? On signal man page, it says you need CAP_KILL capability to perform this. However, reading the capabilities man page, I'm not sure how I can grant a process that capability.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尝蛊 2024-12-14 05:06:51

来自 man cap_set_proc

请注意,默认情况下,唯一可以使用 CAP_SETPCAP 的进程是作为内核线程启动的进程。 (通常这包括 init(8)、kflushd 和 kswapd)。您需要重新编译内核才能修改此默认值。

相信我,如果有那么容易,我相信现在已经有人利用它了。与其他操作系统相比,Unix 的安全模型可能很简单,但这并不意味着它有“缺陷”。

From man cap_set_proc:

Please note, by default, the only processes that have CAP_SETPCAP available to them are processes started as a kernel-thread. (Typically this includes init(8), kflushd and kswapd). You will need to recompile the kernel to modify this default.

Trust me if it was that easy I'm sure someone would have exploited it by now. Unix's security model may be simple by comparison to other operating systems, but it doesn't mean it's "flawed".

巴黎夜雨 2024-12-14 05:06:51

这是不可能的。请改用套接字或文件。

it's impossible. Use Socket or File instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文