Container Security는 Image 검사만으로 끝나지 않습니다.
배포 전에 안전한 Image를 사용하더라도 실행 이후 Container 내부에서 새로운 문제가 발생할 수 있습니다.
예:
정상 Image
↓
Container 실행
↓
비정상 Process 실행
↓
공격 발생
또는:
취약점 공격
↓
권한 상승
↓
Container 탈취
따라서 Production 환경에서는 Container가 실행되는 동안 이상 행동을 감시하는 Runtime Security가 필요합니다.
기본 구조:
Running Container
↓
Behavior Monitoring
↓
Threat Detection
↓
Alert
↓
Response
이번 글에서는 Docker Compose Runtime Security 개념부터 Falco, Process 감시, 권한 상승 탐지, File 변경 감지, Network 이상 탐지, Production 보안 운영 구조까지 알아보겠습니다.
Runtime Security란 무엇인가?
Runtime Security는 Container가 실행 중일 때 발생하는 행동을 분석하고 보호하는 보안 방식입니다.
Container Security 영역:
Image Security:
배포 전 검사
Runtime Security:
실행 중 보호
비교:
Build 단계
↓
Security Scan
Run 단계
↓
Runtime Monitoring
Image Scan만으로 부족한 이유
예:
안전한 Image:
Ubuntu
+
Application
하지만 실행 후:
공격자가 접근
↓
Shell 실행
↓
악성 명령 수행
Image Scan은 이러한 실행 중 행동을 감지하지 못합니다.
Docker Compose Runtime Security 구조
기본 구조:
Container
↓
Runtime Security Agent
↓
Event Analysis
↓
Alert
Production:
Docker Host
↓
Security Monitor
↓
Detection Engine
↓
Security Team
Falco란 무엇인가?
Falco는 Container Runtime Security 도구입니다.
주요 기능:
- 이상 Process 탐지
- 권한 상승 탐지
- 파일 변경 감지
- Network 이상 탐지
구조:
Container
↓
Falco
↓
Rule Engine
↓
Alert
Docker Compose Falco 구성
예:
services:
falco:
image: falcosecurity/falco
privileged: true
Falco는 Host Kernel 이벤트를 확인하기 때문에 높은 권한이 필요합니다.
Runtime Security에서 탐지하는 이벤트
비정상 Shell 실행
정상:
Application 실행
위험:
Container 내부
↓
bash 실행
↓
명령 수행
탐지:
Shell 실행 Alert
권한 상승 탐지
위험:
일반 User
↓
Root 권한 획득
Runtime Security:
권한 변경 감지
↓
Alert
보호:
- Privileged Container 제한
- Capability 제한
Docker Compose File 변경 감지
공격자는 Container 내부 파일을 변경할 수 있습니다.
예:
Application 파일
↓
악성 코드 삽입
탐지:
중요 파일 변경
↓
Alert
Docker Compose Network 이상 탐지
Runtime Security는 Network 행동도 확인합니다.
예:
정상:
API
↓
Database
위험:
Container
↓
외부 IP 접속
탐지:
- 비정상 Connection
- Port Scan
- Data Transfer
Docker Compose Container Escape 공격
Container Escape는 심각한 공격입니다.
구조:
Container
↓
Host System 접근
원인:
- 잘못된 권한 설정
- Kernel 취약점
- Privileged Container
방어:
- 최소 권한
- Kernel 업데이트
- Runtime Monitoring
Docker Compose Capability 제한
Linux Capability는 Container 권한을 세밀하게 제어합니다.
위험:
cap_add:
- ALL
권장:
필요한 Capability만 허용
원칙:
Least Privilege
Docker Compose Read Only Filesystem
Container 파일 시스템 보호 방법입니다.
설정:
read_only: true
효과:
파일 변경 제한
↓
악성 수정 방지
Docker Compose Runtime Security와 Logging 연동
탐지 이벤트는 기록해야 합니다.
구조:
Runtime Event
↓
Log System
↓
Loki / ELK
↓
Analysis
확인:
- 공격 시간
- 대상 Container
- 실행 명령
Docker Compose Runtime Security Alert
보안 이벤트 발생:
Suspicious Shell Detected
흐름:
Falco
↓
Alertmanager
↓
Slack / Email
↓
관리자
Docker Compose Production Runtime Security 구조
실제 운영:
Internet
↓
WAF
↓
API Gateway
↓
Container
↓
Runtime Security
↓
Monitoring
↓
Alert
Runtime Security Best Practice
추천:
최소 권한 실행
Root Container 최소화
Privileged 제한
필요한 경우만 사용
Runtime Monitoring 적용
실행 행동 감시
Security Rule 관리
탐지 기준 업데이트
Alert 연동
빠른 대응 체계 구축
자주 묻는 질문
Runtime Security와 Image Scan 차이는 무엇인가요?
Image Scan은 배포 전 검사, Runtime Security는 실행 중 보호입니다.
Docker Compose에서도 Runtime Security 사용 가능한가요?
가능합니다.
Falco 같은 도구를 Container로 구성할 수 있습니다.
모든 Container를 감시해야 하나요?
Production 환경에서는 주요 Service부터 적용하는 것이 좋습니다.
Runtime Security가 Firewall을 대체하나요?
아닙니다.
Network 보안과 함께 사용해야 합니다.
마무리
Docker Compose Runtime Security는 실행 중인 Container를 보호하는 핵심 보안 기술입니다.
최종 구조:
Container 실행
↓
행동 감시
↓
이상 탐지
↓
Alert
↓
대응
Production 서버에서는 안전한 Image를 사용하는 것뿐 아니라 실행 이후 발생하는 공격까지 감시해야 합니다.
Runtime Security를 적용하면 Container 환경을 더욱 안정적으로 운영할 수 있습니다.
다음 글에서는 Docker Image부터 배포 과정 전체를 보호하는 Docker Compose Supply Chain Security 운영 방법을 알아보겠습니다.