问题标签 [seccomp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 为什么 seccomp 进程总是被杀死?
为什么进入 seccomp 模式的进程总是在退出时被杀死?
c - SECCOMP:如何模拟 malloc、realloc 和 free?
我想在我的服务器上执行任意(可能很危险)的二进制文件。因此,我习惯objcopy
将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小型 main 函数中,该函数设置适当的值并在调用 other_main 之前RLIMIT_CPU
切换标志。SECCOMP
到目前为止,我对这个解决方案非常满意。
现在的问题是,第 3 方程序代码可能包含一些对 malloc 的调用,这些调用可能会立即终止程序(不允许使用 sbrk)。因此,我想在设置SECCOMP
malloc / realloc / calloc / free 之前预先分配一些合理大小的数组(例如 20MB)。不幸的是,我不知道如何归档最后一步。我必须自己实现所有这 4 个功能吗?如何将我自己的函数注入到 stdlib(例如,当 printf 在内部调用 malloc 时会发生什么?)。
security - 沙盒能否减轻缓冲区溢出的影响。
我必须对沙盒过程进行一些研究。但我无法理解沙盒如何减轻缓冲区溢出。假设我有我的服务器应用程序(一个 FTP 服务器),它受到可以远程利用的缓冲区溢出的影响。
沙盒作为 Vx32,Janus ostia 如何阻止注入代码访问文件系统?
windows - 是否有适用于 Windows 的 seccomp 模拟
是否有类似seccomp的东西可以在 Windows 上运行?
它应该将所有系统调用限制在一些非常有限的集合中,比如只读取和写入已经打开的文件。
被描述为 Chromium 沙箱的那个看起来不像 Seccomp,因为它基于通常的文件权限和 Windows 安全对象,而不是限制对系统调用的访问。
c - 抑制“错误的系统调用”消息
如此处所述,使用 seccomp 过滤器,我们可以在运行 example.c 文件时阻止特定的系统调用。
该进程将终止并打印“Bad system call”消息:
我想压制消息。
即使这样也无济于事:
linux - seccomp-bpf 如何过滤系统调用?
我正在研究 seccomp-bpf 的实现细节,这是从 3.5 版开始引入 Linux 的系统调用过滤机制。我从 Linux 3.10 查看了 kernel/seccomp.c 的源代码,想问一些关于它的问题。
从 seccomp.c 中,似乎从 __secure_computing() 调用了 seccomp_run_filters() 以测试当前进程调用的系统调用。但是查看 seccomp_run_filters(),作为参数传递的系统调用号在任何地方都没有使用。
似乎 sk_run_filter() 是 BPF 过滤器机器的实现,但 sk_run_filter() 是从 seccomp_run_filters() 调用的,第一个参数(运行过滤器的缓冲区)为 NULL。
我的问题是: seccomp_run_filters() 如何在不使用参数的情况下过滤系统调用?
以下是seccomp_run_filters()的源码:
python - Python Seccomp 允许标准输入
我正在做一个项目,我将在其中运行潜在的恶意代码。它的基本组织是有一个主进程和一个从进程。从属进程运行潜在的恶意代码,并启用了 seccomp。
这就是 seccomp 的开启方式。我可以从奴隶到主人很好地沟通,但反过来不行。当我不打开 seccomp 时,我可以使用:
或类似的规定。我发现这很奇怪,考虑到 seccomp 的默认参数,我应该可以进行读写,尤其是对于 stdin/out。我什至尝试在打开 seccomp 之前打开 stdin。例如。
但还是无济于事。我也试过 readlines() 不起作用。一位朋友建议我尝试 Unix Domain Sockets,在 seccomp 继续之前打开它,然后只使用 write() 调用。这也不起作用。如果有人对如何解决这个问题有任何建议,请发表!我在 C 中看到了一些代码,例如
但是我在 Python 中通过 cffi 模块使用它并没有成功。
python - 在 Python 中启用 seccomp 后如何干净地退出?
我在一个项目中通过 python-prctl 启用了 seccomp。我无法弄清楚如何干净地退出 - 结果总是被杀死。
我看到了一些使用 ctypes 或 ffi 来尝试引用 libc 的示例,但如果我希望它们使用 WIFEXITED ,它们似乎也有同样的问题。
下面的示例代码。结果总是“我们被杀了”。
快速更新,因为我忘记了 libc 的东西:
用其中任何一个定义上面的 _exit() 仍然会导致终止。
.... 或者 ....
c - seccomp-bpf - 如何使用 bpf 过滤系统调用的参数?
我有一个函数 f(),它返回 0 或 1 - 0 表示假,1 表示真。我想做的是用 seccomp-bpf 设置一个规则,这样系统调用“fopen”只有在 f(--fopen 的第一个参数--) == 1 时才被允许。
我该怎么做?
c - seccomp --- 如何 EXIT_SUCCESS?
在设置了严格模式 seccomp 后,如何进入 EXIT_SUCCESS。syscall(SYS_exit, EXIT_SUCCESS);
在 main 结束时调用是正确的做法吗?