问题标签 [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.
kubernetes - 无法创建 pod 沙箱:rpc 错误:code = Unknown desc = seccomp 在您的内核中未启用,无法使用配置文件运行
我在使用 kube 和 Cri-o 时遇到问题。实际上我正在部署一个 kube 集群,我只是不想部署仪表板。我安装了 CRIO 而不是 Docker(生产环境中的 RHEL8)。“describe pod”命令的输出日志为:
我试过这个: grep SECCOMP /boot/config-$(uname -r)
有了这些回报,我认为这是启用的......
在我安装 kube 的过程中,我在我的系统中发现了一个 seccomp.json 文件,我试图seccomp_profile
在 CRI-O 的配置部分中设置绝对路径,但不是......这不是解决方案......
有没有人有想法...?
问候,
docker - 使用默认 seccomp 配置文件时,Docker 无法构建映像
当我尝试构建 docker 映像时,出现以下错误
OCI 运行时创建失败:container_linux.go:346:启动容器进程导致“seccomp:提供配置但不支持 seccomp”:未知
我在跑docker build -t cprates/lws_base:latest -f Dockerfile.base .
Dockerfile 是一个基本的 dockerfile,没有什么特别之处
我怀疑这在系统更新后开始发生,但不确定。我可以不使用默认的 seccomp 配置文件来运行容器--security-opt seccomp=unconfined
。但docker build
不收旗--security-opt
。
我已经按照官网的说明重新安装了 docker-ce 。
我正在使用根据文档支持的 Fedora 30:
码头工人版本
码头工人信息
关于可能是什么问题的任何线索?
linux - 如何编写seccomp BPF程序过滤系统调用指令指针
是否可以编写一个 seccomp-BPF 程序来过滤系统调用指令指针?例如,要杀死不是从libc
.
docker - 在不传递标志的情况下修改 ptrace
我正在使用 MPI 在某个平台上运行一些分布式培训。在培训期间,我看到了大量的印刷品,例如:
经过一番调查,我发现它是由默认的 docker Seccomp 引起的。如果我用--cap-add=SYS_PTRACE
那些大量打印运行 docker 就会消失。
但是,我无法添加标志,docker run
因为我无法控制 docker 图像的启动:它们是由平台启动的。那么,有没有办法修改ptrace
Dockerfile 或 docker 容器内的设置?
另一个发现是运行 MPIbtl_vader_single_copy_mechanism none
会禁用这些打印,但性能会受到损害,所以这不是一个选项。
任何帮助将不胜感激!
docker - 我可以将 Google Container Optimized OS 用作安全的容器沙箱吗?
我有一个运行 Googles Container Optimized OS 的 VM,我想允许运行用户提供的代码 - 每个用户都有自己的容器。
这段代码可能是恶意的——我想将代码的范围限制在它自己的容器中。
https://cloud.google.com/container-optimized-os/docs/concepts/security
问题
A. 操作系统是否为容器添加了足够的保护以用作沙盒?该文档提到增加了安全性,但没有提及它在容器中包含恶意代码的有效性。
B. 可以使用 docker 卷来限制在容器中运行的代码的文件系统范围吗?我想使用 CLI 提供的 docker volume 为每个用户在磁盘上提供一个他们可以写入的文件夹,但我想阻止用户读取彼此的数据。
非常感谢任何帮助,谢谢。
linux - 为什么加载 seccomp 过滤器会影响允许和有效的能力集?
我最近正在使用 and 编写程序,libcap
并且libseccomp
在将它们一起使用时发现了一个问题。
在下面的最小可重现示例中,我首先将当前流程的能力设置为P(inheritable) = CAP_NET_RAW
only,其他能力集被清除。然后,我使用操作初始化一个 seccomp 过滤器SCMP_ACT_ALLOW
(默认情况下允许所有系统调用),加载它并清理它。
最后,这个程序打印它当前的能力,并在执行capsh --print
后执行以显示它的能力execve()
。
-lcap
用and编译,-lseccomp
在root用户(UID=EUID=0)下执行,得到:
它表明当前进程和执行的capsh
所有进程都具有可继承集而不是空的。但是,如果我评论 line rc = seccomp_load(ctx);
,情况会有所不同:
之前execve()
,结果与上面相同。但在那之后,所有其他能力都回到了允许和有效的集合中。
我查找了capabilities(7),并在手册中找到了以下内容:
这就是我感到困惑的地方:可继承集不为空,根据简化规则,允许和有效集都不应为空。但是,“加载 seccomp 过滤器”似乎违反了这条规则。
go - 是否可以从 Go 进程应用 Linux 内核 SECCOMP 配置文件?
我正在尝试在内核 SECCOMP过滤器的支持下实现系统调用跟踪器,以通过过滤一些系统调用类型来减少开销。
我发现的所有实现都在 C 中,由于 Go 线程/go-routines 和fork()
.
示例代码(C):
经过一些研究,我发现为了fork()
在 Go Lang 中执行类似的功能,我们可以使用syscall.ForkExec或exec.Command,但两者似乎都仅限于可以通过参数syscall配置的一组 pre-exec 操作.SysProcAttr,虽然它提供对 PTRACE_TRACEME 调用的支持,但它不提供对 SECCOMP 所需的 prctl() 的任何支持。
有没有办法从 GoLang 生成的进程中启动一个“ptraceable”“seccomped”子进程?
python - 如何在 Python 中使用 seccomp 和 proc 文件系统识别进程?
我必须编写一个 Python3 程序来计算使用 seccomp 的虚拟机上的每个进程。它应该使用 proc 文件系统来识别这些进程,但我不知道该怎么做。一般来说,我会浏览这个文件系统中的每个文件夹,打开文件并搜索字符串“seccomp”。如果它发生,我会增加一个计数器。这只是理论上的,因为我不知道如何实现它。这是列出每个进程并将其添加到列表中的一次尝试,但它无法访问进程
linux - 在孩子中安装 seccomp 过滤器
我想知道是否可以在 Go 程序的子进程中安装 seccomp 过滤器。目前我正在生成子进程,如下所示:
这很好用,并SysProcAttr
提供了一种在子进程中启用 Ptrace 的机制。但是,似乎不支持在孩子中安装 seccomp 过滤器。我知道https://github.com/elastic/go-seccomp-bpf和https://github.com/seccomp/libseccomp-golang但这些库似乎只支持在当前进程(以及任何子进程)中安装 seccomp 过滤器从当前进程产生的)。我只想在子级中安装过滤器,而不是在父级中,因为我不希望父级也被沙箱化。
在 C 语言中,在子进程中安装 seccomp 过滤器的机制是分叉,在当前进程(从子进程中)安装过滤器,然后执行。但是,在 Go 中似乎不支持像这样分离 fork 和 exec。有什么办法可以解决这个问题,还是我需要使用 C 来正确执行此操作?
可以SysProcAttr
扩展为允许 seccomp 过滤器,或者允许在 fork 之后和 exec 之前运行任意代码(在某些时候我假设它调用 fork 然后 exec)?我将如何实施呢?
c - 是否可以在 seccomp 过滤器中获取当前 PID?
通过 SECCOMP_RET_USER_NOTIF处理 seccomp 用户空间通知 ( https://www.kernel.org/doc/html/latest/userspace-api/seccomp_filter.html ) 时,我发现 PID 作为 seccomp_notif 结构的一部分对于某些过滤决策非常有用。在 ebpf 过滤器中,辅助函数(如 bpf_get_current_pid_tgid())可用于获取此类信息。但由于 seccomp 似乎只支持经典的 BPF,我想知道是否还有其他方法。据我所知,在 seccomp 过滤器内部只能访问 seccomp_data 结构。有没有办法直接获取 seccomp 过滤器中的 PID 等特定信息?