PR_SET_NAME:设置进程的名称。 PR_SET_PDEATHSIG:设置父进程终止时发送的信号。 PR_SET_CHILD_SUBREAPER:设置进程为子进程的subreaper。 PR_SET_DUMPABLE:设置进程的core dump状态。 PR_SET_NO_NEW_PRIVS:设置进程不能获取新特权。 PR_SET_SECCOMP:设置进程的Seccomp配置。 下面是一个示例代码,演示如何使用prct...
安全沙盒: 通过PR_SET_NO_NEW_PRIVS和PR_SET_SECCOMP结合可以创建一个更安全的进程环境,限制进程行为。 示例代码 #include<stdio.h>#include<sys/prctl.h>#include<signal.h>#include<unistd.h>intmain(){// 设置进程名称prctl(PR_SET_NAME,"my_process",0,0,0);// 当父进程终止时,发送 SIGKILL 信号给...
PR_GET_NO_NEW_PRIVS (since Linux 3.5) Return (as the function result) the value of the no_new_privs bit for the current process. A value of 0 indicates the regular execve(2) behavior. A value of 1 indicates execve(2) will operate in the privilege-restricting mode described above. PR...
PR_SET_DUMPABLE PR_SET_PDEATHIG PR_SET_CHILD_SUBREAPER Output parameter for PR_GET_CHILD_SUBREAPER and PR_GET_PDEATHSIG. Must be specified for PR_GET_NO_NEW_PRIVS and PR_GET_DUMPABLE but the value is returned for those functions in the RETURN_VALUE parameter instead ofArg2Int. ...
prctl(PR_SET_NO_NEW_PRIVS,1LL...); 在include/linux/prctl.h中找到PR_SET_NO_NEW_PRIVS常量对应的数值,正好是 38,因此也就对应上了题目中的第一个 prctl 语句,那很明显 v4 就是一个设置规则的结构体指针,我们完全可以覆盖他来构造沙箱规则。
c prctl(PR_SET_DUMPABLE, 1); // 允许核心转储 5.设置进程的命名空间 在容器化技术(如Docker)中,`PR_SET_NO_NEW_PRIVS`和`PR_SET_SECUREBITS`等选项被用来增强安全性,通过限制进程获得的权限,防止潜在的特权升级攻击 c prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); 三、`prctl`的应用场景 1.性能...
(2).PR_SET_NO_NEWPRIVS(38):prctl(38,1,0,0,0)表示禁用系统调用execve()函数,同时,这个选项可以通过fork()函数和clone()函数继承给子进程。 structsock_fprog { unsignedshortlen;/*指令个数*/structsock_filter *filter;/*指向包含struct sock_filter的结构体数组指针*/} ...
...使用了seccomp-BPF的程序,必须具有此CAP_SYS_ADMIN权限;或者通过使用prctrl把no_new_priv设置bit 位设置成1: prctl(PR_SET_NO_NEW_PRIVS...容器中 seccomp的使用,本质是对Seccomp-BPF的再封装使用;通过简单的配置文件来达快速设置多个容器的seccomp安全应用(以下全部以docker为例)。
defined(PR_SET_MM) || /* 35 */ \ defined(PR_SET_CHILD_SUBREAPER) || /* 36 */ \ defined(PR_GET_CHILD_SUBREAPER) || /* 37 */ \ defined(PR_SET_NO_NEW_PRIVS) || /* 38 */ \ defined(PR_GET_NO_NEW_PRIVS) || /* 39 */ \ ...