컨테이너 이스케이프 (Container Escape)
쉽게 풀면
여러 세입자가 각자의 방에 나뉘어 사는 셰어하우스를 떠올려 보세요. 각 방은 잠겨 있어 다른 방이나 건물 전체 관리 시설에 함부로 들어갈 수 없어야 합니다. 컨테이너도 하나의 호스트 운영체제 위에서 여러 애플리케이션을 격리된 '방'처럼 나누어 실행하는 기술입니다. 컨테이너 이스케이프는 이 방의 잠금이 뚫려, 세입자(컨테이너 내부 프로세스)가 건물 전체를 관리하는 호스트 시스템이나 다른 세입자의 방까지 침입하는 상황을 말합니다.
왜 중요한가
클라우드와 마이크로서비스 환경에서 컨테이너 기술이 널리 쓰이면서, 하나의 컨테이너가 뚫렸을 때 전체 호스트나 다른 서비스까지 피해가 확산되는지 여부가 중요한 보안 이슈로 떠올랐습니다. 이 때문에 컨테이너 격리 메커니즘의 안전성과 이스케이프 공격 방어 기법은 클라우드 및 시스템 보안 연구에서 활발히 다루어집니다.
논문에서는 이렇게 쓰입니다
컨테이너 이스케이프가 실제 취약점을 통해 어떻게 발생하는지를 다루는 문장입니다.
컨테이너 이스케이프를 예방하기 위한 방어 기법을 설명하는 문장입니다.
조금 더 깊게 보면
컨테이너는 리눅스 커널의 네임스페이스와 cgroup 기능을 이용해 프로세스, 파일 시스템, 네트워크 등을 격리하는데, 이 격리 계층이나 컨테이너 런타임 자체의 결함이 이스케이프의 원인이 되는 경우가 많습니다. seccomp, AppArmor, SELinux와 같은 추가적인 접근 통제 메커니즘을 함께 적용하여 이스케이프 위험을 줄이는 접근이 연구되고 있습니다.
주의할 점
컨테이너는 가상 머신과 달리 호스트 커널을 공유하는 구조이기 때문에, 완전한 격리를 보장하는 기술이 아니라는 점을 유의해야 합니다.