다량의 IP로부터 공격 분산시켜...사용자 행동 패턴 모니터링 해야
[보안뉴스 문가용 기자] 자동화 봇으로 이루어진 세션과 사람이 직접 개입하는 세션의 차이는 무엇일까? 대부분이 말하는 답은 ‘속도’일 것이다. 물론 이는 사실이다. 사람과 기계가 속도에서 게임이 되겠는가.

자, 그럼 이 문제를 브루트포스 공격이라는 맥락에서 다시 생각해보자. 자동화 봇이 하는 브루트포스 공격과 사람이 하는 공격의 차이는 무엇일까? 바로 속도다. 브루트포스라는 공격 자체가 짧은 시간 안에 최대한 많은 경우의 수를 대입해보는 것이니, 이 속도라는 요인은 매우 중요하다. 그러므로 브루트포스는 무조건 기계가 하는 것이 맞다. 그렇지 않은가?
그런데 이 당연한 사실들이 최근 들어 자꾸만 부정당하고 있다. 사정은 이렇다. 1) 기계가 속도에 있어서 장점을 가지고 있다는 사실이 너무나 당연시 되다보니 2) 방어자들 역시 ‘속도’를 기반으로 한 탐지 모델을 장착하기 시작했고 3) 사실 이는 공격 시간을 재는 수준에 그친 방법이었다. 4) 물론 이 탐지 모델은 효과가 좋았다. 5) 그러니 공격자들이 방법을 바꾸기 시작했고, 6) 속도, 즉 시간을 재는 탐지 모델은 빛을 점점 잃고 있다.
공격자들이 방법을 어떻게 바꾸었나가 핵심인데, 이 얘기를 좀 더 해보고자 한다. 지난 10월의 첫 주, 내가 근무하고 있는 페리미터엑스(PerimeterX)의 일부 고객들에게 브루트포스 공격이 가해지는 걸 발견했다. 그 공격은 세계협정시(UTC) 기준으로 3시 30분경에 시작됐고, 약 34시간이 채 되지 않는 시간 동안 진행됐다. 그 동안 약 36만 6천 번의 로그인 시도가 이루어졌다. 이는 시간 당 1만 번꼴로 계산할 수 있다.
시간 당 1만 번 정도의 속도면 사람이 아니라 기계가 하는 것이라고 볼 수 있을 정도는 되지 않나, 라고 물을 수 있다. 그런데 여기에 한 가지 함정이 있다. 현존하는 ‘속도 기반 탐지 모델’에서의 속도란 한 개의 IP 주소에서 발생하는 공격의 시간 당 횟수를 뜻한다. 한 IP에서 천 번 공격이 일어나는 것과 천 개의 IP에서 한 번씩 공격이 일어나 천 번을 채우는 것이, 이 탐지 모델 입장에서는 다른 것이 된다는 뜻이다. 방금 언급한 공격에서도 천 개의 IP 주소에서 공격이 이루어졌고, 그래서 탐지 모델로 잡아낼 수가 없었다.
이를 좀 더 자세히 분석해보니, 공격에 사용된 IP 중 약 77%가 겨우 열 번 정도만 로그인을 시도했을 뿐이었다. 나머지 IP 주소들로부터 다량의 공격이 발생해서 현재의 탐지 모델로 어떻게든 발견되었다손 치더라도 77%의 공격 트래픽은 놓칠 수밖에 없었다는 것이다. 그렇기에 다시 브루트포스 공격이 실제로 증가하고 있는 추세고, 특히 워드프레스를 기반으로 한 웹 사이트에서 이 현상이 목격되고 있다.
그렇다면 ‘로그인 시도 횟수’를 제한할 수 있지 않는가, 라고 되물을 수 있다. 이 역시 맞는 말이고, 무제한 로그인 시도 횟수를 허용하는 건 시스템의 치명적인 취약점으로 취급받는다. 그러나 사실 로그인 시도 횟수를 제한한다고 해서 브루트포스 공격이 원천봉쇄 되는 건 아니다. 왜냐하면 요즘 해커들은 무제한으로 아무 ID와 암호를 대입하는 게 아니라 다른 곳에서 입수한 사용자 이름과 암호를 짝으로 사용하기 때문이다. 일반 사용자들은 어느 사이트에서건 같은 아이디와 암호를 대부분 사용하는데, 이 때문에 제한적인 횟수만으로도 브루트포스 공격은 성공 가능성이 높다.
또 다른 공격의 예도 있다. 한 번은 약 20분 동안 23만 번의 로그인 시도가 일어난 적이 있는데, 이 때 약 4만 개의 IP 주소가 활용되었다. 한 공격 당 길어봐야 20초 정도 진행되었다. 또, 한 IP 주소 당 많아봐야 10번 정도의 공격이 있었다. 역시 기존의 속도 기반 탐지 모델로는 잡아낼 수 없었다. 더군다나 당시 공격에 노출된 시스템은 5~30초 간 지속되는 공격을 탐지하도록 되어 있었기 때문에, 한 번에 20초 안에 일어난 공격에 대해 반응할 수가 없었다. 즉, 범인이 시스템의 특성을 파악해 얼마든지 ‘맞춤형’ 공격을 시도할 수 있다는 뜻이다.
이처럼 브루트포스 공격이 응용되고 있는 것을 보여주는 또 다른 사례가 있다. 역시 페리미터엑스의 일부 고객이 겪은 공격이다. 이 공격은 로그인을 수도 없이 시도한 브루트포스 공격과는 조금 달랐다. 공격자는 가짜 사용자를 생성해, 굉장히 많은 IP 주소를 확보해서 공격을 한 것이다. IP 주소가 얼마나 많았던지, 한 IP 당 한두 번만 공격해도 충분했다. 공격을 성공시키는 데에는 6시간도 걸리지 않았다.
위 세 가지 예의 핵심은 무엇인가? 바로 공격자가 마음 먹은 만큼 IP 주소를 많이 확보할 수 있다는 것이다. 위 공격들에 활용된 IP 주소들을 분석해보니 1%는 프록시, 익명 서비스, 클라우드 업체의 것이었고, 나머지 99%는 가정용 네트워크에서 발견되는 사설 IP였다. 이 결과가 가리키는 건 하나, 봇넷이다. 사물인터넷 기기든 사용자 PC든 해커들의 침입을 받아 봇이 되어버리는 현상이 증가하고 있다고 볼 수 있다. 게다가 가정용 사설 IP는 대부분 유동이라 항상 바뀐다. 블랙리스팅을 쓸모없게 만든다.
결국 이와 같은 ‘응용형 브루트포스’ 공격을 잡아내려면 사용자의 행동을 모니터링 해야 한다. 로그인 페이지에만 접속한다거나 사용자 이름이나 암호를 입력하는 게 지나치게 빠르다거나 마우스를 전혀 사용하지 않는다거나 하는 행위들은 매우 수상하다고 볼 수 있다. 결국 우리가 대부분 가지고 있는 브루트포스 방지 메커니즘의 효용성이 떨어져 가고 있다고 결론을 내릴 수 있다. 봇과 사람을 구분 짓는 것이 단순히 ‘속도’뿐인가? 다시 이 질문으로 돌아가야 할 때다.
글 : 아미르 셰키드(Amir Shaked)
Copyrighted 2015. UBM-Tech. 117153:0515BC
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>