[AWS-Security] 8.1. 감사 로그 및 사고 대응
[AWS-Security] 8.1. 감사 로그 및 사고 대응
1. 개요
방어막을 아무리 잘 구축해도 보안 침해(사고)는 언제든 발생할 수 있다. 2016년 우버(Uber)에서 5,000만 명의 고객 데이터가 유출되어 해커가 몸값을 요구했던 사건처럼, 최악의 상황이 발생했을 때 가장 먼저 열어봐야 하는 것이 바로 감사 로그(Audit Log)다.
감사 로그 및 추적 시스템은 사고 대응(Incident Response)을 위해 절대적으로 필요하며, 완벽한 사고 대응을 위해서는 아래 3단계의 질문에 답할 수 있어야 한다.
2. 1단계: 공격이 실제로 발생했는가? (이상 징후 탐지)
양호한 감사 로깅 시스템이 있다면, 평소와 다른 ‘이상 징후(지표)’를 통해 공격을 조기에 파악할 수 있다. 대표적인 공격 징후로는 아래 4가지가 있다.
- 읽기 접근 수의 급증 : 누군가 대량의 레코드를 훔쳐 가고 있다면 데이터베이스나 스토리지의 읽기 호출이 비정상적으로 치솟는다.
- 지나치게 큰 응답 페이로드 : 평소보다 반환되는 데이터의 크기가 과도하게 크다면, 이는 SQL 인젝션 공격으로 DB 전체가 털리고 있다는 지표일 수 있다.
- 특이한 지리적 위치에서의 요청 : 주요 고객이 한국에 있는데 갑자기 동유럽이나 남미 등에서 트래픽이 급증한다면 악의적인 목적일 가능성이 크다.
- 비정상적인 시간대의 대규모 요청 : 일반적인 업무 시간(오전 9시 ~ 오후 5시)이 아닌 새벽 시간대에 대규모 데이터 접근이 일어난다면 의심해 볼 만한 상황이다.
3. 2단계: 악용된 취약점은 무엇인가? (정찰 및 원인 파악)
공격이 확인되었다면, 로그에 남은 식별자(사용자 ID, IP 주소 등)를 단서로 스택 전체의 로그를 교차 검증(정찰)하여 공격 경로를 파악해야 한다.
- 추적 시나리오
- DB 접근 로그를 보니 권한을 가진 ‘Bob’이라는 사용자가 수많은 데이터를 빼간 기록이 있다.
- 애플리케이션 (웹 서버) 로그로 넘어가 ‘Bob’의 기록을 다시 검색해 본다.
- 특정 IP 주소들에서 ‘Bob’의 계정으로 수많은 ‘로그인 실패’ 기록(무차별 대입 공격)이 발생한 것을 확인한다.
- 결론 : 해커가 로그인 공격으로 Bob의 계정을 탈취했음을 알아내고, 즉시 해당 IP 차단 및 처리율 제한(Rate Limiting)을 적용해 추가 공격을 막는다.
4. 3단계: 공격의 피해 범위는 어디까지인가? (영향도 평가)
공격을 막아낸 후에는 다음과 같은 질문에 답하여 법적, 도의적 책임을 다해야 한다.
- 어떤 데이터 접근했는가? (개인정보, 금융 정보 등 데이터의 민감도 파악)
- 얼마나 많은 사용자가 영향을 받았는가? (전체 고객의 1%인지, 100%인지 정확히 파악하여 공지)
- 손상된 계정은 누구인가? (악의적인 IP에서 성공적으로 로그인한 사용자를 식별하여 즉각적인 비밀번호 변경 및 보호 조치 수행)
실시간 탐지를 위한 로깅의 가치
로그는 사고가 끝난 뒤 조사에만 사용하는 것이 아니다. 로그가 실시간으로 잘 쌓이고 있다면, 공격이 ‘진행 중’일 때 이를 탐지하여 조기에 차단할 수 있다. (ex. 무차별 로그인 실패 로그가 일정 수치를 넘으면 알람 발생)
This post is licensed under CC BY 4.0 by the author.