seccomp를 사용하여 결정론적 실행을 강제할 수 있습니까?

seccomp를 사용하여 결정론적 실행을 강제할 수 있습니까?

seccomp(2)getrandom(2)및 와 같이 비결정성을 도입하는 시스템 호출을 포함하여 특정 프로세스가 만들 수 있는 시스템 호출을 엄격하게 제한하는 데 사용할 수 있습니다 gettimeofday(2). 프로세스를 강제로 실행하는 방법이 있습니까?완전히확실성?

적어도 내가 찾은 프로세스가 RDTSC.이 오래된 블로그 게시물prctl(PR_SET_TSC)x86_64의 실제 손상을 설명합니다 . 이 문제를 해결하는 현대적인 방법이 있습니까, 아니면 완벽하게 결정론적인 실행을 시행하는 것이 불가능합니까?

답변1

비결정론에는 RDTSC뿐만 아니라 많은 소스가 있습니다. 한편, 프로그램이 다중 스레드인 경우 특히 SMP 시스템에서 스케줄링 결정에서 엔트로피를 얻을 수 있습니다. IPC가 심각하게 제한되는 단일 스레드 프로그램에 대해 이야기하고 있다면 제한적인 seccomp 감옥이 그 효과를 발휘할 수 있습니다.

언제든지 커널을 패치하여 RDTSC 결함을 수정할 수 있습니다. @Gilles가 언급했듯이 ASLR을 비활성화해야 할 수도 있습니다.

관련 정보