Seccomp机制简介
seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的syscall,这是不安全的,比如劫持程序流后通过execve的syscall来getshell.通过seccomp我们可以在程序中禁用掉某些syscall,这样就算劫持了程序流也只能调用部分的syscall了.
2、 使用seccomp
#include <stdio.h>
#include <unisted.h>
#include <seccomp.h>
int main(void){
scmp_filter_ctx ctx;
ctx = seccomp_init(SCMP_ACT_ALLOW);
seccomp_rule_add(ctx, SCMP_ACT_KILL, SCMP_SYS(execve), 0);
seccomp_load(ctx);
char * filename = "/bin/sh";
char * argv[] = {"/bin/sh",NULL};
char * envp[] = {NULL};
write(1,"i will give you a shell\n",24);
syscall(59,filename,argv,envp);//execve
return 0;
}
今天做题遇到的沙盒机制
通过prctl(PR_SET_SECCOMP, 2, …)设置沙盒,禁用一些syscall,

PR_SET_NO_NEW_PRIVS=38

使用工具
seccomp(github上)可以识别沙盒的规则,还可以自己写规则

本文介绍了Seccomp机制,一种用于限制程序系统调用的安全机制。通过禁用特定的系统调用,如execve,Seccomp能有效防止程序流被劫持后获取shell。文章提供了使用Seccomp的代码示例,并提到了通过prctl设置沙盒环境来进一步增强安全性。

3227

被折叠的 条评论
为什么被折叠?



