본문 바로가기

DevSecOps

OverlayFS: 컨테이너와 보안에서 중요한 파일 시스템 기술

728x90
반응형

OverlayFS는 리눅스 커널에서 제공하는 유니온 파일 시스템(Union Filesystem) 구현체입니다. 하나 이상의 디렉터리를 겹쳐서 하나의 논리적인 파일 시스템처럼 사용하는 기술로, 특히 Docker, Podman, LXC 등 컨테이너 환경에서 핵심적으로 활용됩니다.


1. 기본 개념

OverlayFS는 읽기 전용(upper)과 쓰기 가능(lower) 디렉터리를 오버레이하여 사용자에게 하나의 통합된 디렉터리처럼 보이게 합니다.

구성 요소

  • LowerDir: 읽기 전용 계층 (예: base 이미지)
  • UpperDir: 쓰기 가능한 계층 (예: 컨테이너 실행 시 생성되는 변경 사항)
  • WorkDir: Overlay 작업에 필요한 임시 파일 저장소
  • MergedDir: 실제 사용자에게 노출되는 결과 디렉터리

기본 마운트 구조 예시

mount -t overlay overlay \
  -o lowerdir=/lower,upperdir=/upper,workdir=/work \
  /merged

→ /merged 디렉터리는 lower + upper 계층이 통합되어 보입니다.


2. 동작 원리

  • 사용자가 /merged/file.txt를 읽으면, upper에 없으면 lower에서 읽습니다.
  • 사용자가 해당 파일을 수정하거나 삭제하면, upper에 복사(copy-up) 후 작업합니다.
  • lower에는 절대 변경이 발생하지 않으며, upper에서만 변경 사항이 반영됩니다.

예: copy-up

  1. /lower/config.yaml만 존재하는 상태
  2. 사용자가 vim /merged/config.yaml로 수정
  3. OverlayFS는 /lower/config.yaml을 /upper/config.yaml로 복사하고, 그 위에서 작업 수행

3. Docker에서의 활용

Docker는 컨테이너 이미지 계층을 OverlayFS를 통해 다음과 같이 관리합니다.

  • Base 이미지 (Ubuntu 등): LowerDir
  • 컨테이너가 생성한 변경 파일: UpperDir
  • 최종 컨테이너 파일 시스템: MergedDir
/lower → read-only image layer (e.g., /var/lib/docker/overlay2/<id>/diff)
/upper → write layer per container
/merged → 실제 컨테이너가 접근하는 파일 시스템

→ 이 방식 덕분에 이미지 재사용과 디스크 공간 절약이 가능해집니다.


4. 보안 관점에서의 고려사항

4.1. 포렌식/침해사고 대응 시

  • 침해 분석 시, 파일이 upper에만 존재하는지, lower에서 복사된 것인지 구분해야 함
  • /var/lib/docker/overlay2/ 경로 아래에서 upper/lower 구조를 추적해야 정확한 파일 생성/수정 타이밍 분석 가능

→ 정훈님처럼 IR 업무를 수행할 경우, OverlayFS 계층 구조를 기반으로 파일 타임라인 재구성위·변조 추적 능력이 중요합니다.

4.2. Host ↔ Container 파일 시스템 경계

  • 컨테이너 escape 공격이 발생하면 upper 영역이 손상될 수 있음
  • Host OS의 /var/lib/docker/overlay2 자체에 대한 권한 설정, 접근 통제 필요

4.3. 삭제된 파일 추적 어려움

  • lower 파일을 delete하면 upper에 "whiteout" 마커 파일로 삭제 처리됨
  • ls에는 안 보이지만, forensic 조사에서는 이 마커 파일(.wh.*)을 분석해야 삭제된 파일 존재 여부 파악 가능

5. 실무 이슈 및 주의사항


inode limit 문제 OverlayFS는 copy-up을 자주 하므로 inode 사용량이 빠르게 증가할 수 있음
퍼포먼스 저하 대용량 파일 복사 또는 많은 계층 사용 시 I/O 성능 저하 가능
보안 문제 upperdir에 악성 파일 심기 또는 whiteout abuse 가능성 존재
파일 권한 우회 lower의 보안 설정이 upper에서 override될 수 있음 (ACL, SELinux context 주의)
forensic 회피 whiteout 파일로 로그 또는 설정 삭제 시, 흔적 파악이 어렵게 되는 우회 가능성 존재
 

6. 보안 분석 시 주요 참고 경로

/var/lib/docker/overlay2/            ← Overlay 계층별 디렉터리
├── <id>/diff/                       ← upper 계층 (실제 쓰기 영역)
├── <id>/merged/                    ← 컨테이너에 마운트되는 FS
├── <id>/lower/                     ← 읽기 전용 이미지 계층
├── <id>/work/                      ← 작업 영역
  • stat, file, md5sum 등을 통해 upper/lower간 파일 비교 가능
  • .wh. 접두어 파일 = 삭제된 lower 파일의 흔적 (whiteout)

7. 결론

OverlayFS는 컨테이너 가상화, 이미지 계층화, DevOps 성능 최적화의 핵심 기술입니다.
하지만 동시에 디스크 포렌식, 침해 사고 분석, 컨테이너 보안 분석 등 다양한 보안 작업에서도 핵심 분석 포인트가 됩니다.

 

IR, SIEM, SOAR 등에서 실무 대응을 하고 계신 경우, 다음과 같은 시나리오에 주목하셔야 합니다.

  • 컨테이너 내 삭제된 로그 분석 (whiteout 추적)
  • 악성 파일이 upper에만 존재하는 상황
  • Host → Container 경로 우회 공격 여부
  • overlay2 내부 타임라인 분석
728x90
반응형