- 네트워크 방어는 자산을 나열하고 우선순위를 매기는 데서 출발하지만, 실제 공격 표면은 자산 간 보안 의존성 그래프로 형성됨
- 공격자는 가장 강한 자산을 정면 공격하기보다, 약하게 보호된 워크스테이션이나 관리 경로를 따라 고가치 자산의 우회 경로를 찾음
- Windows 네트워크에서는 로그온 방식, 자격 증명, Kerberos TGT, NTLM 해시, 공통 로컬 관리자 암호, 로그온 스크립트 같은 요소가 모두 그래프의 간선이 될 수 있음
- 방어자는 자산 목록을 그래프로 바꾸고, 인프라 분할·자격 증명 사일로·권한 최소화·2단계 인증·자격 증명 순환으로 연결성을 줄여야 함
- 공격자는 오래된 다이어그램이 아니라 실제 인프라를 조각별로 학습하므로, 방어자는 현재 네트워크의 연결 관계를 더 정확히 파악해야 우위를 가질 수 있음
목록으로 보는 방어가 놓치는 것
- 많은 네트워크 방어는 공격자와 접촉하기 전부터 전장을 잘못 이해하면서 어긋남
- 방어자는 자산을 보호하고, 우선순위를 정하고, 워크로드와 비즈니스 기능별로 정렬하는 데 집중함
- 시스템 관리 서비스, 자산 인벤토리 데이터베이스, BCDR 스프레드시트에는 자산 목록이 넘쳐남
- 하지만 실제로 방어자가 다뤄야 하는 것은 개별 자산 목록이 아니라, 자산들이 보안 관계로 연결된 그래프임
- 공격자는 스피어피싱(spearphishing) 같은 기법으로 그래프의 어느 지점에 착지한 뒤, 취약한 시스템을 찾아 네트워크 안을 이동함
- 이 그래프는 외부에서 주어진 것이 아니라 네트워크를 설계하고 운영하는 방어자 자신이 만듦
네트워크 안의 그래프가 의미하는 것
- 네트워크의 그래프는 자산 사이에 동등성 클래스를 만드는 보안 의존성의 집합임
- 그래프에 영향을 주는 요소는 크게 네 가지임
- 네트워크 설계
- 네트워크 관리 방식
- 네트워크에서 쓰는 소프트웨어와 서비스
- 사용자의 행동
- 도메인 컨트롤러 사례에서는 약한 관리 경로 하나가 고가치 자산 전체의 보안 수준을 낮춤
- Bob이 워크스테이션에서 도메인 컨트롤러를 관리함
- 해당 워크스테이션이 도메인 컨트롤러만큼 보호되지 않으면, 도메인 컨트롤러도 침해될 수 있음
- Bob의 워크스테이션에 관리자 권한을 가진 다른 계정도 Bob과 도메인 컨트롤러를 침해할 수 있음
- 그 관리자들은 업무상 하나 이상의 다른 머신에 로그온함
- 공격자가 그중 하나를 침해하면 도메인 컨트롤러로 가는 경로가 생김
Six Degrees of Mallory: 그래프를 따라가는 측면 이동
- 공격자는 침해한 머신에서 대기하며 mimikatz 같은 암호 덤퍼로 고가치 계정의 로그온을 기다릴 수 있음
- 예시 그래프의 왼쪽 클러스터는 수백 명의 사용자가 쓰는 단일 Terminal Server임
- 공격자가 이 머신을 침해하면 시간이 지나며 많은 사용자의 자격 증명을 덤프할 수 있음
- 그래프 검색을 통해 High Value Asset으로 향하는 여러 경로가 드러남
- Terminal Server 침해로 User46과 User128도 침해 가능해짐
- User46은 Machine2821의 관리자이고, User128은 Machine115의 관리자임
- 해당 워크스테이션을 침해하면 User1과 User34를 침해할 수 있음
- User1과 User34는 모두 High Value Asset의 관리자임
- High Value Asset을 보호하려면 여기에 의존하는 모든 요소가 High Value Asset만큼 철저히 보호되어야 하며, 이들이 하나의 동등성 클래스를 이룸
보안 의존성을 만드는 관계들
- Windows 네트워크에서 사용자가 Interactive, Terminal Server 등 특정 로그온을 수행하면, 기반 호스트가 침해됐을 때 사용자의 자격 증명이 도난에 노출됨
- 노출 대상에는 자격 증명뿐 아니라 Kerberos TGT, NTLM 해시 같은 싱글 사인온 동등물이 포함됨
- 보안 의존성은 일상적인 관리 관계에서도 만들어짐
- 공통 암호를 쓰는 로컬 관리자 계정: 한 시스템에서 로컬 관리자 암호를 덤프한 뒤, 같은 암호를 쓰는 다른 호스트에 사용할 수 있음
- 많은 사용자에게 실행되는 로그온 스크립트를 담은 파일 서버와 소프트웨어 업데이트 서버
- 사용 시 클라이언트 머신에 프린트 드라이버를 전달하는 프린트 서버
- 스마트카드 로그온에 유효한 인증서를 발급하는 인증기관
- 권한 있는 사용자로 실행되는 데이터베이스 서버 컨텍스트에서 코드를 실행할 수 있는 데이터베이스 관리자
- 간접 관계도 그래프의 일부가 됨
- 취약점이 있는 머신이 침해되면 공격자가 그래프에 새 간선을 만들 수 있음
- 사용자가 신뢰 관계가 없는 두 도메인에 같은 암호의 계정을 갖고 있으면 도메인 사이에 숨은 간선이 생김
그래프를 줄이는 방어 방법
- 방어자의 첫 단계는 자산 목록을 그래프로 바꿔 네트워크를 시각화하는 것임
- 이후 큰 연결성 폭발을 만드는 원치 않는 간선을 찾아 그래프를 가지치기해야 함
- 인프라 분할과 자격 증명 사일로를 구현함
- 관리자 수를 줄이고, Just-In-Time / Just Enough 기법으로 권한을 최소화함
- 특정 간선 이동을 완화하기 위해 2단계 인증을 사용함
- 사용자 계정 침해에 대비해 견고한 자격 증명 순환 방식을 적용함
- forest trust 관계를 재검토함
공격자보다 나은 현실 모델 만들기
- 방어자는 전장을 시각화할 때 공격자에게 우위를 넘겨주지 않아야 함
- 방어자는 자신의 네트워크에 대한 전체 정보를 가질 수 있지만, 공격자는 네트워크를 조각별로 학습해야 함
- 공격자는 부정확한 정신 모델, 불완전한 자산 인벤토리 시스템, 오래된 네트워크 다이어그램이 아니라 현재 존재하는 인프라를 연구함
- 방어자도 현실을 기준으로 네트워크를 관리해야 준비된 방어자 사고방식에 가까워짐
더 읽을거리
- Heat-ray: Combating Identity Snowball Attacks Using Machine Learning, Combinatorial Optimization and Attack Graph: J. Dunagan, D. Simon, A. Zheng
- Two Formal Analyses of Attack Graphs: S. Jha, O. Sheyner, J. Wing
- Using Model Checking to Analyze Network Vulnerabilities: P. Ammann, R. Ritchey
- A Graph-Based System for Network-Vulnerability Analysis: C. Phillips, L. Swiler
- Automated Generation and Analysis of Attack Graphs: J. Haines, S. Jha, R. Lippman, O. Sheyner, J. Wing
- Modern Intrusion Practices: Gerardo Richarte
- Attack Planning in the Real World: Jorge Lucangeli Obes, Gerardo Richarte, Carlos Sarraute