我正在开展一个我将运行潜在恶意代码的项目。它的基本组织是主进程和从进程。从属进程运行潜在的恶意代码,并启用了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域套接字,在seccomp继续之前打开它,然后只使用write()调用。这也没有用。如果有人对如何解决这个问题有任何建议,请发布!我在C中看到过类似
的代码seccomp_add_rule(stuff)
但是我在使用cffi模块在Python中使用它是不成功的。
答案 0 :(得分:0)
sys.stdin
不是文件句柄,您需要在调用set_seccomp
之前打开它并获取文件句柄。您可以使用os.fdopen
。 stdin / stdout的文件描述符可用作sys.stdin.fileno()
。