gpt4 book ai didi

c - 有没有办法修改专有内核模块中的 Linux 系统调用表?

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

我写了一种 SELinux 克隆来监督系统调用的执行,例如 open 和 execve。

结果被 SELinux 证明是一种监控用户所有磁盘访问的安全方法。

代码按以下方式修改系统调用表:

  1. Change the name->address relationship of a syscall
  2. After the change, the syscall name is my own function, which then calls the original syscall.
  3. the original syscall address is protected by address space layout randomization which requires scanning 16 exabytes of data, and the address changes with every reboot.

老把戏,但我发现实现此目的的唯一方法是使用以下代码通过仅导出到 GPL 模块的服务例程:

MODULE_LICENSE("GPL");

有没有办法在没有 GPL 内核模块的情况下发现系统调用表或系统调用地址?

最佳答案

你做错了。系统调用包装是标准的 TOCTOU 错误类工厂。见本文http://www.watson.org/~robert/2007woot/2007usenixwoot-exploitingconcurrency.pdf

事实上,LSM Hook (用于实现 selinux)正是您真正需要的,才能以安全的方式实际运行它。但是覆盖系统调用表中的任何内容都没有用。

关于c - 有没有办法修改专有内核模块中的 Linux 系统调用表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048438/

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