6월 25일 주요 정부 기관을 대상으로 한 DDoS(Distributed Denial of Service) 공격이 발생한 이후 새로운 형태의 DDoS 공격 형태가 6월 27일 추가 발견되었다.


이번 발견된 DDoS 공격 형태는 다수의 PC에서 ANY를 요청하던 방식에서, DNS ANY Query를  요청하는 것으로 위장(IP Spoofing) 한 후 ripe.net의 ANY 레코드의 결과를 Open Resolver(Reflector, 일종의 중계 DNS 서버)를 통해 정부 종합 센터의 네임 서버(Name Server)로 전송되도록 하는 전형적인 DNS 증폭 DDoS 공격 (DNS Amplification DDoS Attack) 형태이다.


1. 공격 과정


악성코드에 감염된 다수의 PC에서 IP Spoofing을 사용하여 DNS ANY 레코드 쿼리의 출발지 주소를 정부 종합 센터 DNS 서버로 위장하고, 해당 결과를 Open Resolver ( Reflector)가 적용된 DNS 서버를 통해 정부종합센터로 DNS Amplification DDoS 공격 이 유입되도록 한다.  


확인 결과, 금번 DNS 증폭 DDoS (DNS Amplification DDoS) 공격에 공격자가 동원한 20,000 여대의 DNS 서버가 모두 Open 된 DNS 서버는 아닌 것으로 분석되었다.



2. 공격 정보


이 번에 발견된 악성 코드는 2013/6/25 20:43:16 (GMT+9) 경에 제작된 것으로 파악되며, DNS 증폭 분산 서비스 공격을 목적으로 제작 되었다.


1) wuauieop.exe (131,072 바이트)

공격 대상은 앞서 언급한 바와 같이 ns.gcc.go.kr와 ns2 gcc.go.kr 을 대상으로 하고 있다. 이전 공격과 큰 차이점은 출발지 IP 주소를 Spoofing 하여 응답 되는 내용이 gcc.go.kr 로 향하게 하고 있다. 

이 공격기법은 해외에서도 여러 차례 사용된 바 있는 DNS amplification 이며, 출발지 IP 를 변경하여 응답이 조작된 출발지 IP 로 가도록 해둔다. 공격 패킷들은 RIPE.NET로 ANY 쿼리 한 것으로 나오며, 이는 공격을 더 임팩트(Impact) 있게 하기 위한 것이다. 

wuauieop.exe (131,072 바이트)가 감염된 시스템에서 실행 되면, 다음과 같은 순서로 동작하며 이를 반복하게 된다.

1) 감염된 시스템의 현재 시간 정보를 얻어와 공격을 할 것인지 우선 판별
2) 감염된 시스템의 IP와 네트워크 디바이스(Network Device) 장비 정보 획득
3) Pcap의 open_live 함수를 사용하여 packet capture descriptor(PCD)를 생성
4) 공격을 위한 스레드(Thread)를 30개를 생성
5) Pcap의 send_queue_alloc 함수를 이용하여 패킷의 큐스택 할당
6) Pcap의 send_transmit 함수를 이용하여 패킷 전송
7) Pcap의 Send_Queue_Destroy 함수를 이용하여 큐스택 제거

해당 파일은 ripe.net의 ANY 응답 결과를 전달할 때 사용하는 중계 DNS 서버 목록은 악성 코드의 .data 영역에 포함되어 있으며, 아래 이미지와 같이 VA값 0x40A044(FileOffset 0xA044)에서부터 IP 목록을 가져오게 된다.



아래 이미지와 같이 파일오프셋(FileOffset) 0xA044 위치에는 IP 목록이 저장되어 있음을 알 수 있다.



참조하기 위한 번호 EDX값을 구하기 위하여 0x4C82로 나누는 것으로 미루어, 공격에 사용할 Resolver IP의 수는 19,586개로 추정 된다.


그리고 해당 파일은 아래 이미지와 같이 "ripe.net"의 ANY 쿼리 결과를 사용하도록 하였으며, 이 결과는 일반적인 요청 결과에 비해 매우 큰 데이터 크기로 증폭 공격의 효과를 극대화하기 위해서 이다.


2) Ole[정상 윈도우 서비스명].dll (218,112 바이트)

특정 시스템으로부터 다운로드 되는 해당 파일은 기존에 발견된 동일 명칭의 악성코드와 동일한 악의적인 기능을 수행하도록 제작 되었다. 

그러나 감염된 시스템의 감염 여부 확인을 휘해 사용하는 OpenFileMappingA 함수를 호출하여 확인하는 MappingName의 값이 아래와 같이 변경되었다.

