09 - Security Logging and Monitoring Failures
https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/
개요
OWASP Top 10 2021 중 9위로 올라간 Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패) 이다.
- 2017년 10위에서 9위로 상승하였다.
- 침해 사고를 탐지, 확산 방지, 대응 하는 데 필수적인 로깅 및 모니터링의 실패를 다루는 항목이다.
위험 요인
- 로그/모니터링 실패는 다른 취약점과 달리 고유 번호를 부여해서 등록(CVC)하거나, 점수를 매겨 취약점의 위험도를 평가(CVSS)하여 관리하기 어렵다.
- 특정 코드의 버그가 아니라 운영 방식의 문제(로그를 제대로 남기지 않거나, 모니터링에 문제가 있는 등)라 자동화된 취약점 스캐너가 잡아내기 어렵다.
- 로그와 모니터링이 없으면 공격자가 침입해도 알아챌 수 없다. 따라서 사고 대응이 불가능하고, 법적 조사를 할 때에도 디지털 포렌식 자료가 없어 증거가 부족하다.
- 다음과 같은 문제점을 포함할 수 있다.
- 로그가 아예 없음 (CWE-778: 불충분한 로깅)
- 로그가 오염될 수 있음 (CWE-117: 로그 인젝션)
- 중요한 정보가 빠져 있음 (CWE-223: 불충분한 로그 정보)
- 로그에 민감한 정보가 그대로 노출됨 (CWE-532: 민감 데이터 노출)
구체적 문제 사례
- 로그인, 로그인 실패, 고위험 거래 같은 핵심 이벤트가 전혀 기록되지 않을 때
- 결고나 오류 발생 시 로그 메시지가 없거나, 내용이 부적절하거나 이해하기 어려울 때
- 애플리케이션이나 API로그에서 이상 징후가 전혀 모니터링 되지 않을 때
- 로그가 로컬 저장소에만 남고 집중 로그 시스템으로 통합되지 않을 때
- 침투 테스트 실행 시 알림이 발생하지 않을 때
- 로그 또는 알림 정보가 사용자 또는 공격자에게 노출되어 정보 유출로 이어질 때 (A01: Broken Access Control 연관)
- 로그 시스템이 공격에 취약한 경우
방지 방법
- 로그 기록 강화
- 로그인, 접근 제어 실패, 서버 입력 검증 실패 등을 사용자 컨텍스트(누가, 어디서, 무엇을 했는지 등 사용자와 관련된 정보)와 함께 상세하게 기록하고, 충분히 저장해 나중에 포렌식 분석이 가능하도록 한다.
- 로그 형식 표준화
- 로그 관리 솔루션이 쉽게 분석할 수 있는 형식으로 생성되도록 한다.
- 로그 데이터 인코딩
- 로그 시스템 자체가 인젝션 공격 등의 위험에 노출되지 않도록 로그 데이터를 올바르게 인코딩한다.
- 무경성 보장 감사 트레일 유지
- 고위험 거래에 대해 변조나 삭제를 방지할 수 있는 append-only(한번 기록된 내용은 수정,삭제가 불가능한 방식이다. 오직 추가만 가능하다.) 방식의 데이터 저장 장치를 사용하는 등의 무결성 제어를 도입한다.
- 효과적인 모니터링 및 경보 체계 구축
- DevSecOps 조직(개발(Dev) + 보안(Sec) + 운영(Ops)을 통합해서 협업하는 방식)은 이상 징후를 빠르게 탐지하고 대응할 수 있는 체계를 마련해야 한다.
- 오픈소스 도구 활용
- 예: OWASP ModSecurity Core Rule Set, ELK(Elasticsearch, Logstash, Kibana) 스택 등으로 대시보드와 알림 기능을 구축할 수 있다.
배운 점
- 요즘은 자동화 툴로 어느정도 보안의 취약점을 잡아낼 수 있을거라 생각했는데, 자동화 툴로도 탐지하기 어려운 부분도 있음을 알게되었다. 따라서 사람이 직접 신경써야 하는 보안 영역임을 깨달았다.
- 로그가 보안에 있어서는 매우 중요함을 깨닫게 되었다. 단순히 쌓여가는 기록이 아닌, 공격 여부를 확인하거나 추후 포렌식을 할 때에도 로그가 핵심이 됨을 알게 되었다. 하지만, 모니터링이 없으면 로그가 있어도 활용을 못하기에, 모니터링 과정도 매우 중요함을 깨달았다.
- 로그가 존재 하더라도 공격을 통해 중요한 정보가 빠지거나, 오염된 것일 수도 있다. 로그를 무작정 기록하는 것이아니라 정확하고 안전하게 기록하는 것이 핵심임을 알게 되었다.
- 단순히 로그를 저장만 하는 것이 아니라, 실시간으로 위험이 생겼을때 알림 시스템을 활성화 해야만 침해 사고를 빠르게 탐지 가능함을 알게 되었다.