gpt4 book ai didi

linux - 依靠/proc/[pid]/status 来检查另一个进程的身份

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:40 27 4
gpt4 key购买 nike

最近我发现需要检查我的服务通过 IPC 与之交互的进程是否有足够的特权来执行某些事务。关于进程的唯一信息是它的 pid,我确信这个 pid 不是假的(IPC 足够可靠,可以保证这一点)。我需要检查进程是否具有特定的 uid 或 pid 或者是某个补充组的成员,然后才允许事务。为此,我读取了进程的/proc/[pid]/status 条目,解析 Uid/Gid/Groups 行并采取相应的行动。

我的问题是,这种检查进程标识的方法是否足够可靠,如果不够可靠,它可能会在哪里失败?我担心流氓进程可能会以某种方式伪造我的服务对其/proc/[pid]/status 或类似内容的看法。我是不是太偏执了,还是真的需要考虑?

注意:我之所以选择这种方法,是因为我无法找到另一种方法来在 Linux 中获取另一个进程的身份。如果有人也能启发我,我会很高兴。

最佳答案

一个古老但仍然很好的攻击是找到一种方法来强制目标进程退出,可以通过信号或通过某种错误。然后通过 fork 快速用新进程淹没 PID 空间,直到攻击者获得正确的 PID。

每次检查/proc/pid/status 确实使这更难,但它仍然是可能的。

成功的攻击看起来像这样:

服务器1234监听
客户端检查 1234 有服务器 UID -> True
恶意杀掉Server 1234,启动32000个新进程
客户端使用恶意 1234 进行 IPC

关于linux - 依靠/proc/[pid]/status 来检查另一个进程的身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com