问题标签 [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.

0 投票
1 回答
402 浏览

c - 为什么 seccomp 进程总是被杀死?

为什么进入 seccomp 模式的进程总是在退出时被杀死?

0 投票
3 回答
1247 浏览

c - SECCOMP:如何模拟 malloc、realloc 和 free?

我想在我的服务器上执行任意(可能很危险)的二进制文件。因此,我习惯objcopy将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小型 main 函数中,该函数设置适当的值并在调用 other_main 之前RLIMIT_CPU切换标志。SECCOMP到目前为止,我对这个解决方案非常满意。

现在的问题是,第 3 方程序代码可能包含一些对 malloc 的调用,这些调用可能会立即终止程序(不允许使用 sbrk)。因此,我想在设置SECCOMPmalloc / realloc / calloc / free 之前预先分配一些合理大小的数组(例如 20MB)。不幸的是,我不知道如何归档最后一步。我必须自己实现所有这 4 个功能吗?如何将我自己的函数注入到 stdlib(例如,当 printf 在内部调用 malloc 时会发生什么?)。

0 投票
1 回答
291 浏览

security - 沙盒能否减轻缓冲区溢出的影响。

我必须对沙盒过程进行一些研究。但我无法理解沙盒如何减轻缓冲区溢出。假设我有我的服务器应用程序(一个 FTP 服务器),它受到可以远程利用的缓冲区溢出的影响。

沙盒作为 Vx32,Janus ostia 如何阻止注入代码访问文件系统?

0 投票
2 回答
1712 浏览

windows - 是否有适用于 Windows 的 seccomp 模拟

是否有类似seccomp的东西可以在 Windows 上运行?

它应该将所有系统调用限制在一些非常有限的集合中,比如只读取和写入已经打开的文件。

被描述为 Chromium 沙箱的那个看起来不像 Seccomp,因为它基于通常的文件权限和 Windows 安全对象,而不是限制对系统调用的访问。

0 投票
2 回答
7820 浏览

c - 抑制“错误的系统调用”消息

如此处所述,使用 seccomp 过滤器,我们可以在运行 example.c 文件时阻止特定的系统调用。

该进程将终止并打印“Bad system call”消息:

我想压制消息。

即使这样也无济于事:

0 投票
1 回答
2921 浏览

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()的源码:

0 投票
1 回答
514 浏览

python - Python Seccomp 允许标准输入

我正在做一个项目,我将在其中运行潜在的恶意代码。它的基本组织是有一个主进程和一个从进程。从属进程运行潜在的恶意代码,并启用了 seccomp。

这就是 seccomp 的开启方式。我可以从奴隶到主人很好地沟通,但反过来不行。当我不打开 seccomp 时,我可以使用:

或类似的规定。我发现这很奇怪,考虑到 seccomp 的默认参数,我应该可以进行读写,尤其是对于 stdin/out。我什至尝试在打开 seccomp 之前打开 stdin。例如。

但还是无济于事。我也试过 readlines() 不起作用。一位朋友建议我尝试 Unix Domain Sockets,在 seccomp 继续之前打开它,然后只使用 write() 调用。这也不起作用。如果有人对如何解决这个问题有任何建议,请发表!我在 C 中看到了一些代码,例如

但是我在 Python 中通过 cffi 模块使用它并没有成功。

0 投票
1 回答
897 浏览

python - 在 Python 中启用 seccomp 后如何干净地退出?

我在一个项目中通过 python-prctl 启用了 seccomp。我无法弄清楚如何干净地退出 - 结果总是被杀死。

我看到了一些使用 ctypes 或 ffi 来尝试引用 libc 的示例,但如果我希望它们使用 WIFEXITED ,它们似乎也有同样的问题。

下面的示例代码。结果总是“我们被杀了”。

快速更新,因为我忘记了 libc 的东西:

用其中任何一个定义上面的 _exit() 仍然会导致终止。

.... 或者 ....

0 投票
1 回答
441 浏览

c - seccomp-bpf - 如何使用 bpf 过滤系统调用的参数?

我有一个函数 f(),它返回 0 或 1 - 0 表示假,1 表示真。我想做的是用 seccomp-bpf 设置一个规则,这样系统调用“fopen”只有在 f(--fopen 的第一个参数--) == 1 时才被允许。

我该怎么做?

0 投票
2 回答
1552 浏览

c - seccomp --- 如何 EXIT_SUCCESS?

在设置了严格模式 seccomp 后,如何进入 EXIT_SUCCESS。syscall(SYS_exit, EXIT_SUCCESS);在 main 结束时调用是正确的做法吗?