SQL Injection 취약점을이용한 윈도우즈웹서버사고사례 2005. 7. 29 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. - 1 -
1. 개요 05년 5월경부터꾸준히발생하고있는홈페이지변조를이용한악성코드전파사고들은대부분 SQL Injection 취약점을이용한것으로확인되고있다. 금번사고는물론유사한피해사고의분석결과에서대부분의공격지가국외의특정국가로부터시작되는것을확인할수있었는데, 이는해당국가의해커그룹에서공격툴을제작, 배포한것이큰이유인것으로보인다. 본문서에서는피해서버에서확인된공격관련자료들과 SQL Injection 공격에대응하기위한 보안대책을알아보도록한다. 2. 피해시스템개요 A사의홈페이지서버 (2개도메인웹서비스중 ) 운영체제 : Window 2000 Server 웹서버 : IIS 5.0 DB : MS-SQL 기타서비스 : MS FTP 시스템용도 : Web, Mail, DNS, FTP, DB 3. 피해현황 A 社의피해시스템은해당업체의홍보용홈페이지로서유사한사고와마찬가지로해커는 홈페이지초기화면 (index.asp) 의마지막라인에 iframe 소스를추가하여, 홈페이지에접속하는 사용자중 Windows 보안패치를하지않은사용자에게악성코드가다운로드되도록하였다. iframe을통해접속되는외부페이지는옵션을통해링크되는페이지의내용이사용자의화면에서는보이지않도록하였으며, 악성코드가설치될경우국내온라인게임정보가국외로전송되는것은다른유사한사고와동일하였다. 4. 피해분석 해당서버는분석결과총 4번의초기화면소스수정사고가있었던것으로확인되었으며, 4번모두국외의특정도메인주소가 iframe을이용해초기화면에추가되어있었다. 해당도메인은 nslookup 조회를통해중국에할당된 IP를사용하고있는시스템으로연결되어있는것으로확인되었으나, 분석후 1일이지난시점에서는해당도메인의 IP가국내에할당된 IP로변경된것으로확인되었다. 이는악성프로그램을저장해놓은도메인을 IP로는차단할수없다는것을얘기하며, 도메인정보조회를통해확인한결과해당도메인의소유자는중국인으로확인되 었다. - 2 -
>> www.xxxxx.com Administrative Contact: xxxxxxx hxxxxxxxxx sxxx zxxx sxxx zxxx gxxxxx dxxx 518000 CN tel: 86 xxxx xxxxxxxx fax: 86 xxxx xxxxxxxx xxx@sxxxxxx.xxxt 가. 공격지분석 1) 웹로그피해서버의웹로그를통해홈페이지변조와관련된 SQL Injection 공격로그가다수확인되었다. 웹로그상으로확인된최초공격시기는 6월 20일로서마지막공격이있었던 7월 21일까지모두 10개 IP에서의공격기록을확인할수있었다. 공격 IP는모두중국에할당된 IP로확인되었으며, 로그패턴이일정한것으로보아동일한공격툴을이용해해킹을한것으로예상된다. SQL Injection 공격흔적 - 공격관련로그 일정한패턴의로그가짧은시간안에반복되고있고, 다른일자에도같은형태의로그가생성된것으로보아자동화된툴을이용한것으로예상된다. 실제로그상에는 500 에러메시지가남아있지만, 공격으로인해생성된 DB 테이블이확인되고있어공격이성공한것으로확인되었다 [ 표 1] 6 월 20 일웹로그 - 3 -
[ 표 2] 7월 3일웹로그 - 확장저장프로시저 (Extended Stored Procedure) 를이용한내부명령어실행 MS-SQL에서제공되고있는 xp_cmdshell 프로시저를이용해시스템내부명령어를실행한로그가확인되었다. 6월 26일을시작으로 7월 21일까지수차례에걸쳐 xp_cmdshell 프로시저를이용, 해킹에이용하기위한프로그램들을설치하였다. 다음내용은 echo 명령을통해 ll.asp 라는페이지를생성한로그로실제피해시스템에서는 ll.asp가남아있지않아로그파일을통해재구성한결과, ll.asp는 form을통해피해시스템에파일을생성하기위한 asp 페이지로확인되었다. [ 표 3] echo 를이용한악성페이지 (ll.asp) 생성로그 - 4 -
[ 그림 1] echo 명령을이용해생성된악성페이지 (ll.asp) 해커는생성한 ll.asp 이외에도 echo 명령을이용해외부에서파일을가져오기위한 vbs 스크립트파일을생성한후, cscript 명령을이용해악성프로그램을다운로드한것으로확인되었는데, 이런방법은최근의중국과관련된해킹사고에서도자주확인되고있다. 이외에도웹로그상에는 tftp를이용해외부의사이트에서악성프로그램을다운로드한로그도같이확인되고있다. [ 표 4] cscript 를이용한악성프로그램다운로드 - 5 -
2) 시스템로그 Windows나서비스의취약점을이용해시스템을공격한것이아니므로초기화면변조가있었던시기를포함한전체시스템로그에서는특이한내용을발견할수없었다. 3) 기타 악성프로그램관련 홈페이지초기화면의변조이외에도시스템의 \WINNT\system32 디렉토리에다수의악성프로그램이설치된것을확인할수있었는데, 악성프로그램과레지스트리수정을위한파일, 그리고이를실행하기위한배치파일들이설치되어있었다. 설치된패치파일내용에남아있던 radmin 프로그램은원격에서시스템을제어하기위한프로그램으로이러한프로그램을사용해홈페이지변조작업을할경우관련기록이남지않는다. [ 그림 2] 레지스트리에추가된 Radmin 프로그램관련내용 다음해커가설치한프로그램의실행화면으로설치한악성프로그램을이용, 시스템관리자계정과암호를찾아낸화면이다. 해당프로그램은해킹에필요한관리자계정과암호검색, 프로세스리스트확인및포트확인등의다양한기능을가진것으로확인되었다. - 6 -
[ 그림 3] 악성프로그램을이용한관리자계정 / 암호확인 또한해커는 setime이라는프로그램을이용, 설치한프로그램의생성시간을변경한것이웹로그를통해확인되었는데, 이는사고후의분석작업을어렵게하려는의도로예상되며기존의사고에서는보기어려운것이었다. [ 표 5] 악성프로그램을이용한파일생성시간변경 패치설치관련 본사고의원인이 Windows 보안패치에있지는않았지만, 사고이전보안패치를설치한날짜는 05년 6월중순경으로확인되었다. 최근에는보안취약점이발표되는당일을전후하여공격프로그램이공개되는경우도확인되고있어 Windows 보안패치는가능한발표즉시설치하도록한다. - 7 -
5. 결론및보안대책 홈페이지소스변조를통한악성코드전파사고의경우홈페이지변조사고와는달리확인까지많은시간이소요가되며, 보안조치또한문제가된페이지의소스를수정해야하므로짧은시간안에조치가이루어지기는어렵다. 또한, 국내사이트를대상으로확인해본결과 SQL Injection 취약점을가지고있는홈페이지의수가상당히많은것으로추정되고있다. 이에한국정보보호진흥원에서는기본적인보안대책과더불어국내주요 IDC와 SQL Injection 취약점을점검할수있는 IDC 공동웹서버취약점무료점검 행사를 8월한달동안진행할예정에있으며, 다음 URL을통해점검신청을할수있다. IDC 공동웹서버취약점무료점검행사 - http://www.kisa.or.kr/news/2005/checkservice/intro.html 보안대책 가. 확장저장프로시저 (Extended Stored Procedure) 의제거 o MS-SQL에서기본적으로제공되는확장저장프로시저는홈페이지내취약한페이지가존재할경우, 금번과같이악용되는경우가발생하게되므로 xp_cmdshell, xp_regread, xp_dirtree와같이공격자에게악용될수있는프로시저는가능한삭제하도록한다. [ 그림 4] 확장저장프로시저의제거 나. 사용자입력값에대한검증필요 o 홈페이지내에서사용자가입력하는입력값이나 URL의인자값을처리하는페이지에서는입력값에대해검증하는절차가필요하다. 특히게시판에서 DB 정보를가져오는부분 ( 인자값 ) 에비정상적인 SQL - 8 -
Query에대해검증하는절차가반드시필요하다. - 게시판에서사용자가입력하는페이지에서도입력내용에대한필터링을하도록한다. - 특수문자 (' " / \ ; : Space -- + 등 ) 와 SQL 구문 (union, select, insert 등 ) 필터링 o 게시판등에불필요한파일첨부기능을제거하고, 첨부가필요한경우확장자가 jsp, php, asp, cgi 등실행가능한파일의첨부를차단하도록한다. 참고문서 o 홈페이지개발보안가이드 (KISA, '05) - http://www.kisa.or.kr/news/2005/announce_20050427_submit.html - 9 -