피드로 돌아가기
Dev.toSecurity
원문 읽기
Graph Theory 기반 K8s 공격 경로 시각화 도구의 아키텍처 재설계
From Hackathon Wreckage to Production-Ready: How I Rebuilt My Kubernetes Attack Path Visualiser with GitHub Copilot
AI 요약
Context
Kubernetes 리소스 간 복잡한 관계를 단순 리스트가 아닌 Graph 모델로 정의하여 공격 경로를 분석하는 도구 설계. 초기 버전은 정적인 문자열 매칭 기반의 위험도 산정 및 하드코딩된 경로 관리로 인해 실제 보안 컨텍스트를 반영하지 못하는 한계 노출.
Technical Solution
- SecurityFacts 모델 도입을 통한 노드 수준의 보안 속성(Privileged Container, HostPID 등) 구조화
- 정적 가중치 방식에서 SecurityFacts 기반의 동적 Friction 값 산출 방식으로 EdgeRiskScorer 로직 변경
- Dijkstra 알고리즘의 가중치로 보안 컨텍스트가 반영된 Friction 값을 적용하여 최단 공격 경로 산출 정확도 향상
- OS별 환경 변수를 활용한 WorkspaceManager 구현으로 Trivy 스캔 캐시의 플랫폼 독립성 및 Path Traversal 방어 체계 구축
- 분석 로직(BlastRadius, ChokePoint)을 Main 클래스에서 분리하여 도메인 레이어 중심의 계층적 아키텍처로 전환
- JUnit 테스트 자동화를 통한 엣지 케이스 검증 및 회귀 테스트 환경 확보
실천 포인트
- 보안 위험도 산정 시 단순 식별자 매칭이 아닌 대상 객체의 속성(Property) 기반 가중치 모델 설계 검토 - 외부 툴(Trivy 등)의 캐시 구현 시 OS별 표준 경로 준수 및 상위 경로 접근 제한(Path Validation) 로직 필수 적용 - 복잡한 리소스 간 전이 관계 분석 시 Graph Theory(Dijkstra, BFS) 적용 가능성 검토