← 질문 목록
#401깊이 0

루트 권한 컨테이너는 왜 위험한가?

인프라 · 보안심화

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

컨테이너 안의 루트가 호스트의 루트와 같은 사용자라서다. 가르는 층이 뚫리거나 걷히면 그 번호가 그대로 힘이 된다.

  1. 공격자
  2. 그다음은 루트로 도는 앱입니다. 그 프로세스를 잡으면 컨테이너 안에서 무엇이든 할 수 있다

    루트로 도는 앱
  3. 그다음은 호스트입니다. 가르는 울타리를 넘으면 밖에서도 같은 사용자 번호로 움직인다

    호스트

네임스페이스는 무엇을 볼 수 있는지를 가를 뿐 사용자 번호를 바꾸지 않는다. 따로 매핑을 켜지 않으면 안의 0번이 밖의 0번이다.

가르는 것이 네임스페이스만은 아니다. 능력을 덜어 내고 시스템 콜을 거르는 층이 겹쳐 있어서, 기본값의 컨테이너 루트는 호스트 루트만큼 할 수 있는 것이 아니다.

붙인 볼륨에서 바로 드러난다. 호스트 경로를 마운트한 컨테이너가 루트로 돌면 그 경로의 파일을 마음대로 고칠 수 있다.

막는 방법은 쉬운 쪽부터다. 이미지에 일반 사용자를 만들어 그것으로 돌리고, 파일 시스템을 읽기 전용으로 두고, 능력을 전부 뺀 뒤 필요한 것만 도로 붙인다.

낮은 포트 때문에 루트를 쓴다는 말은 이제 조건부다. 도커는 컨테이너 안에서 1024 아래를 열 수 있게 기본값을 바꿨고, containerd로 도는 쿠버네티스에서는 여전히 막힌다.

막히는 환경이면 포트를 여는 능력만 따로 붙이거나, 높은 포트로 옮기고 앞단에서 바꿔 준다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

루트 권한 컨테이너는 왜 위험한가?