2009년 07월 07일 오후, 학교 도서관에 있던 필자는 웹 메일 확인을 위해 휴대용기기의 Wi-Fi로 포털 사이트 메일 계정에 접속을 시도하였다. 그런데 접속이 지연되는 것이 아닌가? 계속되는 장애에 단순히 교내 네스팟 AP에 문제가 있다고 생각했다.
그날 저녁 집에 들어서자마자 어머니께선 “아들~ TV에서 인터넷이 이상하다고 하네? 무슨 말인지 도통 모르겠어. 뉴스 봐봐.”라고 말씀하시는 게 아닌가.
“그래요? 어차피 메일 확인할 게 있어서 컴퓨터 켜는데, 웹에서 기사 좀 찾아볼께요.”라고 별 생각 없이 답하였다.
PC를 켜자마자 메신저에 접속하니 며칠 전 대화상대 등록 후 한 번도 대화를 못 나눴던 안랩 커뮤니케이션팀 황차장이 로그인되어 있길래 "등록을 했는데 한번은 인사를 드려야 예의(?)지" 라고 혼자 중얼거리며 “설마 이 늦은 시각까지 업무 보시는 건 아니시지요?”라는 말로 대화창을 열었다.
이어지는 황차장의 대답....
“회사에요. 대응하느라 무척 바쁘네요.”
잠깐의 정적 후 순간 머리를 스치는 어머니의 말씀! 부랴부랴 포털 사이트에 접속해 시선을 이리저리 바쁘게 움직였다.
헤드라인을 장식한 “국내 사이트 대거 접속 불가 현상”이란 제목의 기사와, DDoS라는 매우 익숙한 키워드가 눈에 띄었다. 당연히 익숙할 수밖에 없었다. 분산 서비스 거부(Distributed Denial of Service)의 약자인 DDoS는 매일 읽는 IT 신문과 IT 커뮤니티에서 보안상 취약점으로 기사나 대화 주제로 많이 다뤘던 내용이다.
*DDoS 공격의 개념
DDoS 공격은 이번 사태에서 처음 이용된 기법은 아니다. DDoS 공격은 자기 능력을 과시하려는 수단으로 예전부터 이용되어왔다. 하지만 점차 DDoS 공격 후 금품을 요구한다든가 경쟁, 보복, 사이버 시위, 사이버 선제공격 등을 목적으로 이용되기 시작하였다. 이런 공격은 최근에는 뚜렷한 목적 및 대상을 갖고 공격의 성격 및 범위를 확대해가고 있다. 도박, 성인 사이트 등 신고가 어려운 사이트를 대상으로 진행되었지만 최근 들어 포털 사이트, 게임사 홈페이지, 쇼핑몰, 금융권 사이트 등으로 대상이 확대되고 공격 트래픽 규모 또한 커지고 조직적으로 움직이고 있다. 심지어 정부 사이트를 공격을 하는 등 대담해지고 범죄화하고 있다.
< DDoS 공격 목표 변화 추이 >
2009.08.08 : 그루지야 정부사이트 대상 공격
08.07 : 모 포털 카페 대상 DDoS
08.06 : 정당 사이트 대상 사이버시위 공격
08.03 : 국내 증권사 대상 금품 요구 DDoS
07.09 : 게임아이템거래사이트에 대한 금품 요구 DDoS
07.09 : virut 바이러스에 의한 해외 사이트 공격
07.06~8 : 여행,팬션예약 사이트 등에 대한 금품 요구 DDoS
07.05 : 에스토니아 정부, 국회 등의 사이트 DDoS공격
07.02 : 루트 DNS 6개가 Virut으로 인한 DDoS 공격 피해
07.02 : 성인화상채팅 사이트에 대한 금품요구 DDoS | <2007년 ~ 2009년 DDoS 공격 피해 사례>
우리가 흔히 쓰는 말 중에 하나가 “인터넷을 하다”라는 말인데, 이 말이 담고 있는 의미가 무엇일까? 검색을 하거나 뉴스를 보거나 쇼핑을 할 때도 인터넷을 이용한다. 검색할 때는 검색 엔진을 이용해 뉴스나 커뮤니티 등을 즐기며, 물건을 살 때는 인터넷 쇼핑몰 웹사이트에 방문하여 원하는 서비스를 제공받는다. 서비스를 제공하는 업체들은 서버(대용량 컴퓨터)를 배치해 놓는데, 우리는 바로 이 서버에 접속해서 그곳에 있는 글과 이미지 등의 정보를 다운받아 보는 것이다.
무엇인가 검색하기 위해 ‘야후’라는 검색 엔진 서비스에 접속한다고 하자. 웹브라우저에 http://google.co.kr라는 주소를 입력하고 엔터 키를 눌러 접속을 시도한다. 정확히 말하자면 우리가 google.co.kr라고 입력하면 DNS(도메인 네임 서버)를 거쳐 72.14.203.104라는 실제 IP 주소로 접속하게 된다. google.co.kr에 대한 ping test를 하면 아래와 같이 google.co.kr의 실제 주소인 72.14.203.104로 32바이트 크기의 패킷을 주고받는 것을 확인할 수 있다.
우리가 PC(이하 클라이언트)로 인터넷 주소와 맵핑된 IP 주소로 접속 요청을 하면 서비스 업체의 컴퓨터(이하 서버)는 응답하여 클라이언트가 요청하는 Query(질의)를 수행하고 결과를 클라이언트에 보낸다.
서버도 일종의 대용량 컴퓨터이기 때문에 하드웨어, 소프트웨어적으로 처리할 수 있는 규모가 한정되어 있다. 100대의 유닛을 처리할 수 있는 서버에 내가 접속하였다고 가정하자. 서버는 내가 사용하는 클라이언트에 1대의 유닛을 할당한다. 그러면 -1 유닛이 되어 가용 유닛이 99대가 된다. 이런 식으로 100대의 유닛이 모두 할당되면 더 이상 할당할 자원이 없으므로 101번에 접속하는 클라이언트 PC는 접속에 실패한다. 물론 기존 클라이언트가 접속을 해제하면 할당된 자원을 반환하기 때문에 허용된 범위 내에서 다른 클라이언트의 접속이 가능하다.
이와 같이 서버가 무한정 자원을 제공하고 처리할 수 없는 점을 이용, 수많은 접속 시도를 통해 다량의 패킷(Packet)을 보내어 해당 시스템의 자원을 부족하게 만들어 정상적인 서비스를 불가능하게 만드는 것이다. 이것이 바로 DoS 공격인데, 한 대가 아닌 수많은 공격자를 만들어 분산 배치하여 서비스 거부 공격을 하는 것이 바로 DDoS(분산 서비스 공격)이다.
DoS 공격으로 초래되는 피해는 크게 세 가지로 나뉜다.
1. 시스템 자원 소모 : CPU, Memory, 저장장치 등의 부하를 유발, 자원을 고갈시킨다.
2. 네트워크 자원 소모 : 트래픽을 유발, 네트워크 대역폭을 고갈시킨다.
3. 저장장치나 시스템을 파괴한다. |
*DDoS 공격 과정
먼저 이해를 돕기 위하여 아래 그림을 만들어보았다.
Attacker(공격자 혹은 공격 근원지)가 Master라 불리는 C&C(Command & Control) 서버를 두고 불특정 다수의 PC에 악성코드를 배포하여 감염시킨다. 수백 대에서 수만 대에 이르는 PC가 숙주(bot)가 되어버리고 이들이 네트워크로 묶여 봇넷(Botnet)이 된다. 중간 사령부 격인 C&C 서버는 Bonet과 통신을 통해 공격 시간과 공격 대상을 담은 명령을 하달한다.
이것이 기존 DDoS 공격 방식이라면 7·7 인터넷 대란에 사용된 방법은 기존 방법에서 조금 변형된 형태이다. 7·7 인터넷 대란을 일으킨 DDoS 공격은 C&C 서버를 통해 PC에 감염되는 악성코드에 사전에 공격 대상과 시간을 담은 스케줄이 있어 C&C 서버와 통신 없이도 계획된 시각에 지정된 목표를 공격한 것이다.
*7.7 DDoS 공격의 전말
최초 감염은 msiexec.exe라는 파일이 DDoS 공격을 수행하는 악성코드에 감염되면서 시작되었다. 이 파일은 MS사의 Windows 구성요소 중 install과 관련된 파일이며 C:\Windows\system32 경로에 존재하는 Windows에서 Microsoft Install 실행 파일로 install(프로그램 설치)과 관련된 역할을 하는 정상 파일이다.
이 악성코드가 감염된 경로는 웹하드 서비스를 제공하는 서울의 ‘P’ 업체와 부산의 ‘D' 업체라고 알려졌다. 공격자는 웹하드 서비스 업체의 서비스 서버에 침입하여 웹하드 프로그램 업데이트 파일에 악성코드를 심어 놓고 웹하드 서비스를 이용하는 사용자의 PC는 수행 시 자동으로 업데이트되면서 msiexec.exe 파일을 감염시킨 것이다. 사용자의 의사 결정 없이 자동으로 수행되는 웹하드 프로그램의 특징을 악용한 결과이다.
이런 경로로 감염된 사용자 PC의 msiexec.exe는 Master(C&C 서버)에 최초로 접속하는데, 이때 msiexec1.exe, msiexec2.exe, msiexec3.exe 파일을 내려받는다. msiexec1.exe는 wmiconf.dll, uregvs.nls, vme.bat, wmcfg.exe, mstimer.dll 파일을 생성한다. 그리고 이렇게 생성된 각 파일들은 서로 다른 역할을 수행한다.
uregvs.nls(V3 진단명 Win-Trojan/Agent.24576.AVC)는 공격 대상, 공격 시작/종료 시각 정보를 담았다. 아래 화면은 uregvs.nls를 생성하는 msiexec2.exe 파일이 담고 있는 공격 리스트이다.
<악성코드가 담고 있는 공격 대상 주소>
한국 |
- banking.nonghyup.com
- blog.naver.com
- ebank.keb.co.kr
- ezbank.shinhan.com
- mail.naver.com
- www.assembly.go.kr
- www.auction.co.kr
- www.chosun.com
- www.hannara.or.kr
- www.mnd.go.kr
- www.mofat.go.kr
- www.president.go.kr
- www.usfk.mil
|
미국 |
- finance.yahoo.com
- travel.state.gov
- www.amazon.com
- www.dhs.gov
- www.dot.gov
- www.faa.gov
- www.ftc.gov
- www.nasdaq.com
- www.nsa.gov
- www.nyse.com
- www.state.gov
- www.usbank.com
- www.usps.gov
- www.ustreas.gov
- www.voa.gov
- www.voanews.com
- www.whitehouse.gov
- www.yahoo.com
- www.washingtonpost.com
- www.usauctionslive.com
- www.defenselink.mil
- www.marketwatch.com
- www.site-by-site.com | <2차 공격 이후 7월 9일 발표된 1·2차 공격 리스트 및 3차 공격 예상 리스트>
wmiconf.dll(V3 진단명 Win-Trojan/Agent.67072.DL)은 DDoS 공격에 이용되는 트래픽을 발생시킨다. 실제 공격을 하는 파일이다. miconfig를 windows 서비스에 등록시킨 후 uregvs.nls에서 공격 대상을 읽어 DDoS 공격을 수행한다. 안철수연구소의 ASEC 분석 자료에 따르면 감염 시스템에서 초당 1050패킷/100KB 발생을 하며, 공격받는 시스템에선 초당 100패킷/7KB 정도의 네트워크 트래픽을 발생한다. wmiconf.dll 외에도 perfvwr.dll도 동일한 동작을 수행한다.
vme.bat(V3 진단명 Win-Trojan/Agent.24576.AVC)은 다운 받은 파일을 삭제하며, 모두 지워질 때까지 작업을 반복 수행한다. 삭제 후 자신(vme.bat)도 삭제된다.
wmcfg.exe(V3 진단명 Win-Trojan/Downloader.374651)는 실행 시 mstimer.dll을 생성 및 실행하며, mstimer.dll(V3 진단명 Win32/Mydoom.worm.45056.D)은 wmcfg.exe에 의해 생성 및 실행되어 Windows Timer Service로 등록하여 스팸 메일을 전송하며, flash.gif란 파일을 다운로드한다.
flash.gif(V3 진단명 BinImage/Destroyer)는 확장자(gif)가 그림 파일이지만 내부를 보면 정상 파일과 실행 파일로 구성되어 있다. 실행 파일 부분만 뜯어나와 작동하며, Wversion.exe를 생성한다.
Wversion.exe(V3 진단명 Win-Trojan/Destroyer.37264)는 mstimer에 의해 특정 조건(2009년 7월 10일 00시)이 만족할 경우 문자열 A~Z까지의 모든 하드 디스크의 물리적인 처음 시작 위치부터 ‘Memory of the Independence Day’ 문자열 데이터를 삽입하여 MBR(Master Boot Record) 및 파티션 정보가 삭제되는 증상을 유발한다. 파괴 전 *.ppt, *.xml, *.doc 등의 중요한 확장자를 검색, 암호화하여 복구를 불가능하게 만든다.
파일이 파일을 생성하고, 생성된 파일이 또 생성하고....글로 표현하기 역부족이기에 다음과 같이 표로 만들어 보았다.
위 그림은 악성코드가 감염된 msiexec.exe로부터 파생된 msiexec1.exe, msiexec2.exe, msiexec3.exe 중 msiexec1.exe가 어떻게 움직이는지 나타낸다. msiexec2.exe와 msiexec3.exe 모두 동일한 방식으로 움직인다. 다만 각 msiexec*.exe(*=1~3)가 포함한 uregvs.nls 파일이 담고 있는 공격 대상 리스트는 각각 다르며 msiexec2와 msiexec3 중 트래픽을 발생시키는 wmicong.dll이 포함되지 않는 것도 있다. 이런 경우 기존에 msiexec1.exe에 의해 미리 생성된 서비스를 이용해 자신의 공격 리스트(uregvs.nls) 기반으로 공격을 수행하는 것으로 예측된다.
경찰청 사이버테러대응센터에 따르면 이번 DDoS 공격으로 피해를 본 사이트의 수는 총 35곳(국내 21곳, 해외 14곳)으로 피해 규모는 정확히 측정하기 힘들정도이다. 특히 기업의 경우 경제적 피해가 막대한데 7월 8일 복구된 옥션(Auction.co.kr)의 경우 하루 동안 영업을 하지 못해 큰 손실을 보았다. 지난해 이 회사 연간 매출액은 2조 7천억원으로 하루 평균 매출액이 약 74억원이었음을 감안할 때 상당한 피해를 입은 셈이다. 또한 7월 10일 00시를 기점으로 하드디스크의 MBR 파괴로 인해 발생한 개인 사용자의 피해도 막대한 것으로 예상된다.
*내 PC가 좀비 PC?
이번 공격은 감염 PC가 늘어날수록, 그리고 목표 대상의 범위가 클수록 인터넷 대란이 아닌 인터넷 재앙으로 만들 수 있는 공격 기법이다. 자신의 PC가 DDoS 공격의 무기로 이용됐다면 충격적이지 않는가? 지금 DDoS 공격을 유발하는 악성코드를 찾으려 시스템 검사를 하거나, 혹은 검사를 통해 뒤늦게 발견하였다고 해보자. 계획된 공격 스케줄이 끝난 지금 어쩌면 무의미(?)한 일일 수 있다.
하지만 uregvs.nls에 담긴 스케줄대로 움직였다는 것은 스케줄이 추가되면 언제든지 재공격이 이루어질 수 있다는 것을 의미한다. 따라서 감염된 PC에서 악성코드를 제거하는 것은 반드시 필요한 작업이며, 관련 기관에서는 악성코드를 담은 PC가 인터넷에 접속 시 별도로 조치를 취해 제거해가고 있다.
자신이 사용하는 최신 엔진의 백신으로 스캔하는 방법도 있지만 별도의 전용백신을 소개하고자 한다. 아래는 안철수연구소에서 제공하는 DDoS 전용 백신이다. "전용백신 다운드로" 아이콘을 눌러 다운로드한 후 '검사 시작'을 누르면 지정된 모든 디렉토리를 검색하여 악성코드를 색출할 수 있다.
|
Win-Trojan/Agent (DDoS 악성코드 전용백신) |
|
치료 가능한 바이러스 |
| |
출처: http://kr.ahnlab.com/dwVaccineView.ahn?num=81&cPage=1
*DDoS 공격을 차단하려면
공격을 차단하기보다는 예방하고 공격이 발생할 경우 피해를 최소화한다는 표현이 적절하겠다. 서비스를 제공하는 한 24시간 내내 수많은 곳에서 이용자들이 접속하여 트래픽을 발생시키기 때문에 서비스 제공자가 정상적인 트래픽인지 아닌지를 가려내기란 매우 어렵다.
공격자인 Bonet PC들은 동일한 프로토콜의 절차 및 규칙을 사용해 DDoS 공격을 시도하기 때문에 보편적인 보안장비인 방화벽이나 침입방지시스템(IPS)이나 통합위협관리솔루션(UTM) 등에서 원천 차단이 불가능하다. 즉, DDoS 공격은 고정 시그니처로 차단할 수 있는 취약점 공격이 아닌 일반적인 통신 환경에서 사용할 수 있는 극히 정상적인 변수를 이용하는 비취약점 공격이기 때문이다. 또한 공격자들의 공격 유형이 좀더 체계적이고 다양한 접근 방법으로 변형, 순환되기에 기존 보안장비로는 DDoS 공격 차단이 쉽지 않다.
피해를 최소화하려면 다음을 유의해야 한다.
개인 사용자는
- 백신의 주기적 업데이트로 최신 보안 상태로 유지 및 실시간 감시 기능을 이용한다. 실제로 공격 1일 전 7월 6일 안랩의 V3 제품군에는 이미 관련 엔진이 업데이트되어 악성코드 감염 전 색출이 가능하였으며, V3를 주기적으로 업데이트한 사용자들의 PC는 안전할 수 있었다.
- OS의 주기적 업데이트를 실시하여 취약점을 통한 공격을 예방한다.
- 웹페이지 탐색 중 Active X ‘보안경고’ 창이 뜰 경우, 신뢰할 수 있는 기관의 서명이 있는 경우에만 프로그램 설치에 동의하는 ‘예’를 클릭한다. 서명이 불명확한 곳인 경우 설치를 삼가한다.
- P2P 방식의 공유 애플리케이션 사용을 가급적 피하고, 이용 시 내려받은 파일은 반드시 백신 필터링 후 이용한다. 그리고 공유폴더 권한은 반드시 ‘읽음’으로 한다.
- 출처가 불명확한 실행 파일은 저장 및 실행하지 않는다.
- 메신저를 통해 요청하지 않는 URL이나 파일을 받은 경우 보낸이에게 직접 확인 후 실행한다.
- 보안 관련 뉴스, 신문 등의 매체 혹은 블로그, 커뮤니티를 통해 최신 정보를 접한다.
서비스 제공 업체는
- 내부 네트워크와 외부 네트워크의 경계에 방화벽을 우선적으로 설치한다.
- DDoS의 특정 패턴 분석이 가능한 Anti-DoS 솔루션 설치와 운영으로 공격 전·중에 방어가 가능하도록 한다.
- 안정적인 네트워크의 설계로 일정량 이상으로 패킷이 라우터로 들어올 경우 각 시스템으로 분산시켜 균형을 조절하거나 패킷을 차단할 수 있도록 한다.
- 홈페이지의 철저한 보안 관리로 웹페이지의 취약점을 노려 사용자들에게 악성코드를 전이시키는 것을 막는다.
- 시스템에 대한 지속적인 패치(서비스팩, 핫픽스 등)로 최신 보안 상태를 유지한다.
- 충분한 인원을 배치하여 실시간으로 서버 트래픽 상태를 모니터링한다.
- 공격이 일어났을 때 어느 정도 완충 역할이 가능한 대용량 시스템을 구축하거나 공격을 우회 또는 분산할 수 있는 시스템을 마련한다.
국가, 정부는
- 관련 기간 간 공조로 효과적인 대응 체계 및 절차를 마련하여 비상 시 신속히 대응한다.
- 비용 문제로 네트워크 솔루션 설치가 어려운 중·소 규모의 IT 서비스 업체에 자금 지원을 대폭 늘린다.
- 발생 시에만 구성되는 TFT(Task Force Team)가 아닌 정부 산하 위기 대응반을 설립하여 상시 운용한다.
- 국민의 안전한 PC 사용에 관한 공익광고나 교육자료 등을 배포하고 교육 활동을 펼친다.
*7·7 인터넷 대란이 남긴 것
2003년 1월 25 인터넷 대란 이후 또 한번의 재해를 겪은 우리나라. 세계 최고의 IT 강국이라고 불리는 대한민국이 가장 고전적인 공격에 맥없이 무너져 내리는 모습을 보고 보안수 준은 아직도 후진국이라는 불명예를 안게 되었다. 눈 앞에만 보이는 이익에 급급하여 양적인 발전을 추구하고 보안 인프라 구축을 문외시한 결과가 얼마나 가혹한지 많은 깨달음을 얻었다. 이번 사태를 통해 개인 사용자, 서비스 업체, 정부가 얻은 점은 무엇인지 간략히 정리해 보았다.
첫째, 개인 사용자는 DDoS 공격에 대한 개념을 자세히 아는 계기가 되었음은 물론 개인 부주의로 인해 발생한 보안상의 취약점으로 개인 PC가 공격에 이용되어 엄청난 피해를 발생하였음을 인식하게 되었다. 보안에 대한 관심과 이해도가를 높아지는 계기가 되었다.
둘째, 서비스 제공 업체는 평소 간과하던 보안 문제가 일으킨 피해를 통해 큰 교훈을 얻었고, 보안 인프라 구축에 대한 필요성 인식은 물론 관련 예산을 증액하여 더 많은 투자를 할 것으로 기대된다.
셋째, 국가는 이번 피해를 계기로 다시 한번 보안 인프라 확충의 필요성을 느꼈으며 양적인 발전보다는 질적인 발전을 위해 정부 차원의 관련 정책 수정 및 마련, IT 서비스 업체에 대한 지원 등으로 보안 인프라 후진국이라는 불명예를 씻어내기 위해 다각적인 노력을 기울일 것으로 예상된다.
최근 경기불황으로 IT 투자가 위축돼 오히려 보안 위협에 노출 가능성이 높아졌다는 우려의 목소리가 높다. 특히 각종 보안 사고가 끊이지 않는 요즘 무조건적인 투자 축소보다는 최적의 비용으로 높은 효율성을 제공하는 검증된 솔루션을 도입하는 것은 현명한 선택임은 틀림없다. 나날이 지능화는 DDoS 공격에 맞서 효과적으로 대처할 수 있는 능력을 키워 안전하고 풍요로운 인터넷 세상에 한 발 다가설 수 있기를 기대한다. Ahn |