Seccomp

Ahn9807 (토론 | 기여)님의 2023년 2월 3일 (금) 06:29 판 (새 문서: 분류: 리눅스 커널 분류: 가상화 분류: 운영체제 기반 보안 == 개요 == seccomp (secure computing mode의 약자)는 리눅스 커널에서 애플리케이션 샌드박싱 메커니즘을 제공하는 컴퓨터 보안 기능이다. seccomp은 프로세스가 exit(), sigreturn(), 그리고 이미 열린 파일 디스크립터에 대한 read(), write() 를 제외한 어떠한 시스템 호출도 일으킬 수 없는 안전한 상태로 일방향...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

seccomp (secure computing mode의 약자)는 리눅스 커널에서 애플리케이션 샌드박싱 메커니즘을 제공하는 컴퓨터 보안 기능이다. seccomp은 프로세스가 exit(), sigreturn(), 그리고 이미 열린 파일 디스크립터에 대한 read(), write() 를 제외한 어떠한 시스템 호출도 일으킬 수 없는 안전한 상태로 일방향 변환을 할 수 있게 한다. 만약 다른 시스템 호출을 시도한다면, 커널이 SIGKILL로 프로세스를 종료시킨다. 이러한 의미에서 이것은 시스템의 자원을 가상화하는 것이 아니라 프로세스를 고립시키는 것이라고 할 수 있다. 설정은 prctl함수를 통해 바이너리 내부에 적용시킬 수 있으며 PR_SET_SECCOMP상수를 전달함으로써 seccomp를 실행시킬 수 있다. 특히 여기서 SECCOMP_SET_MODE_FILTER를 통해서 Berkeley Packet Filter를 통해서 어떤 시스템콜을 허용하고 어떤 시스템콜을 deny할지를 필터링 하여 결정할 수 도 있다.

int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
prctl(PR_SET_SECCOMP, SECCOMP_MODE_STRICT);

참고

  1. https://velog.io/@woounnan/LINUX-Seccomp