Seccomp

정의

Seccomp(Secure Computing mode)은 리눅스 커널이 제공하는 보안 메커니즘으로, 특정 프로세스가 커널에 요청할 수 있는 시스템 호출(System Call)의 종류를 제한하는 기능이다. 프로세스와 운영체제 커널 사이의 인터페이스를 최소화하여, 애플리케이션이 실행 중에 수행할 수 있는 동작의 범위를 사전에 정의된 안전한 영역으로 한정한다.

맥락

현대의 소프트웨어 보안에서 가장 큰 위협 중 하나는 신뢰할 수 없는 코드가 실행되거나, 정상적인 프로세스가 공격을 받아 관리자 권한을 탈취당하는 것이다. Seccomp은 이러한 상황에서 '최소 권한의 원칙'을 물리적으로 강제하는 역할을 한다. 예를 들어, 텍스트 편집기 프로세스는 파일을 읽고 쓰는 시스템 호출은 필요하지만, 네트워크 소켓을 생성하거나 다른 프로세스의 메모리에 접근할 필요는 없다. Seccomp을 통해 불필요한 시스템 호출을 차단하면, 설령 편집기 프로세스가 해킹당하더라도 공격자가 네트워크를 통해 데이터를 유출하거나 시스템의 다른 부분을 공격하는 것을 원천적으로 막을 수 있다.

이 기능은 특히 웹 브라우저의 렌더링 엔진이나 컨테이너 가상화 환경에서 필수적인 요소로 자리 잡았다. 구글 크롬이나 도커(Docker) 같은 도구들은 내부적으로 Seccomp 프로필을 사용하여 프로세스가 커널의 취약점을 공격하지 못하도록 방어막을 형성한다.

관련 개념

Seccomp은 단독으로 사용될 때보다 다른 보안 기술과 결합될 때 강력한 시너지를 낸다. 가장 밀접하게 연관된 도구는 [[bubblewrap]]이다. [[bubblewrap]]이 리눅스 네임스페이스를 활용해 프로세스가 어떤 파일 시스템이나 네트워크 환경을 '볼 수 있는지'를 결정하는 가시성의 격리를 담당한다면, Seccomp은 프로세스가 커널에 어떤 명령을 '내릴 수 있는지'를 필터링하는 행위의 격리를 담당한다. 이 두 기술이 결합되면 파일 시스템 접근을 차단하는 동시에 위험한 시스템 호출까지 막아내는 견고한 다중 방어 체계가 완성된다.

이러한 운영체제 수준의 보안 프레임워크는 플랫폼마다 다른 방식으로 구현되어 있다. macOS의 Seatbelt(App Sandbox)가 이와 유사한 역할을 수행하며, 리눅스 진영에서는 Seccomp 외에도 AppArmor나 SELinux 같은 도구들이 상호 보완적으로 사용된다. 반면 윈도우 환경은 커널 수준에서 시스템 호출을 세밀하게 제어하는 표준화된 통합 프레임워크가 상대적으로 부족하여, 개발자가 개별 보안 구성 요소를 직접 조합하여 샌드박스를 구축해야 하는 차이점이 존재한다.

한 줄 논점

프로세스와 커널 사이의 통로를 최소화함으로써 애플리케이션의 취약점이 시스템 전체의 침해로 확산되는 것을 방지하는 핵심 방어선이다.

마지막 검토

2026-05-18