DDoS 공격을 알려준 고양이
- 필자가 스타트업에서 일할 당시, 공식적인 온콜 로테이션이 없었음
- 온콜이 고통스러운 일이기에 의도적으로 하지 않았음
- 대신 팀원들이 함께 긴급 알림에 주의를 기울였음
- 어느 날 새벽 3시경, 고양이가 필자의 머리를 그루밍하는 바람에 잠에서 깼음
- 고양이의 그루밍 자체는 특별한 일이 아니었으나, 9년 만에 처음으로 자는 동안 그런 행동을 보였음
- 휴대폰을 확인하니 AWS CloudWatch 경고가 몇 분 전에 발생했음을 알게 됨
- 로드 밸런서의 비정상적인 대상으로 인한 경고였음
- 회사 웹사이트에 접속이 되지 않자, 모니터링 대시보드를 확인함
- 많은 IP 주소에서 대량의 요청이 들어오고 있었고, 이는 주로 해외 IP였음
- 회사 제품은 미국 내에서만 사용 가능했기에 해외 트래픽은 일반적이지 않았음
- 분산 서비스 거부(DDoS) 공격임을 알아챔
- 처음에는 서버 수준에서 IP 주소를 차단하려 했으나, AWS WAF(Web Application Firewall)가 이미 설정되어 있음을 기억해냄
- 즉각적인 중단 상황에 대처하기 위해 다른 국가에서의 요청을 차단하는 규칙을 설정함
- 이 조치로 수십만 건의 요청이 차단되었고, 웹사이트가 다시 작동하기 시작함
- 나중에 공격이 시작된 시점에 고객 지원 이메일로 메시지가 왔음을 발견함
- 보낸 사람은 형편없는 문법으로, 사용하지도 않는 Apache를 다운시키는 웹사이트 취약점을 발견했다고 주장함
- 5,000달러의 비트코인을 보내면 "솔루션 파일"을 제공하겠다고 했으나, 답장하지 않기로 함
- 필자는 여전히 고양이가 자신을 깨운 완벽한 타이밍을 믿기 어려워함
- AWS 경고로 인해 휴대폰이 진동하거나 소리를 내서 고양이가 먼저 깼을 것이라고 추측할 수 있으나, 야간에는 방해 금지 모드를 사용하고 있었음
- 따라서 고양이가 어떤 식으로든 아침까지 기다릴 수 없는 문제가 있다는 것을 감지했다고 생각하고 싶어함
- 이는 PagerDuty 알람으로 깨워지는 것보다 훨씬 더 기분 좋은 방식이었음
GN⁺의 의견
- 스타트업 초기에 공식적인 온콜 로테이션을 갖추기 어려운 건 사실이지만, 적어도 기본적인 모니터링과 알림 시스템은 갖추는 게 좋겠음. 팀원 모두가 상시 대기하는 건 지속 가능하지 않음
- AWS WAF 등을 미리 설정해두니 급한 상황에서 대처가 수월했던 것 같음. 보안 위협에 대비한 사전 조치의 중요성을 보여주는 사례
- 공격자의 이메일에 답장하지 않기로 한 건 현명한 판단이었음. 협박에 굴복하면 더 큰 문제를 야기할 수 있음
- 머신러닝 기반 이상 탐지 시스템을 도입하면 고양이 대신 알고리즘이 이런 공격을 조기에 포착할 수 있을 것. 하지만 반려동물의 직감을 과소평가해선 안 될 듯함