AWS CloudTrail로 침해사고 타임라인 재구성하는 방법

AWS 계정 침해가 의심되면 CloudTrail 로그에서 API 호출 기록을 분석해야 한다. 여기서 공격자의 로그인 시점, 자격 증명, 이동 경로, 최종 목적지를 순서대로 추출해낼 수 있다.

AWS CloudTrail 사고조사의 핵심: 왜 CloudTrail이 가장 먼저 확인되어야 하는가

AWS 환경에서 침해사고 대응에 들어갈 때 보안 분석가들은 흔히 GuardDuty 경보나 VPC Flow Logs부터 파고든다. 하지만 계정 내부 침입 시 공격자가 만든 추가 사용자, 뜯어낸 EBS 스냅샷, 우회한 보안 통제, 그리고 옮겨간 데이터는 대부분의 과정에서 CloudTrail에 흔적을 남긴다. AWS에서 콘솔 클릭, 스크립트 실행, 데이터 읽기 등의 모든 작업은 API 호출로 바뀐다. CloudTrail은 이 호출이 누구에 의해, 언제, 어디서, 어떤 권한으로 실행되고 성공했는지 상세히 기록하는 계정 내 활동 장부다.

로그 수집 구조와 분석가의 함정 피하기

CloudTrail 로그를 다룰 때 가장 조심해야 할 것은 기록 범위와 전달 지연(Latency)이다. 많은 엔지니어가 이벤트 기록(Event History) 기능만 믿다가 90일 이전의 중요한 관리 이벤트를 놓치곤 한다. 콘솔 이벤트 기록은 최근 90일 동안의 관리 이벤트만 볼 수 있다. 장기 보존과 심층 분석을 위해서는 별도 설정이 필요하다.

컨트롤 플레인과 데이터 플레인의 수집 정책도 확실히 구분해야 한다. 계정 생성, IAM 변경 같은 관리 이벤트(Management Events)는 트레일(Event Data Store)에 기본적으로 기록된다. 반면 S3 객체 접근이나 DynamoDB 쿼리 같은 데이터 이벤트(Data Events)는 기본적으로 꺼져 있다. 데이터 이벤트는 수백만 개의 로그가 쏟아질 수 있어 별도로 켜면 비용이 든다. 예산과 저장 용량을 고려해 전략적으로 설정해야 한다. 장기 보존이 필요하다면 CloudTrail Lake를 쓴다. SQL로 직접 쿼리할 수 있는 관리형 저장소를 통해 최대 7~10년 동안 로그를 보관할 수 있다.

실시간 대응 때 로그 전달 지연을 무시하면 타임라인이 왜곡된다. CloudTrail 이벤트는 보통 5분 안에 기록되지만, 시스템 부하나 전송 과정에서 최대 15분까지 걸릴 수도 있다. 이 지연 시간을 생각하지 않고 분 단위 타임라인을 고집하면 대응 과정의 신뢰도가 떨어진다. 이벤트 타임스탬프와 S3 전송 시점을 교차 검증해야 한다.

침해사고 타임라인 재구성 실전 가이드

실제 조사는 흩어진 로그를 모으고 불규칙한 자격 증명을 찾아내는 복잡한 과정이다. 권한이 온디맨드나 자동화 스크립트로 주어지는 환경에선 변경 내역 추적이 어렵다. 분석가는 타임라인 재구성에 몇 시간에서 며칠이 걸릴 수 있음을 알고 체계적으로 나아가야 한다.

  1. 자격 증명 접두사 검증: CloudTrail 로그의 userIdentity 필드에서 액세스 키 ID 접두사를 확인해 공격자가 어떤 권한으로 활동했는지 파악한다.
  2. 소스 IP 및 이벤트 매핑: 로그 파싱을 통해 특정 날짜와 시간의 이벤트 이름, 소스 IP 주소, 사용자 정보를 추출해 이동 경로를 연결한다.
  3. 네트워크 엔드포인트 호출 추적: 2024년에 추가된 네트워크 활동 이벤트(Network Activity Events)를 활용하면 VPC 엔드포인트에 닿는 컨트롤 플레인 호출까지 기록해, 내부 네트워크 침투 경로를 더 정밀하게 재구성할 수 있다.
  4. 임시 자격 증명 유효기간 확인: 공격자가 도난당한 인스턴스 자격 증명으로 역할을 승계한 경우, 해당 임시 자격 증명의 수명(최대 12시간, 역할 체이닝 시 1시간)을 기준으로 활동 창을 좁힌다.
액세스 키 ID 접두사 표현 의미 및 조사 시사점
AKIA 장주기 IAM 사용자 키. 초기 유입 계정이 공격자에 의해 장악되었거나 고정 자격 증명이 유출되었음을 시사합니다.
ASIA 임시 STS 키. 도난된 인스턴스 자격 증명을 통한 역할 승계(AssumeRole) 활동의 흔적입니다.
AROA 역할 고유 ID. 특정 IAM 역할이 부여된 권한을 통해 API 호출이 발생했음을 나타냅니다.

조사의 효율성을 높이는 도구와 자동화 연계

원시 JSON 로그는 가독성이 떨어져 수동으로 분석하면 오류가 나기 쉽다. CloudTrail 로그는 표준 JSON 형식이다. jq 같은 파싱 도구로 구조를 읽기 좋게 바꾼 뒤 핵심 필드를 뽑아낸다. 분석 과정에서 이벤트 이름, 소스 IP, 사용자 정보를 빠르게 걸러내면 조사 정확도가 크게 올라간다.

대규모 클라우드 환경에서는 분산된 로그 수합과 패턴 식별에 시간이 오래 걸린다. 이런 복잡성을 해결하려면 Amazon Detective를 연계하는 게 좋다. 효율을 높이는 데 도움이 된다. Detective는 CloudTrail 로그, VPC 흐름 로그, GuardDuty 조사 결과, EKS 감사 로그 등 여러 소스의 데이터를 자동으로 모은다. 기계 학습(ML), 통계 분석, 그래프 이론을 적용해 보안 조사를 빠르게 하고 시각화를 지원한다. 분석가는 흩어진 데이터 조각을 수동으로 맞추는 대신 연관된 엔티티와 비정상 접근 경로를 한눈에 파악할 수 있다.

AWS CloudTrail 사고조사는 단순히 로그를 확인하는 작업을 넘어선다. 공격자의 의도를 API 호출 패턴으로 해석하는 과정이다. 보존 정책, 전달 지연, 데이터 플레인 비활성화 상태 같은 환경적 함정을 파악하고, 체계적인 파싱과 도구 연계를 수행해야 정확한 침해사고 타임라인을 재구성할 수 있다.

댓글 남기기