MappingName = "Global\MicrosoftUpgradeObject9.6.5"

해당 파일은 윈도우 시스템(System32) 폴더에 ole[정상 윈도우서비스명].dll 파일명으로 생성된다. 해당 파일의 파일명은 감염 될 때 마다 달라지는데 Ole 라는 문자를 접두어로 항상 일정하게 사용하고, 감염된 시스템의 윈도우 정상 DLL 파일명을 조합하여 파일명이 만들어 지는 것으로 추정 된다.

해당 ole[정상 윈도우서비스명].dll 파일은 윈도우 서비스로 동작하면서 아래와 같은 동일 조건이 생성되면 다음 경로에 파일을 생성 및 실행 하게 된다.

윈도우 시스템 폴더(System32)\wuauieop.exe(131,072 바이트)

그러나, 해당  wuauieop.exe(131,072 바이트) 파일을 생성하고 실행하기 전에 다음의 URL 접속하여 파일을 다운 받아 온다.

webmail.***************.com/mail/images/ct.jpg
www.*************.net/pictures/e02947e8573918c1d887e04e2e0b1570.jpg

다운로드가 성공하게 되면 사용자 계정의 임시 폴더(temp)에 ~MR[숫자2자리].tmp 파일을 생성하게 된다. 

3) 공격 대상 URL


wuauieop.exe (131,072 바이트)는 코드에 명시된 "ripe.net"의 ANY 쿼리의 응답을 Open Resolver를 사용하는 DNS 서버에 전송하고, 해당 결과를 정부종합센터의 네임서버(152.99.1.10, 152.99.200.6)로 유도하여 공격하는 다음과 같은 특징을 가지고 있다.


* Ripe.net의 ANY Query의 결과는 1000 바이트 이상으로 일반적인 요청에 비해 수십 배에 달함.

다수의 Open Resolver에서 ANY Query의 결과를 정부종합센터로 유도하여, 대역폭 고갈 및 네임 서버 자원 고갈을 목적으로 하는 전형적인 DNS 증폭 분산 서비스 공격 방식


공격 대상은 다음과 같이 2대의 정부종합센터의 네임서버이다.

ns.gcc.go.kr (152.99.1.10)
ns2.gcc.go.kr (152.99.200.6)

4) 공격 패킷 분석

아래 이미지와 같이 정부종합센터의 네임서버 (152.99.1.10, 152.99.200.6)가 ripe.net의 ANY 레코드를 요청한 것으로 위장하여, 결과 패킷을 정부 종합센터의 네임서버에 전송되도록 하고 있다.


Ripe.net의 ANY 레코드의 결과는 1000 바이트 이상으로, 다수의 PC에서 요청을 하여 대역폭 고갈 및 네임 서버 자원 고갈 등의 시도하고 있으며, 공격 패킷들의 특징을 정리하면 다음과 같다.

* ANY 레코드 요청 - DNSSEC 을 지원하는 RIPE.NET 에 ANY 요청하여 큰 데이터를 받음
* 출발지 IP 주소 위장 (Spoofing)하여 응답이 정부종합센터(gcc.go.kr)의 네임 서버로 전송되도록 유도

추가적인 TCP 연결이 발생되어 부하 가중될 수 있음
응답이 512 바이트가 넘어서면 DNS 에서는 Truncated 플래그를 체크하여 TCP로 전송하도록 유도 
RIPE.NET에서 3000 바이트 가 넘게 응답이 있으면, TCP로 전송 시도

* 분할(Fragement)된 패킷의 재조립으로 서버 부하 시도
 1500 바이트가 넘는 데이터는 전송 시 분할(Fragmentation) 되고, 도착지에서는 재조립(Reassemble)하면서 부하 가중

아래 이미지는 해당 파일에 감염된 PC에서 수집한 패킷 통계로 초당 약 4,400개의 DNS ANY 쿼리가 전송되는 것을 나타내고 있으며, 해당 수치는 PC의 사양에 따라 다를 수 있다.



이 번에 발견된 주요 정부기관 DNS 서버를 대상한 DNS DDoS 2차 공격을 위한 목적으로 제작된 악성코드들은 최신 엔진으로 업데이트 한 V3 제품 군에서 모두 다음과 같이 진단한다.


Trojan/Win32.Ddkr

Trojan/Win32.XwDoor 


현재 ASEC에서는 해당 악성코드들에 대한 상세 분석을 진행 중에 있으며, 추가적으로 확인된 정보들이 있을 경우에는 해당 블로그를 통해 지속적으로 업데이트 할 예정이다.


저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by 비회원