Kubernetes 감사 로그 분석은(는) 무엇을 하나요?
사용 시기
- Kubernetes 감사 로그 분석이 필요한 보안 인시던트 조사
- 해당 도메인에 대한 탐지 규칙 또는 위협 헌팅 쿼리 구축
- SOC 분석가가 이 분석 유형에 대한 구조화된 절차가 필요할 때
- 관련 공격 기술에 대한 보안 모니터링 커버리지 검증
전제 조건
- 컨테이너 보안 개념과 도구에 대한 이해
- 안전한 실행을 위한 테스트 또는 실습 환경 접근
- Python 3.8+ 및 필요한 의존성 설치
- 모든 테스트 활동에 대한 적절한 권한
지침
Kubernetes 감사 로그 파일(JSON Lines 형식)을 파싱하여 인가되지 않은 접근, 권한 상승, 데이터 유출 등 보안 관련 이벤트를 탐지합니다.
import json
with open("/var/log/kubernetes/audit.log") as f:
for line in f:
event = json.loads(line)
verb = event.get("verb")
resource = event.get("objectRef", {}).get("resource")
user = event.get("user", {}).get("username")
if verb == "create" and resource == "pods/exec":
print(f"{user}가 파드 exec 실행")
탐지할 주요 이벤트:
- pods/exec 및 pods/attach (컨테이너 셸 접근)
- 시크릿 접근 (get/list/watch)
- clusterrolebindings 생성 (RBAC 권한 상승)
- 특권(Privileged) 파드 생성
- 익명 또는 system:unauthenticated 사용자 접근
예시
# 시크릿 열거 탐지
if verb in ("get", "list") and resource == "secrets":
print(f"시크릿 접근: {user} -> {event['objectRef'].get('name')}")