我正在做一个项目,我将在其中运行潜在的恶意代码。它的基本组织是有一个主进程和一个从进程。从属进程运行潜在的恶意代码,并启用了 seccomp。
import prctl
prctl.set_seccomp(True)
这就是 seccomp 的开启方式。我可以从奴隶到主人很好地沟通,但反过来不行。当我不打开 seccomp 时,我可以使用:
import sys
lines = sys.stdin.read()
或类似的规定。我发现这很奇怪,考虑到 seccomp 的默认参数,我应该可以进行读写,尤其是对于 stdin/out。我什至尝试在打开 seccomp 之前打开 stdin。例如。
stdinFile = sys.stdin
prctl.set_seccomp(True)
lines = stdinFile.read()
但还是无济于事。我也试过 readlines() 不起作用。一位朋友建议我尝试 Unix Domain Sockets,在 seccomp 继续之前打开它,然后只使用 write() 调用。这也不起作用。如果有人对如何解决这个问题有任何建议,请发表!我在 C 中看到了一些代码,例如
seccomp_add_rule(stuff)
但是我在 Python 中通过 cffi 模块使用它并没有成功。