gpt4 book ai didi

linux - 在 LKM 中识别文件正在被复制到计算机外部

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:32 28 4
gpt4 key购买 nike

假设我在 linux-kernel 中插入了 Loadable-Kernel-Module 并且 Hook 了读、写、打开和关闭函数。所以现在我可以停止对任何文件的访问,但我想阻止文件被复制到设备外部,如 USB 设备、卡、磁盘等。我想知道的是,坐在 LKM 中并钩住函数调用怎么能我确定文件正在写入外部设备?

我还想知道在复制操作期间使用了哪些系统调用?我知道程序打开文件从中读取(读取系统调用)然后写入第二个文件(写入系统调用)但是当我试图停止对文件的写访问时我观察到奇怪的行为打开一个进程文件从不调用该文件的写操作来保存文件(已检查 pdf 查看器)。

如果有人知道这种奇怪的行为,或者您知道如何停止写入文件,那么也请分享。

最佳答案

他们可以mmap 它来读/写。或者他们可以将整个原始文件读入内存,关闭它,然后打开目标。

或者他们可以加密文件,然后将其写入 USB 上的新文件。

或者他们可以对内容进行少量编辑,然后将其保存。

或者他们可以使用 gvfs 访问网络/USB 设备。

或者用户可以重新启动并在不同的操作系统中复制文件。


所有真正突出的是这个问题真的很困难——坚定的用户总能找到一种方法从他们有权访问的系统中提取数据。

最好的办法就是防止意外泄漏 - 所以在关闭可移动媒体后扫描文件,并检查它们没有您不想泄漏的内容。如果有则覆盖并删除。

或者首先阻止设备挂载,并同时禁用 gvfs。


至于为什么你的钩子(Hook)没有拦截 write(),要么:

  1. 你的钩子(Hook)实际上并没有拦截操作。
  2. 应用程序未使用 write() 将内容放入文件。

关于linux - 在 LKM 中识别文件正在被复制到计算机外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15643884/

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