나는 데비안 시스템의 문서를 읽고 있었는데 seccomp(2)
다음 단락에서 다음 문장을 우연히 발견했습니다:
setuid(2)
예를 들어, 이러한 악성 필터는 실제로 0을 반환하는 시스템 호출을 만드는 대신 호출자의 사용자 ID를 0이 아닌 값으로 설정 하려고 시도할 수 있습니다 .
위의 목적을 달성하기 위해 필터를 어떻게 seccomp
남용할 수 있습니까?
악의적인 필터가 이를 허용하지 않는 경우 setuid(2)
프로세스는 SIGSYS
시그널을 수신하고 종료될 수 있으며 시스템 호출은 실행되지 않습니다.
악성 필터가 허용하는 경우 setuid(2)
d execve(2)
프로그램은 사용자의 UID를 올바르게 변경합니다.
내가 무엇을 놓치고 있나요?
man seccomp
:
...
그렇지 않으면 SECCOMP_SET_MODE_FILTER 작업이 실패하고 errno에 EACCES가 반환됩니다. 이 요구 사항은 권한이 없는 프로세스가 악성 필터를 적용한 다음 set-user-ID 또는 기타 권한이 있는 프로그램에 대한 호출을 사용하여
execve(2)
잠재적으로 프로그램을 손상시킬 수 없도록 보장합니다. (예를 들어, 이러한 악성 필터는 실제로 시스템 호출을 하지 않고 0을 반환하는 대신 호출자의 사용자 ID를 0이 아닌 값으로 설정하려고 시도할 수 있습니다setuid(2)
. 따라서 프로그램이 가능한 경우 슈퍼유저 권한을 유지하도록 속일 수 있습니다. 실제로 권한을 포기하지 않기 때문에 위험한 일을 하도록 영향을 줍니다.)...