이 글에서는 Fast Flux 서비스 네트워크가 무엇인고 어떻게 동작하는지, 어떻게 탐지하고 대응해야 하는지 다룬다. 현실에서 온라인 피싱사이트나 맬웨어 호스트에 대한 접근을 차단하기가 쉽지 않은데, 그 이유는 방화벽에서 특정 IP를 차단하더라도 DNS와 봇넷을 이용하여 계속해서 IP를 바꾸고 차단을 회피하여 살아남기 때문이다.
Fast Flux는 TTL을 매우 짧게 주고 도메인에 다수의 IP 주소를 매핑한다. 따라서 클라이언트는 같은 도메인이라 해도 매번 다른 IP 주소로 접속하게 된다. 공격자는 자신이 장악하고 있는 호스트(즉, 좀비)에 피싱 사이트, 스팸 사이트, 맬웨어 업데이트 서버 등을 운영하고, 도중에 복구되거나 차단되면서 제어권을 잃어버린 호스트들은 떨어내면서 Fast Flux 네트워크를 유지한다.
Fast Flux 도메인이 가리키는 호스트들은 프론트엔드 서버 혹은 프록시 역할을 할 뿐이고 실제로는 모선에 해당하는 C&C 서버로부터 데이터를 받아 서비스하게 된다. C&C 서버를 차단하면 전체 Fast Flux 네트워크를 셧다운 시킬 수 있겠지만, 한 단계 뒤에 숨어있는 C&C 서버를 찾아내기란 쉽지 않다. 공개된 자료에 의하면 단 두 대의 C&C 서버가 수천개의 Fast-Flux 도메인을 운영하면서 네트워크를 유지한 경우도 있었다고 한다.

위 도식은 honeynet.org에서 가져온 것으로, Single Flux 운영 방식을 보여주고 있다. 위와 같이 flux.example.com을 요청했을 때 네임서버가 좀비 PC의 IP 주소를 반환하고, 좀비가 C&C로부터 내려받은 악성 컨텐츠를 클라이언트에게 반환하는 방식을 Single Flux라 부른다.

Single Flux에서 한 단계 더 나아가면 Double Flux가 된다. Double Flux는 Authoritative 네임서버 도메인도 여러 개 등록해서 이중으로 Fast-Flux 네트워크를 구성하는 것을 의미한다. 이러한 구성을 하게 되면 더 추적과 차단이 어려워지고, 한 두 개 호스트가 단절된다고 해도 안정적으로 전체 네트워크가 유지되는 특성을 가지게 된다. 이들은 뒤에 숨어있는 C&C 서버만 관리하면 되므로 비용을 적게 들이고 차단을 회피하면서 악성 컨텐츠를 효과적으로 뿌릴 수 있다.
맬웨어들은 Fast Flux 네트워크를 이용해서 안정적으로 업데이트를 수행할 수 있게 되고, 각종 변종을 만들어내거나 DDoS 공격 명령을 수신하면서 움직일 수 있다. 어떤 맬웨어들은 시간의 흐름과 미리 정해진 규칙에 따라 도메인 이름을 동적으로 만들어내면서 접속을 시도하고 다운로드한다. 이 경우 미리 정해진 도메인 이름이 아니기 때문에 생성될 수 있는 모든 조합의 도메인을 차단하는 것도 어렵다. (만약 도메인 주소 생성 규칙을 알고 도메인을 미리 등록한다면 얼마나 많은 수의 호스트가 해당 맬웨어에 감염되었는지 파악할 수도 있을 것이다.)
의심되는 도메인 주소를 확보했다면, 일정한 주기로 DNS 쿼리를 수행하면서 IP 주소 집합을 수집할 수 있다. 만약 TTL이 매우 짧고 비교적 최근에 등록된 도메인이면서 시간이 지남에 따라 전체 IP 주소 집합이 계속해서 증가한다면 이는 Fast Flux 도메인으로 규정할 수 있다. DNS 정보를 모니터링하면서 수집된 IP를 분석하면 외부에서도 어느 회사/조직이 감염되었는지 파악할 수 있을 뿐 아니라, 전체 봇넷의 크기를 유추할 수 있고, IP 집합의 유사성으로 각 악성 도메인 간의 연관 관계를 분석할 수 있다.
레퍼런스




덧글