시스템 보안 · 취약점 › G. 내부 확장 · 측면 이동 징후 · 23/50편 (전체 323/450)
학습 단계: 원격 실행·서비스 악용
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
컨테이너·오케스트레이션 환경은 고유한 측면 이동 경로를 가집니다. 공격자는 컨테이너 탈출(호스트 접근)·오케스트레이터 API 악용·파드 간 이동으로 노드와 클러스터를 확산 장악합니다.
컨테이너·오케스트레이션 측면 이동
컨테이너 탈출: 특권 컨테이너·마운트 악용 → 호스트 노드
오케스트레이터 API: kubelet·API 서버 악용 → 파드 생성·명령
파드 간 이동: 같은 노드/네임스페이스 파드로 확산
서비스 어카운트 토큰: 탈취해 클러스터 API 접근
핵심: 컨테이너 → 호스트 → 다른 파드/노드 → 클러스터
컨테이너에서 호스트로의 탈출(특권·docker.sock·호스트 마운트)과 쿠버네티스 API·서비스 어카운트 토큰 악용이 핵심 경로입니다.
| 경로 | 악용 | 위험 |
|---|---|---|
| 특권 컨테이너 | --privileged 탈출 | 높음 |
| docker.sock | 호스트 Docker 제어 | 매우 높음 |
| 호스트 마운트 | / 마운트 접근 | 높음 |
| SA 토큰 | 클러스터 API | 높음 |
| 파드 간 이동 | 네임스페이스 확산 | 높음 |
# 컨테이너·오케스트레이션 이동 탐지 (분석 방법)
# docker.sock 접근·특권 컨테이너 실행
sudo ausearch -k lateral,proc_exec -i --start recent 2>/dev/null | grep -E 'docker\.sock|--privileged|-v /:' | tail
# 서비스 어카운트 토큰 접근(쿠버네티스)
sudo ausearch -k cred_access,lateral -i --start recent 2>/dev/null | grep -E 'serviceaccount/token|/var/run/secrets'
# kubectl/API 비정상 사용
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'comm="(kubectl|crictl|docker)"' | tail
$ (docker.sock·특권) (없음)
$ (SA 토큰 접근) (정상 파드 자신의 토큰만)
docker.sock·특권 컨테이너 악용이 없고, 서비스 어카운트 토큰이 정상 용도로만 쓰이는 상태가 정상입니다.
$ (docker.sock·특권)
proctitle="docker -H unix:///var/run/docker.sock run -v /:/host --privileged ..."
$ (SA 토큰 접근)
cat /var/run/secrets/kubernetes.io/serviceaccount/token (타 파드 토큰 사용)
컨테이너·오케스트레이션 측면 이동 분석입니다(가상의 예시).
[침투 파드] web 컨테이너 장악
↓ (탈출)
docker.sock + 호스트 마운트 → 노드 호스트 접근
↓ (API 악용)
SA 토큰으로 쿠버네티스 API → 다른 파드 명령·생성
↓ (확산)
다른 네임스페이스·노드 파드로 이동
= 컨테이너 → 호스트 → 클러스터 확산
| 경로 | 해석 |
|---|---|
| docker.sock | 호스트 제어 |
| 호스트 마운트 | 탈출 |
| SA 토큰 | 클러스터 API |
| 파드 간 | 확산 |
컨테이너 탈출 + 토큰 악용이 클러스터 확산의 지표입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_g,lateral,">
<rule id="106220" level="13">
<if_sid>106000</if_sid>
<field name="audit.proctitle" type="pcre2">docker\.sock|--privileged|-v\s+/:/|serviceaccount/token</field>
<description>컨테이너 탈출·오케스트레이터 토큰 악용(측면 이동)</description>
<mitre><id>T1611</id><id>T1610</id></mitre>
</rule>
</group>
쿠버네티스 감사 로그(API 서버)·컨테이너 런타임 로그와 상관해 파드·노드 간 확산을 포착합니다. 정상 오케스트레이션은 예외 처리합니다.
| 경로 | 악용 |
|---|---|
| 특권 컨테이너 | 탈출 |
| docker.sock | 호스트 제어 |
| 호스트 마운트 | / 접근 |
| SA 토큰 | 클러스터 API |
| 면접 포인트 | "컨테이너는 탈출→호스트→클러스터 — docker.sock·특권·SA 토큰이 경로" |
다음 편 324. 내부 확장·측면 이동 — 데이터베이스를 통한 측면 이동 탐지 에서는 데이터베이스를 통한 측면 이동을 다루는 데이터베이스를 통한 측면 이동 탐지를 다룹니다.
이전 편: 322. 내부 확장·측면 이동 — NFS·공유 디렉터리를 통한 확산 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점