Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 Syscall过滤技术通常基于由编号确定的syscall或具体参数来确认是否允许执行调用。在通过编号确定syscall时,64位Linux内核(x86_64)上syscall编号可能既映射到32位又映射到64位的syscall表,而这两种syscall表是不同的。由于用户空间进程是由syscall表控制的,因此可以绕过syscall编号检查,执行非授权操作。 例如,syscall过滤技术可能在监控64位进程,且配置为允许常见的open() syscall的子集,在64位平台上为syscall number 2。但是,被监控的进程可以切换到32位模式并发布syscall 2,这对于监控程序为open(),但在内核中执行为fork()。
Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 Syscall过滤技术通常基于由编号确定的syscall或具体参数来确认是否允许执行调用。在通过编号确定syscall时,64位Linux内核(x86_64)上syscall编号可能既映射到32位又映射到64位的syscall表,而这两种syscall表是不同的。由于用户空间进程是由syscall表控制的,因此可以绕过syscall编号检查,执行非授权操作。 例如,syscall过滤技术可能在监控64位进程,且配置为允许常见的open() syscall的子集,在64位平台上为syscall number 2。但是,被监控的进程可以切换到32位模式并发布syscall 2,这对于监控程序为open(),但在内核中执行为fork()。