피드로 돌아가기
Dev.toSecurity
원문 읽기
AppArmor 기반 Mandatory Access Control 도입을 통한 컨테이너 공격 표면 최소화
Stop Leaving Containers Exposed: Practical AppArmor Profiles for Podman and Docker on Linux
AI 요약
Context
기본 Container Runtime의 isolation 기능만으로는 호스트 커널과의 공유 공격 표면(Attack Surface)을 완전히 차단하는 데 한계 존재. seccomp와 capability drop 기능이 제공되나, 파일 경로 기반의 세밀한 접근 제어와 가시성 확보를 위한 추가적인 보안 계층 필요.
Technical Solution
- Complain Mode 기반의 Runtime Behavior 분석을 통한 애플리케이션별 맞춤형 보안 프로파일 생성
- Path-based 및 Capability-aware 규칙 적용을 통해 root 권한 컨테이너의 호스트 민감 경로 쓰기 권한 원천 차단
aa-logprof도구를 활용한 커널 로그 분석 및 화이트리스트 기반의 점진적 권한 최적화 루프 구축- Podman/Docker의
--security-opt옵션을 통한 런타임 수준의 AppArmor 프로파일 강제 적용 deny /proc/** w와 같이 기본 거부(Default Deny) 원칙을 적용한 후 필수 리소스만 허용하는 최소 권한 설계
실천 포인트
1. 신규 컨테이너 배포 시 최소 1주일간 Complain Mode로 동작시켜 실제 I/O 패턴 수집
2. 생성된 AppArmor 프로파일을 Deployment Manifest와 함께 Git으로 버전 관리
3. `--cap-drop=ALL` 및 Tight seccomp 프로파일과 AppArmor를 병행 적용하여 보안 계층 다각화
4. `aa-unconfined` 명령어로 보안 프로파일 없이 동작 중인 프로세스 정기적 점검