F O C U S 2 최근주요해킹사고사례와대응전략 이재춘 * 지난해발생한 3.20, 6.25와같은대규모사이버공격뿐아니라, 인터넷을통한해킹사고는꾸준히증가하고있다. 해킹된시스템은악성코드를유포하는경유지로악용되거나또다른시스템을공격하는공격도구로악용되기도한다. 또한, 시스템을해킹한공격자는시스템을파괴하거나시스템이보유하고있는중요자산을탈취하여피해대상에게막대한손실을입히기도한다. 한국인터넷진흥원 (KISA) 민간에서발생하는해킹사고에대하여, 분석하고추가적인피해를예방할수있도록다양한방법으로기술지원을제공하고있다. 본문에서는 KISA가분석한다양한해킹사고사례를토대로, 최근공격자들이주로사용하는해킹기법중시스템관리자들이필수적으로점검해야할핵심적인내용들을알리고, 시스템관리자들및일반사용자들이취해야할방법과한국인터넷진흥원이향후발전시켜나가고자하는해킹사고대응전략을살펴보고자한다. Ⅰ. 서론 Ⅱ. 해킹사고현황 Ⅲ. 주요해킹사고사례와대응전략 1. NTP 증폭을사용한 DDoS 공격 2. SQL injection을통한계정정보탈취 3. 파일업로드취약점을악용한웹셸업로드 4. 게임스킨등을통한악성코드배포 Ⅳ. 결론 ** 침해사고분석단침해사고조사팀선임연구원 (jclee@kisa.or.kr) 24 INTERNET & SECURITY FOCUS April 2014
Ⅰ. 서론 KISA 는다양한방법으로해킹사고를탐지하고있으며, 자체적으로보유하고있는탐지체계 FOCUS 뿐만아니라시스템담당자들이직접신고하는신고체계또한해킹사고탐지에있어중요한역할을차지하고있다. 시스템이해킹될경우그결과는다양한현상으로드러나게된다. 해킹된시스템은악성코드를유포하기위한경유지로악용되기도하고, 기업의개인정보를유출하는통로로사용되기도하며때로는다른시스템을공격하는공격지로활용되기도한다. KISA는이렇게탐지된해킹사고의피해확산과재발방지를위해피해시스템을직접분석하고대응방안을제시하는역할을수행하고있다. 본문의가장큰목적은수시로발생하는해킹사고를분석한경험을토대로시스템관리자들이필수적으로알아야할공격자들의주요해킹기법과이에대한대응방법을알리는것이다. 해킹사고대응을위해시스템관리자가필수적으로취해야하는기본적인대응전략을살펴보고, KISA가향후진행하고자하는대응전략에대해서소개한다. Ⅱ. 해킹사고현황 1. 국내해킹사고동향 [ 그림 1] 국내해킹사고의변화 25
2000년대초반해킹사고는바이러스나윔과같이개인의 PC에악성코드를감염시키고이를통하여발생하는사고가주를이루었다면, 현재는공격기법이점차고도화되어 APT 공격및개인정보유출, DDoS 공격등으로인한사고가증가하는추세이다. 실제, KISA가분석한해킹사고를살펴보면악성코드감염으로인한해킹사고가확실히줄어들었으며, 점차새로운공격기법이나특정한목적으로한서버대상해킹사고가늘어난것을확인할수있다. 본문에서는 KISA가직접분석한해킹사고중가장최근에발생하였으며, 중요한다음의 4가지경우에대하여직접사례를설명하고이에대한대응방법을소개한다. 1 NTP 1 증폭을사용한 DDoS 공격 SQL injection을통한계정정보탈취파일업로드취약점을악용한웹셸업로드게임스킨등을통한악성코드배포 Ⅲ. 주요해킹사고사례와대응전략 1. NTP 증폭을사용한 DDoS 공격 1) 개요해킹사고원인을조사하다보면, 시기에따라특정기법이유행하곤하는데, DDoS 공격에도트렌드가존재한다. 과거에는다수의좀비 PC에악성코드로감염시킨후트래픽을발송하는전통적인 DDoS 공격이주를이루었는데, 2013년에는특정웹사이트방문자가자신의 PC에서웹스크립트가자동수행되며특정서버를공격하는방식의공격이유행하였고, 최근에는 NTP 서버를이용한증폭공격이유행하고있다. 1 `NTP(Network Time Protocol) : 네트워크타임프로토콜, 네트워크를통하여컴퓨터시스템간시간동기화를위해사용하는프로토콜. NTP 는델라웨어대학교데이비드 L. 밀스가설계하여 1985 년이전부터작동해온가장오래된인터넷프로토콜중하나 26 INTERNET & SECURITY FOCUS April 2014
일반적인서버들은시간동기화를위하여 NTP 서버 2 로부터시간정보를받게되는데, 공격자가자신의 IP 주소를위조하게되면, NTP 서버는해당서버에시간정보를보낼수있다. 구버전 NTP 서버는접속한 IP 들을보여줄수명령어 (monlist) 3 를지원한다. 만약공격자가 FOCUS 자신의 IP를위조해서 monlist를 NTP 서버에요청하게되면, 위조된 IP로 NTP 서버에접속한리스트를전송한다. 이때, 최초요청한명령어가담긴작은패킷보단큰패킷 (NTP 서버에접속한 IP 리스트 ) 을전송할수있으므로, 이를 NTP 증폭공격이라고한다. 올해초초당 400기가바이트규모의프랑스웹사이트를마비시킨최대의 DDoS 공격, 3월 16일발생한북대서양조약기구 (NATO) 의웹사이트를공격한 DDoS 공격이이에해당하는데, KISA에도올해초이와같은해킹공격에대하여신고가들어왔다. 2) 사고사례최근 A게임유럽지사의 게임이 DDoS 공격의대상이되었다는신고를받았다. 이에 KISA은 게임의과도한트래픽을전송한국내 IP를조사하였다. 해당 IP 들은국내유수의대학들이였는데, 신고내역과 IP 등의정황상으로는대학교내에존재하는좀비PC들이 DDoS 공격을한일반적인경우와같았다. [ 그림 2] DDoS 공격이이루어진 C 전자의전자냉난방셋탑박스내 외관 2 NTP 서버 : 시간동기화를위해시간정보를요청시시간정보데이터를보내주는서버 3 monlist : NTP 서버는서버에최근접속한 600 개의클라이언트 IP 를보유하고있는데, 이러한접속정보를요청하는 NTP 데몬의명령어 FOCUS 2 최근주요해킹사고사례와대응전략 27
하지만, 상당히많은수의장비가대학내존재하는일반 PC나서버가아닌, 국내 C 대기업의냉 난방관리를위한셋탑박스와 D 보안업체장비등의 IP 로확인되었다. 분석시셋탑박스들은외부에서침입이나악성코드흔적은발견되지않았으며, 일부는접속이가능한 Telnet 4 이나 SSH 5 포트조차없어셋탑박스가해킹경유지로써활용될수있는증후등이발견되지않았다. 사실, 해킹사고중서버나 PC가아닌셋탑박스가공격지가되어공격이이루어진사고는흔히있는경우가아니었으며, 일반사용자가인터넷등을하다가악성코드에감염될확률은낮았다. 하지만아래와같은분석을통해, 각각의장비및셋탑박스장비의공통점은 NTP 서버포트 (123) 가열려있고, 해당 NTP 서버에인-바운드아웃-바운드트래픽의변화가많은것으로 DDoS 공격을한것을확인할수있었다. 3) 사고분석 1 프로세스및네트워크분석결과 - UDP/123 포트가열려있는것을확인 [ 그림 3] 포트 (123) 사용확인 4 Telnet : 네트워크상의다른컴퓨터에로그인하거나원격시스템에서명령을실행하고다른시스템에파일을복사할수있도록해주는응용프로그램또는그프로토콜. 1969 년개발되어최초로사용된인터넷표준중하나. 보안문제때문에사용률이감사하여원격제어를위해 SSH 로대체되기도하였다. 5 SSH(Secure Shell) : Telnet 의보안문제등으로나온프로토콜 28 INTERNET & SECURITY FOCUS April 2014
- 프로세스목록에서 NTPD 동작확인 FOCUS [ 그림 4] 프로세스목록에서 NTP 동작확인 2 NTPD 로그분석결과 - 특정기간동안외부 IP 로부터 NTPD 에접근한흔적확인 [ 그림 6] monlist 명령어사용가능 해당로그는레드햇 CVE-2009-3563 취약점을이용해공격한흔적 CVE-2009-3563 참조 URL : https://access.redhat.com/security/cve/cve-2009-3563 3 공격방법확인 (NTPD 의 monlist 명령어실행가능 ) - monlist 명령어를이용한패킷증폭 DDoS 공격가능 (CVE-2013-5211 취약점 ) CVE-2013-5211 : NTP 데몬의 monlist 명령어를이용하여패킷증폭후 DDoS 공격에악용가능한취약점 monlist : NTP 서버에최근접속한 600개의시스템목록을요청하고출력하는명령어 [ 그림 6] monlist 명령어사용가능 FOCUS 2 최근주요해킹사고사례와대응전략 29
- DDoS 공격시간대에 NTPD 의 recvbufs error 로그가남음 CVE-2013-5211 취약점은해당오류로그를남기는특징이있음 [ 그림 7] monlist 공격을한흔적확인 4 분석결론 [ 그림 8] NTP 서버를이용한공격시나리오 30 INTERNET & SECURITY FOCUS April 2014
해당 DDoS 공격은공격자가자신의 IP 를변조하여 NTP 서버취약점이존재하는냉난방 제어장치에서 monlist( 시간정보를요청한서버 ) 로 A 게임유럽지사서버가받게하는방식 으로이루어진 NTP 증폭공격이였다. FOCUS 4) 대응전략 (1) NTP 서버취약성존재여부확인방법시스템관리자가자신이운영하는네트워크대역에취약한 NTP 서버가있는지는다음의 3가지방법으로확인이가능하다. 1 ntpdc 명령어로확인하는방법 # ntpdc -n -c monlist pool.ntp.org pool.ntp.org: timed out, nothing received ***Request timed out 2 nmap 6 스크립트활용 nmap 에서는 nse script 7 를제공하고있으며, 이를활용하여아래와같이체크해볼수있다. @usage nmap -su -pu:123 -Pn -n --script=ntp-monlist <target> @output PORT STATE SERVICE REASON 123/udp open ntp udp-response ntp-monlist: Target is synchronised with 127.127.38.0 (reference clock) Alternative Target Interfaces: 10.17.4.20 Private Servers (0) Public Servers (0) Private Peers (0) Public Peers (0) Private Clients (2) 10.20.8.69 169.254.138.63 Public Clients (597) 4.79.17.248 68.70.72.194 74.247.37.194 99.190.119.152... 12.10.160.20 68.80.36.133 75.1.39.42 108.7.58.118 68.56.205.98 2001:1400:0:0:0:0:0:1 2001:16d8:dd00:38:0:0:0:2 2002:db5a:bccd:1:21d:e0ff:feb7:b96f 2002:b6ef:81c4:0:0:1145:59c5:3682 Other Associations (1) _ 127.0.0.1 seen 1949869 times. last tx was unicast v2 mode 7 6 nmap : 네트워크스캔도구 7 nmap script : nmap 에서제공하는취약점을찾을수있는스크립트 FOCUS 1 최근주요해킹사고사례와대응전략 31
3 http://openntpproject.org/ 사이트확인 http://openntpproject.org/ 에서는특정 IP를입력하면해당 IP 대역에서오픈되어있는 NTP 서버목록을볼수있다. 따라서자신이운영하고있는대역에취약한 NTP서버가없는지확인할수있다. (2) NTP 증폭서버로악용되는것막는방법 NTP 서버에서 monlist 기능을뺀최신버전 (NTP 4.2.7 이상버전 ) 의 NTP 서버로업그레이드 하거나 NTP 의설정파일인 ntp.conf 에서아래와같이 noquery 옵션을추가하면된다. <ntp.conf> restrict default noquery server pool.ntp.org driftfile /etc/ntp/drift NTP 데몬의구조상서버던클라이언트이던반듯이 123/udp 포트를 listen 하여야한다. 이에따라 NTP 123/udp 포트자체를막기힘든것또한사실이다. 따라서 NTP 패키지업데이트도불가능하고, 위의설정을추가하는것도어렵다면, 방화벽을통해 123/udp에대한 ACL 설정을하여꼭필요한소스 IP에대해서만응답하도록설정할할수도있다. (3) NTP 증폭공격막는방법 자신의서버가 DDoS 공격을당하는상황이라면, 1 방화벽이나 anti 디도스장비에서 udp 프로토콜에대한임계치를설정하여차단 2 UDP 123 포트를사용하지않을경우 123 포트차단 3 MON_GETLIST 부분의시그니처를패턴으로차단 등의방법중하나를선택하여 NTP 증폭 DDoS 공격을막을수있다. 2. SQL injection 을통한계정정보탈취 1) 개요 SQL injection 공격은가장널리악용되고, 오래된전통적인해킹기법중하나이다. 32 INTERNET & SECURITY FOCUS April 2014
하지만, 다시언급하고재차주의를기울여도될정도로해커들이많이사용하는필수공격 기법중하나인데, 최근에는계정정보유출에많이악용되고있다. 특히, 올초발생한 1700 만건개인정보유출사고및 2013 년말에발생한 E 방송국관리자 FOCUS 계정유출사고등언론을통해알려진크고작은개인정보유출사고의상당수가이러한 SQL injection의공격기법을사용한것이다. 일반적으로이러한개인정보유출사고에는 SQL injection 기법중 Blind SQL injection 8 과 Error Base 기반 SQL injection 9 공격이자주사용되는데, 이를수동으로할경우시간이많이소요되기때문에실제해킹사고에서공격자들은자동화도구를많이사용한다. 특이할점은앞으로소개한해킹사고이외에 개인정보 1700만건유출사고 를비롯하여 '14년초에발생한많은개인정보유출사고들이 Error Base 기반의 SQL injection 기법이악용되었으며, 동일한도구를사용한중국 IP에서의공격이었다. 2) 사고사례국가기관친목단체인 F사는사는최근한언론사에서해킹을당해개인정보가유출되었다는제보로실제정보가유출되었는지확인할수가없었기때문에기술지원요청을하였고 KISA에서는서버분석을진행하였다. 해당서버는외부에서웹페이지를크롤링 10 한흔적을확인하였으며, SQL injection 작업을수행하여대규모개인정보를탈취한증거를확보하였다. 이때유출된개인정보의경우, 친목단체회원이웹으로가입한회원들의웹계정 / 패스워드 / 이메일 / 전화번호 / 이름 / 가입일등이였으며, 중복회원및관리자포함 2만명이넘었다. KISA에서는이러한취약점조치방안을알려주고, 업체가확인하지못했던정확한유출범위및내용등을확인시켜주었다. 8 Blind SQL injection : SQL 인젝션중하나로일반적인평범한 SQL 인젝션과다른점은 SQL 인젝션은쿼리를삽입하여원하는데이터를한번에얻어낼수있는데비해, 참과거짓값에대한서버의반응만으로정보를얻어내는공격기법 9 Error Base 기반 SQL injection : 의도적인에러를발생하는 SQL 쿼리를전송후이에러메시지를통하여정보를얻어내는공격기법 10 웹크룰링 (web Crawler) : 웹사이트구조를알기위하여해당웹사이트링크를모두추적해가며구조를파악하는것. 일반적으로검색엔진과같은사이트에서최신상태를유지하기위해봇등을이용하여사용하며, 웹해킹등을위해처음웹구조를파악하는데활용하기도함 FOCUS 2 최근주요해킹사고사례와대응전략 33
3) 사고분석 1 SQL injection 공격확인 - 공격자가 SQL injection 으로서버의 DB 테이블명등을확인식별한것을확인 [ 그림 9] error_base SQL을통한 DB 테이블명확인과정 SQL injection을통하여발생하는에러를기반으로 DB 테이블들을확인함. 해당공격문자열등의특징들을살펴보면 SQL 공격시사용된일부자동화도구의종류등도확인가능 2 SQL injection 을통한개인정보유출확인 - SQL injection 으로개인정보 (24,143 건, 중복포함 ) 가유출된것을확인함 [ 그림 10] SQL injection 공격에의하여유출된개인정보 유출정보 : 관리하는식별자, 웹계정, 패스워드, 이메일, 전화번호, 회사전화번호, 핸드폰번호, 뉴스레터수신여부, 가입일, 계정권한등 4) 대응전략 (1) SQL injection 취약점확인방법일반적으로 SQL injection 취약점은웹사이트가데이터베이스와연동된기능수행시사용자의입력값으로쿼리문자열을전송하였을때발생된에러나비정상적인결과에 34 INTERNET & SECURITY FOCUS April 2014
DB 서버정보, 인증정보등중요정보가포함되거나, 인증우회등이발생한경우취약한 것으로판단할수있다. 하지만이러한 SQL injection 을업체의보안관리자가모두확인해가면서체크하기쉽지 FOCUS 않기때문에, 모의해킹등을수행하는민간컨설팅업체나한국인터넷진흥원의웹취약점 점검 (www.toolbox.co.kr) 을받은후이에대한조치를취하는것도하나의방법이다. (2) SQL injection 취약점방어방법 SQL injection 의방어방법은크게시스템관리자, DB 관리자, 개발자등의관점에서 나누어생각할수있는데, 여기서는일반적인 SQL injection 방어방법을소개한다. 1 웹어플리케이션과연동되는데이터베이스의접근권한을최소화한다. - 연동되는 DB계정을 sa, root 같은관리자계정으로하지말아야한다. - 웹서비스전용권한이축소된계정을생성하여사용한다. 2 Internal Error(500) Page 에대한오류정보를노출시키지않아야한다 3 데이터베이스쿼리에사용되는문자열을검사하여모두삭제하도록처리한다. - EXEC XP_, EXEC SP_, UNION, SELECT, INSERT, UPDATE, 주석처리를의미하는 --, # 등 4 사용자의입력값및서버로전송되는모든파라미터에대해필터링처리를수행 - single quote( ), Double quote( ) 문자발견시삭제또는 replace 처리 - 파라미터의데이터타입을구분하여동일한데이터타입만허용하도록처리 - 파라미터별데이터길이값을제한 5 Database 운영레벨에서 SQL Injection 방어 - DB 계정에최소권한부여 - 웹사이트에서사용되는 DB 계정에최소한의권한만부여해야함 - DB 계정에 system 권한 (sysdba, sa, root 등 ) 을부여해서는안됨 - 에러발생시웹서버또는 WAS에서정형화된에러페이지를출력하도록설정하여에러에의한 DB 정보노출을방지함 - SQL Server의경우 xp_cmdshell 확장프로시저를제거함 3. 파일업로드취약점을악용한웹셸업로드 1) 개요 파일업로드취약점은 SQL injection 과더불어가장많이악용되는보편적인공격방법중 하나이다. FOCUS 2 최근주요해킹사고사례와대응전략 35
일반적인웹어플리케이션들은구축의편의성에비해많은사용자들이방문하고이용하게된다. 이때, 보안요소에대한고려없이개발된웹어플리케이션들은웹사이트취약점이존재하고, 이러한취약점을통해쉽게공격이이루어질수있다. 그중에서도특히웹사이트방문자가게시물 ( 파일 ) 을업로드할수있는기능이존재할경우악용될소지가다분하다. 공격자들은파일을업로드하는기능을악용하여웹셸과같은공격도구를업로드하고, 업로드된웹셸을통해추가적인해킹을수행하게된다. 운영중인서버에웹셸이업로드될경우공격자는웹으로업로드된웹셸에접근하여서버에대한다양한정보를확인하는것이가능하다. 또한파일을삭제하거나변조하는것도가능하며, 서버에서시스템명령을실행하거나리버스커넥션 11 연결을통해보안장비를우회하는공격도가능하게된다. 즉, 서버에일단웹셸이업로드되면서버는공격자에게장악되었다고볼수있다. [ 그림11] 과같이하나의파일전체가웹셸인경우도많이있지만, [ 그림12] 와같이한줄로처리되는웹셸도많이발견된다. 한줄로된웹셸의경우공격자가정상웹소스에웹셸코드를추가해두는형태로발견되며, 그위험성은하나의파일전체가웹셸인경우와차이가없다. [ 그림 11] 1860 라인의전문프로그램수준의웹셸 11 리버스컨넥션 : 방화벽이존재하는시스템을공격할때자주사용되는기법으로공격대상시스템에서공격자의 PC 로접속을요청하게하는기술 36 INTERNET & SECURITY FOCUS April 2014
FOCUS [ 그림 12] 웹사이트에삽입된한줄웹셸 특히, 이러한한줄웹셸은개발자가해당웹페이지를완전히업데이트할것을대비하여웹사이트소스코드여러파일에심어두는것이일반적이다. 이와같이한줄웹셸이삽입된웹페이지는웹사이트개발자들이해당페이지를추후재활용할때도인지하지못하고다시 복사 / 붙여넣기 를하다가새롭게개발한웹사이트에도무의식적으로들어가는경우도많았다. 2) 사고사례 13년말 H 쇼핑몰은공격자가홈페이지내악성스크립트를삽입하여, 악성코드경유지 12 로활용되었다. KISA 탐지시스템에서는 H 쇼핑몰이악성코드경유지로악용되는것을탐지하고업체에이를알렸으며, H 쇼핑몰은이에 KISA에해킹원인을확인해달라는기술지원요청을하였다. 12 악성코드경유지 : 악성코드유포지로연결하여악성코드를다운받게하는웹사이트. 일반사이트가악성코드경유지에접속할경우사용자본인도모르게웹브라우져는유포지에자동연결되어악성코드를다운받음 FOCUS 2 최근주요해킹사고사례와대응전략 37
3) 사고분석 1 공격자행위확인 - 2013 년 2 월 17 일 17 시경공격용으로사용하기위한도구 2 종설치 [ 그림 13] 서버에설치된 PDF 및 RAR 패스워드크랙도구 [ 그림 14] 중국에서사용되는 HaoZip 악성코드를 zip 파일로업로드후 HaoZip 을통하여해제한것을확인함 - 감사로그삭제한흔적및공격자가실수로남긴 IP 주소등확인 [ 그림 15] 이전공격감사로그를삭제한기록 [ 그림 16] 공격자가실수로남긴원격접속흔적 38 INTERNET & SECURITY FOCUS April 2014
2 설치된악성코드확인 < 표 1> 확인한악성코드 1 FOCUS [1]. ServTestDos.dll 악성코드 - 13-06-02 감염된것으로확인됨 - 바이러스포탈에서탐지비율 43/49 < 표 2> 확인한악성코드 2 [2]. WmpShareSvcEx.dll 악성코드 - 13-07-28 감염된것으로확인됨 - 바이러스포탈에서탐지비율 16/40 3 침입경로가되는웹셸확인 - 웹셸을업로드할수있는경로및해당경로를통해웹셸과관련로그 [ 그림 17] 웹셸을업로드하는데이용된취약한웹페이지... GET /a/editor_image/popupwin/editor_insertimage.htm content 80? xxx.xxx.xxx.xxx Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+. NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 200 0 0...GET /a/editor_image/popupwin/editor_insertimage_fileselect.htm - 80? xxx.xxx.xxx.xxx Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+. NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 200 0 0... POST /a/editor_image/popupwin/editor_insertimage_fileselect_ok.asp - 80? xxx.xxx.xxx.xxx Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+. NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 200 0 0... GET /data/rental/board/pds/kneditor2_pds/img.asa;.jpg? 80 xxx.xxx.xxx.xxx Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+. NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 200 0 64... GET /data/rental/board/pds/kneditor2_pds/img.asa;.jpg? 80 xxx.xxx.xxx.xxx Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+. NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 200 0 0 [ 그림 18] 웰셸을업로드한기록이있는로그 FOCUS 2 최근주요해킹사고사례와대응전략 39
[ 그림 19 웹셸 ] 설치된웹셸화면 (4) 대응전략 1) 파일업로드취약점존재확인방법대상웹서버에서실행가능한형태의파일 (asp, php, jsp, aspx 등 ) 이업로드가능할경우취약한것으로판단한다. 이경우서버에서확장자체크를하더라도미흡할경우우회가가능하므로확장자체크, 파일타입체크, 파일명에 ; 포함여부등을종합적으로판단하여 [ 표3] 와같은확장자를모두필터링해야한다. 또한업로드디렉토리에실행권한이존재할경우취약한것으로판단할수있다. < 표 3> 필터링이필요한확장자 업로드방식일반우회기법 ASP 우회기법 PHP 우회기법 JSP 확장자 asp, php, jsp.asp.,.aspx,.asp,.asp,.jpg.asp,.cer,.der,.cdx,.asp;.jpg 등.PhP,.pHP,.php3,.php4,.php.kr 등 JsP, jsp, jsp, js%70 등 2) 파일업로드취약점방어방법실제파일업로드취약점을통해해킹된웹서버를분석해보면대부분이웹소스코드에서특정확장자기반의필터링정도만수행하고있었다. 이경우확장자필터링우회기법을통해웹셸을업로드하는것이가능하므로적절한대응방안이될수없다. 파일업로드기능이반드시필요한서비스일경우에는 3가지조치가함께필요하다. 첫째는웹셸이업로드 40 INTERNET & SECURITY FOCUS April 2014
되지않도록웹소스레벨에대한보안을강화하는것이고, 둘째는웹셸이업로드될수 있다는가정하에서업로드된웹셸이실행되지않도록설정하는것이며, 셋째는업로드된 웹셸에공격자가직접접근할수없도록하는것이다. FOCUS 구체적으로아래의방법을참고하여대응하면조금더파일업로드취약점에대하여대응 할수있다. 1 파일업로드기능제공시, 업로드가허용된확장자만가능토록 Server Side 에서컨트롤 2 업로드를허용할확장자리스트를제외한모든파일의업로드를금지하는 white list 방식의필터링을적용해야함 3 파일의확장자검사를할때, 대소문자구분없이비교하는함수를사용해야하며, 이중확장자 (ex: file.jpg.jsp 등 ) 나확장자끝에. 를사용하는등으로우회되지않게처리 4 파일이업로드되는디렉토리는실행권한및스크립트수행설정이제거되야함 5 업로드디렉토리를별도의드라이브또는별도의물리적서버에분리하여저장하고, 웹사이트에서다운로드모듈및출력모듈을작성하여처리함으로써, 외부로부터업로드디렉토리에대한 URL 을통한접근이불가능하도록함 6 업로드되는파일을저장할때, 파일명과확장자를추측할수없는무작위문자열및실행불가능한확장자로변경하여저장함 7 저장경로및파일명은 DB 에저장한후, index 번호를통해서호출하도록함으로써파일명및경로를외부에노출되지않도록함 8 IIS 6.0 이하에서는세미콜론 (;) 파싱취약점에대한보안대책을추가로세워야함 4. 게임스킨등을통한악성코드배포 1) 개요앞에서소개한사고들의경우서버를대상으로공격을한사고들이였다면, 본절에서소개하는사고는일반사용자들을대상으로한공격이다. 일반 PC 사용자들의컴퓨터를악성코드에감염시키는방법으로웹하드나특정이슈가되는사이트등사용자를유도하여악성코드를다운받게하는경우가대부분이다. 최근몇년사이인터넷사용자들의가장큰관심사중하나는게임이며, 최근에는이러한게임에서사용할수있는별도의프로그램등을만들어사용자에게무료로배포하고, 이를이용하여사용자 PC에악성코드를감염시키는경우가많다. FOCUS 2 최근주요해킹사고사례와대응전략 41
2) 사고사례최근인기게임 리그오브레전드 의경우자신의아바타 ( 캐릭터 ) 에사용자가개발한옷 ( 커스텀스킨 ) 13 을입히는것이유행했다. 스킨이란자신의게임캐릭터의외모를변경할수있는외형으로일반적으로게임사에서이를유료로판매하고있다. 일부유저의경우게임사에서제공하는외형이아닌게임내그래픽리소스를자신이만든캐릭터외형으로변경할수있는커스텀스킨을개발하여공유하였는데, 여기에악성코드를포함되어있어, 유저의 PC가악성코드에감염되었다. [ 그림 20] 사용자가만든커스텀스킨적용전 / 후이미지 해당커스턴스킨의정상적으로캐릭터외형을바꾸는기능이포함되었기때문에, 사람들과 사람들의입소문에의한전파가빨랐다. 하지만, 실제해당프로그램을실행할경우적상적 으로동작하는기능이외악성코드에감염된다. 3) 사고분석 1 프로세스및네트워크분석 - 외부와대량의커넥션 ( 연결 ) 을시도및연결된프로세스 (gkcwgo.exe) 1 종확인 13 커스텀스킨 : 게임사에서공식적으로제작한캐릭터외양이아닌, 사용자가임의로제작한캐릭터외모리소스 42 INTERNET & SECURITY FOCUS April 2014
2 레지스트리분석 - WinHelp32 서비스명으로레지스트리에등록확인 FOCUS [ 그림 22] 레지스트리확인 레지스트리등록시간 : 2013-08-23 01:08:58 [ 그림 23] 레지스트리등록시간확인 3 감염경로확인 - X 월 XX 일 01 시 08 분경감염 PC 의사용자가 I 사의카페에접속하여압축형태의 롤스킨즈 14 를다운로드하였으며, 해당파일을압축해제 [ 그림 24] 레지스트리등록시간확인 - LoLSkins 의실행파일이실행될시 LOL Back 이라는숨긴파일이생성되었으며, 6 자리의랜덤한문자열로이름붙여진 gkcwqo.exe 가 C} 에생성 14 롤스킨즈 : 리그오브레전드게임의스킨의한종류로정식버전이아닌개인이커스터마이징한스킨프로그램 FOCUS 2 최근주요해킹사고사례와대응전략 43
[ 그림 25] 레지스트리등록시간확인 [ 그림 26] 악성코드가감연된스킨이올라갔던카페 - 해당압축파일샘플을테스트한결과동일한해쉬값 - 감염 PC 사용자가해당파일을카페에접속하여다운로드하였음 [ 그림 27] 압축프로그램해쉬값 44 INTERNET & SECURITY FOCUS April 2014
4) 대응전략 게임스킨, 자동사냥툴등과같은게임도구들은과거부터계속배포되어왔으며, 이는 악성코드가퍼지는하나의방법으로활용되었다. 일반사용자들이이러한게임도구를 FOCUS 다운받아사용하게되면, 악성코드에감염되어본인의 PC가공격자의도구로써활용되기쉽다. 만약해당 PC가회사 ( 업체 ) 내 PC나서버일경우이는추후 APT 공격등으로재악용되어업체에공격이되는시발점이될수도있다. 또한이러한악성코드가출현한이후, 백신사등에서해당악성코드탐지패턴등을업데이트하기까지일정기간시간이소요함으로악성코드에감염되지않는것이중요하다. 이에따라해당게임업체에서정식으로출시하지않은스킨, 툴등기타애드온프로그램의설치는자제하고, 만약이러한도구들이설치된이후 PC의메모리점유율이높거나생소한프로세스등이많을경우악성코드감염등을의심해봐야한다. Ⅳ. 결론 보안을강화하고이를통하여해킹사고를막을수있으면좋을것이다. 하지만, 일반적으로발생하는각종재해들과마찬가지로해킹사고를 100% 막는다는것은불가능하여, 실제해킹사고가발생하였을때대응도중요하다. 화재를대비하여소화전을갖추거나, 격렬한운동경기에의사등응급요원이대기하는것과같이언제든해킹을당할수있다는전제를가정하고실제사고가발생했을때정확히사고경위를추적해나갈수있도록보안정책을운영해야한다. 실제해킹사고를분석해보면보안에많은노력을기울인시스템환경에서도정작침투경로를추적하기위한핵심적인로그들을관리하고있지않아사고대응에어려움이많다. 해킹사고분석의핵심목표는공격자의최초침투경로를찾는것인데추적할수있는로그들이관리되지않을경우공격자가지속적으로해킹할수있는통로는여전히존재하게되며, 사고가언제든재발될수있다. 시스템관리자들은기본적으로시스템및웹접속기록과시스템이자체적으로기록하는이벤트로그, 그리고내부네트워크환경에서 NAT 변환이이루어질경우 NAT 변환로그들을일정기간 ( 최소 6개월이상 ) 확보해야한다. 또한, 이러한로그는운영중인시스템의로컬에 FOCUS 2 최근주요해킹사고사례와대응전략 45
관리하는것보다는별도의파일서버로전송하여관리하는것이필요하다. 시스템권한을획득한공격자가추적을피하기위해내부에저장된로그들을삭제할수있기때문이다. 만일시스템관리자가해킹사고를한국인터넷진흥원또는보안전문업체에의뢰하고자할경우에는다음 2가지를반드시유념해야한다. 첫째는정확한분석을위해서는사고와관련된내용을그대로보존하는것이필요하다. 이는정확한분석뿐만아니라신속한분석을위해서도중요하다. 둘째는정상적인시스템운영을위해서어쩔수없이해킹관련파일에대한조치를진행해야한다면, 조치하기이전에해당파일에대한상세정보 ( 파일위치, 파일명, 생성시점, 수정시점, 접근시점등 ) 를별도로기록한후파일을이동시키는등의조치를진행해야한다. 이는분석가가해킹사고에대한정황을정확하게파악하는데에필수적인요소로활용되기때문이다. 실제해킹사고를분석할때에는시스템관리자와많은대화가필요하다. 그이유는분석가가올바른분석결과를도출하기위해서는시스템에대해가장상세히알고있는관리자의도움이필요하기때문이다. 해킹은많은자원이소모되는활동이다. 경제적관점에서공격자는관리되지않는시스템을찾아서최소한의자원을투입하여원하는목적을달성하려할것이다. 즉, 지속적으로관리되지않는시스템은이미공격자들에의해해킹되어악용되고있을가능성이있으므로정기적으로점검하는것을권한다. 또한, 하나의취약한시스템이해킹될경우해킹된시스템과동일한네트워크대역에위치하는모든시스템들또한위험에심각하게노출된다는사실을늘기억해야한다. 본문에서는최근발생하는해킹사고사례를소개하고대응방법등을소개하였다. 이에, 관리자스스로시스템을점검하도록해야하며, 만일점검과정에서해킹사실이확인될경우피해범위확인을위한상세분석을추가적으로수행해야한다는사실을잊어서는안된다. KISA에분석및기술지원을의뢰하고자한다면 118 번호를통해신고가가능하다. 46 INTERNET & SECURITY FOCUS April 2014
참고문헌한국인터넷진흥원 (2013), 주요해킹기법과대응전략, Internet & Security Focus 2013 4월호 한국인터넷진흥원, PHP 웹쉘분석및대응방안 http://toolbox.krcert.or.kr/mmbf/mmbfbbs_s.aspx?menu_code=80&board_id=10 한국인터넷진흥원, 업로드취약점을이용한악성코드유포사례 http://www.krcert.or.kr/kor/data/accidentview.jsp?p_bulletin_writing_sequence=577 데일리시큐 (2014), NTP 증폭공격, 최신 DDoS 공격트렌드가되다, 씨티네트웍스홍석범 http://dailysecu.com/news_view.php?article_id=6121 nmap ntp 취약점탐지스크립트, https://svn.nmap.org/nmap/scripts/ntp-monlist.nse FOCUS FOCUS 2 최근주요해킹사고사례와대응전략 47