분석보고서 한상흠 (m4gichack@gmail.com) SK Infosec Co., Inc MSS BIZ Security Center
Table of Contents 1. 개요...3 2. IceSword 분석...4 2.1. 컴퓨터에문제점이생기다...4 2.2. IceSword의장점...4 1) 특징...4 2) process environment block...5 3) 프로세스삭제...5 4) 포트...5 2.3. IceSword 의주요기능...7 1) 프로세스검사...7 2) 포트검사...8 3) kernel 모듈...9 4) 부팅그룹... 10 5) Services... 11 6) SPI, BHO... 12 7) SSDT (System Service Descriptor Table)... 13 8) Message Hook... 14 9) Log Process / Thread creation... 15 10) Regedit... 16 11) File 탐색기... 17 3. 마치며... 18 4. 참고자료... 19 2
1. 개요 윈도우루트킷을가장쉽고빠르게찾을수있는툴을추천하라고하면대부분의보안전문가들은 IceSword를추천할것이다. 얼음칼이라고해석이되는이툴은간단하게 IS 라고불리기도하며북경과학기술대학교 (USTC) 의 pjf 출품작이기도하다. 시스템진단및악성프로그램들을제거한다는의미로 sword 라는이름을붙였을것이다. 악성프로그램한테이툴이야말로자신을제거시킬수있는강력한무기인것이다. 최근 Vista 버전까지 release 된 IceSword가왜이렇게예리한무기로불리는지이제부터알아보도록하겠다. 제작자의공식적인블로그는 http://www.blogcn.com/user17/pjf/index.html 이다 en ver. http://202.38.64.10/~jfpan/download/icesword120_en.zip vista ver. http://202.38.64.10/~jfpan/download/is120en_vista.zip 3
2. IceSword 분석 2.1. 컴퓨터에문제점이생기다 삭제할수없는파일 수정할수없는로그온리스트 삭제할수없는프로세스 알수없는프로세스 일부프로그램들의숨겨진포트들 탐색기로도찾을수없는루트킷프로그램들 이런상황들이자신의컴퓨터에혹은서버시스템에서일어나고있다면끔직할것이다. 우리는얼음칼을이용하여이런문제점들을제거할것이다. 2.2. IceSword의장점 1) 특징대부분 process explorer (sysinternal.com에서만든리소스관리프로그램 ) 류의툴은모두 Windows의Toolhlp32, psapi, ZwQuerySystemInformation 등의시스템콜을이용한것이다. ApiHook를쓰면쉽게그것들을제거할수있으며 backdoor들은더말할것없다. 대부분의툴은 Kernel thread scheduling 구조로프로세스들을조회하는데이런방식은버전별로업그레이드를해야한다던지패치를해야하기때문에요즘이렇게찾는방법을변경할것을제안한사람이있다. 그러나 IceSword의프로세스조회방법은유일한것이며 backdoor들이할수있는은폐기능에대해서도충분히고려한것이므로현재거의모든숨겨진프로세스들을찾아낼수있다. 기본적으로사용자의스레드방식과커널스레드방식이있는데 IceSword 의경우독자적인방식으로조회한다는것을알수있다 4
2) process environment block 대부분툴도 Toolhlp32 psapi를통하여프로세스이름등을찾는다. 앞의것은 RtlDebug*** 함수를 call하여목표점에 remote thread을주입한것이고뒤에것은 api을디버그하여목표메모리를읽어서얻는것인데본질적으로모두 process environment block ( 이하 PEB) 에서하나하나센것이다. PEB를수정하는것을통하여쉽게이툴들을우회할수있게된다. 그러나IceSword의핵심적인방법으로인하여경로를하나도빠뜨리지않고상세하게보여주며프로그램이실행될때잘라내여기타경로에가져간것도나타나게된다. 3) 프로세스삭제 IceSword의프로세스제거는편리하며강력하다. 당연히위험하기도하다. 선택된여러개의프로세스들을쉽게없앨수있다. 기타프로세스의경우도쉽게제거할수있으며물론일부프로세스들을 (ex.winlogon) 제거한다면시스템이 crash 될것이다. 4) 포트포트툴에관한것은인터넷에확실히아주많다. 하지만인터넷에포트를숨기는방법도아주많다. IceSword가있다면이런툴들은무용지물이된다. 사실방화벽상태를가지고찾으려고하지만너무범위를넓게만들고싶지않다. 여기포트는windows의 IPv4 Tcpip 프로토콜스택에속하는포트를가리키며제3의프로토콜Stack 또는 IPv6 Stack은지원하지않는다. 5
일부악성프로그램들이사용하는방법들에대해설명을하자면 Thread주입, 프로세스숨기기, 파일숨기기, 부팅보호등이있다. 일반사용자가이파일을삭제하거나진행과정을찾으려면아주어렵고이런상황들을보았을때제거할수없어서답답해한다. 정말삭제가안되면다른시스템으로부터이파일을삭제해야할지도모른다. 예를들면부팅보호를하고있는 rootkit 프로그램인 CNNIC이 Assistant.sys 를부팅추가할때그것은파일과로그온리스트를우회하여직접적으로 true값으로되돌아가며 Windows는파일을제거하였다고제시한다. 그러나다시확인해보면그것은여전히그곳에있다. 일부 unclocker과같은삭제툴은효과가없다. IceSword는현재유일하게직접적으로이미추가된부팅리스트와로그온리스트보호를할수있는툴이다. CNNIC와같은 rootkit프로그램을제거하려면재부팅하지않고도제거할수있다. 6
2.3. IceSword 의주요기능 IS 는새롭고많은핵심기술들이있는프로그램이다. 프로그램을만든핵심기술들은설명 하지않겠고이것을이용하는사용자의각도에서주요기능을설명하겠다. 1) 프로세스검사실행프로세스의파일주소, 여러가지숨겨있는프로세스들이나타내진다. 이것을사용하면쉽게 Task Manager, Procexp등툴들이제거할수없는프로세스들을쉽게제거할수있다. 그리고또프로세스들의 thread, 모듈정보등을검사할수있다. 7
2) 포트검사 cport ActivePort와같은툴은현재열어놓은포트및상응되는응용프로그램주소, 이름을나타낸다. 여러가지수단을사용해서포트를숨긴툴을포함하여그의아래에서모두볼수있다. 8
3) kernel 모듈시스템과공간에추가한 PE모듈은일반적으로모두부팅프로그램이며추가된부팅부분등을볼수있다. 일부숨겨있는부팅파일을포함하여, 예를들면 IS자신의 IsDrv118.sys, 이것은탐색기에서볼수없다. 9
4) 부팅그룹 Windows 부팅그룹안의관련방식은좀쉽게이해할수있다. 그러나아쉬운것은삭제기능은없으며검사밖에할수없다. 10
5) Services 시스템중의숨겨졌거나혹은숨겨져있지않는서비스를검사하는데숨겨져있는서비스는 빨간색으로나타난다. 서비스에대한부팅, 정지, 사용금지등을제공한다. 11
6) SPI, BHO SPI는서비스인터페이스를제공한다. 즉모든Windows의네트워크조작은모두이인터페이스를통하여데이터패킷을받거나보낸다. 많은악성프로그램들은이 dll를바꾸어버린다. 이렇게되면사용자가네트워크를방문한모든패킷을감시할수있으며그것에대하여광고를넣을수있다. 만약분명하지않는상황에서이. dll를삭제하면네트워크를사용할수없게되어인터넷에접속할수없게된다. LSPFix등툴은이기능에대한것이다. BHO 는더말할것도없고, 브라우저의보조프로그램, 사용자가브라우저를부팅할때그것은자동적으로부팅하여광고창등이튀어나오게된다. 이두가지는검사하는기능밖에제공하지않는다. 12
7) SSDT (System Service Descriptor Table) System Service Descriptor 리스트, 당신의시스템의서비스함수를획득하기위하여 kernel backdoor는가능한한이서비스리스트를수정한다. 특히일부오래된 rootkit, 위에서말한것처럼이런 hook를통하여로그온리스트를수정한다. 수정된값은빨간색으로나타내며물론일부보안프로그램도빨간색으로표시가된다. 예를들면 regmon같은프로그램이빨간색으로표시된다. 13
8) Message Hook 키보드입력값, 마우스좌표등이필요한경우 Win32 API 를호출하게된다. 어떤프로그 램들이이를이용하는지에대한값들이표시가되며검사만가능하다 14
9) Log Process / Thread creation Log Process 와 thread creation 은 IceSword 실행기간의프로세스 thread 생성을기록할수있다. 예를들어트로이목마나바이러스진행과정을실행할때바이러스를없애는프로그램들이같은진행과정이있는가를검사해본다. 있으면없애버린다. 만약 IceSword이실행되고있다면이런과정들은기록되어어느진행과정이백신들을지우는지찾을수있다. 때문에트로이목마혹은바이러스들의진행과정을발견하고지울수있다. 그리고트로이목마혹은바이러스가다중 thread보호기술로이상한진행과정등을 stop한후에또다시시작되는것을발견하였을때 IceSword는어떤 thread가이프로세스들을생성하였는가를발견하고그것들을한번에제거할수있다. 메뉴 -> 설치대화상자에서 process thread creation 을선택한다이때는시스템프로세스혹은 thread를생성할수없으며의심스러운프로세스 thread를제거한후 stop시킨것을취소하면된다. 15
10) Regedit 윈도우의 Regedit는너무부족한게많다. 예를들면명칭길이의제한으로하여전경로이름의길이가 255바이트를초과하는경우 Sub-item을만들고이항과그뒤에있는 subkey가 regedit중에서나타나지않는것을볼수있다. ( 이경우프로그램을작성하거나혹은기타툴을사용한다. 예를들면regedt32) 그리고또일부러프로그램으로생성한특수캐릭터가있는경우 regedit 는열수없다. IceSword에서로그온리스트편집을추가하는것은위의문제를해결하기위한것이아니라이미 Regedit을대체할수있는좋은툴이많기때문이다. IceSword중의 로그온리스트 항목은트로이목마나 backdoor 에의해숨겨진로그온리스트를찾기위해쓴것이다. 현재로그온리스트를숨기는방법에속아넘어가지않으면서진정믿을만한것은당신이직접로그온리스트의실제내용을보는것이다. 예를들면 CNNIC이추가한 HKLM SYSTEM CurrentControlSet Services dnport 키값, 바로이것을통하여 cndport.sys이부팅파일을추가한것이다. Regedit을통하여당신은삭제하지만감염된근본은삭제할수없다. 그러나 IS를사용하면쉽게제거할수있다. 16
11) File 탐색기 IS의파일탐색기는윈도우탐색기와비슷하다. 그렇게편리하지않다. 그러나그것의독특한기능이있는데숨긴파일들을찾고보호모드의파일들을보호할수없게하는기능이있다. 그리고또한 system32 config SAM등의파일은카피할수도열수도없지만 IceSword는직접카피할수있다. 또한 CNNIC의 cdnport.sys이파일은현재 IS만이직접그것을삭제할수있습니다. 기타어떤방식이든지모두자신의보호권한을제거할수없다. 대다수 unlocker,copylock KillBox 같은프로그램들은모두효과가없다. Windows의시스템이완전히추가한삭제메커니즘을이용하고 HKLM SYSTEM CurrentControlSet Control Session Manager하에서 PendingFileRenameOperations을증가하는모든완전한파일을삭제하는파일툴은 IS 뿐이다. 17
3. 마치며 이것으로 IceSword 의기능을살펴보았다. 시스템리소스분석을함에있어강력한기능을구사하고있음을알수있다. IceSword 내부기능의강력함도확인하였다. 여러분들은기능이비슷한소프트웨어를사용해보았을것이다. 실제로 IceSword 와거의같은기능이있는 seem 라는툴도있다. 지금의커널backdoor 기능은점점강해지며일반적으로쉽게프로세스, 포트, 로그온리스트, 파일정보를숨길수있으며일반적인툴은근본적으로발견할수없다. IceSword은많은새로운 kernel 기술을사용하여 backdoor로하여금 IceSword를피할수없게한다. IceSword의많은새로운기술을적용하여보통의프로세스툴과구별이된다. 예를들면 IceSword은 Idle진행과정 System진행과정 csrss진행과정이세개과정외의모든프로세스들을삭제할수있다. 이것은다른소프트웨어는할수없을것이다. 물론일부진행과정도마음대로삭제할수있는것은아니다. 예를들면시스템의 winlogon.exe 프로세스들을없애버리면시스템이 crash된다. 이런것들을주의해야한다. 18
이런시스템리소스툴을완벽히이해하려면윈도우내부구조등을숙지한후에이용을하면이해하기쉬울것이다. 현재악성프로그램들은우리와시스템을속이고보안프로그램들은또악성프로그램들을속이고있는상황들의연속이다. 눈뜨고코베어간다 라는속담도있듯이자신의시스템구조를모르면악성프로그램들은언제든지자신의코를배어갈지도모른다. 4. 참고자료 - Original article: http://hackbase.com/ 19