Home > 开源软件 > Seccomp和系统调用过滤

Seccomp和系统调用过滤

December 8th, 2009

Seccomp v1

Seccomp是2005年Andrea Arcangeli在Linux内核加的一个功能,为了给*Grid计算中的应用*提供sandbox模型。运行在Seccomp模式下的进程,只能执行下面几个系统调用:
    read(), write(), exit(), sigreturn()

通过Seccomp沙箱,和4个api的限制,保证进程不会影响到其他进程。

Seccomp v2

2009年的时候,Ingo Molnar扩展了Seccomp的实现,让其支持更加全面的系统调用过滤(syscall filtering)的功能。Google Chrome Browser好像用的沙箱模型就是类似Seccomp的系统调用过滤。

Filter的规则是一个数组,每个元素包括两个字段,分别是系统调用名和过滤规则:

{ { "sys_read",            "fd == 0" },
  { "sys_write",        "fd == 1" },
  { "sys_sigreturn",        "1" },
  { "sys_gettimeofday",        "tz == NULL" }

上面的第一条规则要求进程只能以fd = 0这个参数,调用sys_read。 

参考资料

[1] Seccomp Wiki http://en.wikipedia.org/wiki/Seccomp

[2] Seccomp and sandboxing http://lwn.net/Articles/332974/

[3] seccomp: Add bitmask of allowed system calls http://lwn.net/Articles/332987/

Categories: 开源软件 Tags: , , ,
  1. 你好
    December 9th, 2009 at 18:12 | #1

    小李贼你好,还是我,请教你一个问题.
    请问怎么样自己编译一个GDI++的二进制副本?

    我目前只想知道 怎么编译出gdi++.dll这个文件就够了.
    它都需要哪些源文件?
    请说的详细点.
    麻烦你了,如果有时间 就发我邮箱里,没时间就算了.

    还有 有没有办法修改源代码不用ATL库?

Comments are closed.