Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Similar documents
SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

문서 템플릿

제목 레이아웃

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

Microsoft Word - Blind Sql Injection.doc

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

Observational Determinism for Concurrent Program Security

Ç¥Áö


PowerPoint Template

WEB Hacking 한국디지털미디어고등학교, T eampur e, JT JSOFT 장태 진

10.ppt

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

Secure Programming Lecture1 : Introduction

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

AhnLab_template

UDP Flooding Attack 공격과 방어

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

Microsoft Word - Mass SQL Injection_v.1.3._.doc

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

슬라이드 1

#WI DNS DDoS 공격악성코드분석

MySQL-.. 1

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

untitled

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

소만사 소개

SKINFOSEC_TECH_005_China Bot_가칭_ 악성코드 분석_v0.3.doc



자식농사웹완

chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._



전반부-pdf

표1.4출력

003-p.ps

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

중앙도서관소식지겨울내지33

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

¾ç¼º-¾÷¹«Æí¶÷-³»¿ëÃà¼Ò4

전도대회자료집


< DBAB4B9ABC3BB5FBAB9B9ABB0FCB8AEB8C5B4BABEF32D33B1C72E706466>

표1~4

<3344C7C1B8B0C6C320BFE4BEE02D E706466>

µ¶ÀÏÅëÀÏÁý1~2Æíq36£02Ð


Microsoft PowerPoint - 10Àå.ppt

강의 개요

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

EDB 분석보고서 (06.07) ~ Exploit-DB( 에공개된취약점별로분류한정보입니다 SQL Injection 하중 index.php SQL Injection 취

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

ìœ€íŁ´IP( _0219).xlsx

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

(Microsoft PowerPoint - NRMWFKPIIYBC [\310\243\310\257 \270\360\265\345])

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Microsoft Word - CrossSiteScripting[XSS].docx

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

ALTIBASE HDB Patch Notes

Tablespace On-Offline 테이블스페이스 온라인/오프라인

EDB 분석보고서 (04.03) ~ Exploit-DB( 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

TGDPX white paper

PowerPoint 프레젠테이션

설명 Description 상세정보 네이버에서운영하는서비스중하나인쥬니어네이버 ( 이하쥬니버 ) 에서는쥬니버서비스와 관련하여도움을주기위한 [ 그림 1] 과같은플래시애플리케이션이서비스되고있다.[2] [ 그림 1] 쥬니어네이버에서서비스중인쥬니버도우미플래시애플리케이션 해당플래

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

< F33BFF920C0CEC5CDB3DD20C4A7C7D8BBE7B0ED20B5BFC7E220B9D720BAD0BCAEBFF9BAB828C3D6C1BEBABB292E687770>

untitled

게시판 스팸 실시간 차단 시스템

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

untitled

WebKnight를 활용한 IIS 웹서버 보안

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Cisco SDN 3.0 DDoS DDoS Cisco DDoS Real Demo 2008 Cisco Systems, Inc. All rights reserved. 2

DocsPin_Korean.pages

Transcription:

분석보고서 이동현 (dhclub20@naver.com) SK Infosec Co., Inc MSS 사업본부침해대응팀모의해킹파트

Table of Contents 1. 개요... 3 1.1. 배경... 3 1.2. 목적... 3 2. 공격분석... 4 2.1. Cookie Injection... 4 2.2. Cookie Injection의발생원인... 5 2.3. Cookie Injection 공격방법... 6 2.4. % 를이용한탐지우회... 9 3. 대응방안... 12 3.1. Web Application... 12 3.2. 보안장비탐지대책... 13 3.3. DBMS 보안설정... 14 3.4. IIS 로깅설정... 15 4. 결론... 16 2

1. 개요 1.1. 배경 2008년 4월초전세계 150만개이상의웹사이트에악성코드를유포시킨 Mass SQL Injection이또다시기승을부리고있다. 이번 Mass SQL Injection 공격은 IDS, IPS, WAF 과같은보안장비에탐지되지않고공격을가해더욱이슈가되고있다. 이에따라피해당한사이트들은침해사고가일어난이후에인지하게되었고, 로그기록에남지않은경우가많아침해사고분석에도많은어려움이있었다. 이는기존의공격방법과는같지만 Cookie Injection을통한보안장비의패턴매칭을우회하는기법을사용하였기때문이다. 이번침해사고규모는지난번과마찬가지로대규모이고 [ 그림 1] 과같이 Google 검색을통해피해의심각성을알수있다. [ 그림 1. Google 을통해감염사이트검색 ] 1.2. 목적 10월 19 20일발생한 Mass SQL Injection의공격형태는 IDS/IPS/WAF를우회하여공격하였다는것이초점이며이문서에서는공격형태분석과이에대한대응방안에대해서알아보겠다. 3

2. 공격분석 2.1. Cookie Injection Cookie Injection이란기존 Web Application의 Parameter 전달방식인 GET 이나 POST 를사용하지않고 Cookie를통해서 Parameter를전달하는방식이다. 현재대부분의보안장비에서는 GET 이나 POST 방식에대해서만검사를하고 Cookie값에대해서는검사를하지않기때문에 Cookie를통해악성코드를삽입할경우보안장비탐지를우회할수있다. 대부분의사이트는 [ 그림 2], [ 그림 3] 과같이 Parameter 값을전송한다. [ 그림 2. GET 을통한 Parameter 전송방식 ] [ 그림 3. POST 를통한 Parameter 전송방식 ] 4

Parameter값을아래그림과같이 Cookie에삽입하여전달할경우 GET이나 POST 방식과같이전달받게된다. [ 그림 4. Cookie 값을통한전송방식 ] Cookie 로 Parameter 값을전송한결과 GET 이나 POST 방식과똑같은반응을보인다. [ 그림 5. 정상적인 Response ] 2.2. Cookie Injection의발생원인대부분의사이트에서 Parameter 전송방식을 GET, POST 전송방식으로사용하고전달받는페이지에서도 GET, POST 방식으로값을받는다. 하지만 Web Application 환경설정에서전역변수화선언을하고사용하거나, [ 그림 6] 의경우처럼 Request() 함수를사용할경우 GET, POST, COOKIE 변수를구분하지않고전달받는다. 이에 Parameter를 Cookie에삽입하여전송하면이를변수로인식하게된다. 이러한환경을이용하여 GET, POST 대신 COOKIE값에삽입한다면전달받는페이지에서 Parameter값을인식하게된다. 5

[ 그림 6. Request() 함수사용 ] 2.3. Cookie Injection 공격방법 (1) 자동화툴소개 Cookie Mass Injection을비롯해여러가지웹취약점을찾아공격하는중국자동화툴이다. 최근이툴을사용하여중국발해킹이많이이루어지고있으며 Script Kid에의한많은공격이예상된다. [ 그림 7. 중국자동화툴 ] 6

(2) WAF/IDS/IPS 우회방법현재대부분의보안장비는 Cookie 값을검사하지않는다. 따라서웹취약점이존재하지만 WAF에의해공격이차단되는사이트는 Cookie Injection을통해 WAF 우회공격이가능하고 IDS/IPS에도탐지되지않는다. 1) SQL Injection 테스트결과 WAF에의해 SQL Injection 이차단되고있는사이트에서 Cookie Injection을통한우회공격이가능하였다. [ 그림 8. WAF 우회 SQL Injection 성공 ] 2) XSS (Cross Site Script) 같은방법으로 XSS (Cross Site Script) 역시가능하였다. XSS Cheat sheet에있는다양한패턴을모두차단하는 WAF 환경에서도아래그림과같이 WAF에서차단하는가장기본적인 XSS 패턴도사용가능하다. [ 그림 9. WAF 우회 XSS 적용 ] 7

현재이슈화되고있는 Cookie injection 은 IIS/ASP 환경이지만 PHP 환경에서도가능하였다. 이러한문제는 php.ini 설정에서 register_globals=on 으로전역변수처리를했을경우발생한다. [ 그림 10. PHP Cookie Injection] 3) Cookie Mass SQL Injection Mass SQL Injection이란기존의 SQL Injection의대량화공격이라는것이다. SQL Injection 처럼 DB정보를얻어내는목적은아니지만불특정다수를상대로피해를입히는공격이다. 피해증상은변조된사이트를방문시악성코드가설치되어있는사이트로이동하게되어감염되거나 bot이설치되어 DDoS 공격에좀비컴퓨터로이용된다. 공격구문의일반적인형태는해당사이트의 sysobjects테이블과 sysco lumns 테이블을참조하여 sysobjects테이블에서 type U(usesr) 테이블의모든행을가져오고 varchar, nvarchar, text, ntext 형태의컬럼에공격자가원하는 <script> ~ </script> 를 update 문을이용하여갱신함으로써공격이이루어진다. 이러한 mass 공격구문을 SQL Injection point 가존재하는부분에 Cookie Injection 하는것을 Cookie Mass SQL Injection이라한다. 8

[ 그림 11. Cookie Mass SQL Injection] 2.4. % 를이용한탐지우회 (1) 우회원리 Cooki Injection 과같이최근가장이슈화되고있는 WAF/IDS/IPS 탐지우회로 % 를사용한방법이있다. 우회방법은 IIS/ASP 환경에서는 % 뒤에이어지는두글자가 16진수가아닌경우 IIS에서 % 가삭제되는요인을이용한것이다. 이를이용하여보안장비패턴매칭을우회한다. 따라서웹취약점이존재하는 IIS/ASP 환경에서이러한방법으로공격구문을삽입할경우 WAF/IDS/IPS 에도달할때까지는변형된공격으로전달되어탐지우회하게되는것이다. 이번 Mass SQL Injection 공격도 declare구문을 de%clare, dec%clare 방식으로 Mass SQL Injection 패턴인 declare 패턴을우회할수있다. % 적용방법은 [ 그림 12.] 와같다. [ 그림 12. % 적용화면 ] 9

[ 그림 13. 정상반응확인 ] (2) IIS에서 % 삭제위치이점을이용하여만약 IIS에서 % 가 DBMS로전송되기직전에삭제된다면웹소스코드의 Replace() 공격단어필터링 (union, select, sysobjects 등 ) 만한경우, 우회가능하기때문에이에 IIS 어느부분에서삭제가능한지여부를테스트해보았다. 테스트결과 % 삭제는 IIS에 Parameter가도착하였을때삭제가되어웹소스상에동작하기때문에원래의문자로동작하게되는것을확인할수있었다. 테스트결과는아래 [ 그림 14], [ 그림 15], [ 그림 16] 와같다. [ 그림 14. % 로변환해서전달 ] 10

[ 그림 15. 소스코드상에서 union 단어필터링 ] [ 그림 16. union 단어필터링우회실패 ] 11

3. 대응방안 3.1. Web Application (1) 웹소스코딩시 GET 과 POST 를구분하여 Request() 함수를사용하여야한다. [ 그림 17. GET 방식만받는방법 ] [ 그림 18. POST 방식만받는방법 ] (2) 지역변수화사용한다. php.ini 설정에서 register_globals=off 로지역변수화하고 get 과 post 를구분하여받는다. [ 그림 19. php.ini 설정 ] 12

(3) Sever side 에서입력값길이제한을한다. Client측에서입력값길이제한을할경우조작이가능하므로 Server side에서길이제한을해준다. if len( 입력값 ) =< 원하는문자열길이 then end if 에러루틴 3.2. 보안장비탐지대책 (1) Rssp user_define 으로탐지불가로 trons 을이용한 signature 업데이트 13

3.3. DBMS 보안설정 % 를이용하여 injection을시도할경우많은패턴방식이존재하므로 IDS로막을수있는방법은없다. 또한웹소스상에서는 % 가삭제되고사용되므로웹소스필터링으로도차단할수가없다. 그러므로 sysobjects 를사용자제한하고, 임시방편으로 db자체에서 script구문이삽입되지않도록 [ 그림 21] 와같은방법이있다. [ 그림 20. sysobjects 사용자제한설정 ] </script> 구문 db에삽입안되게하는쿼리 create trigger stopupdatetrigger on TableA for update as declare @coll varchar(4000) select @coll=coll from TableA if @coll like '%</script>%' ROLLBACK TRANSACTION; go </iframe> 구문 db에삽입안되게하는쿼리 create trigger stopupdatetrigger on TableA for update as declare @coll varchar(4000) select @coll=coll from TableA if @coll like '%</iframe>%' ROLLBACK TRANSACTION; go [ 그림 21. DB script 차단설정 ] 14

3.4. IIS 로깅설정 IIS의디폴트설정일경우웹로그상에도남지않으므로침해사고분석시난감한상황에놓이게된다. 이런상황을막기위해아래그림과같이로깅속성부분에쿠키로그부분을체크해준다. [ 그림 22. IIS 로깅설정 ] 15

4. 결론 Mass SQL Injection은한때침체하였다가최근들어변종수법으로다시기승을부리고있다. 이러한피해를사전에차단하기위해이문서에서제시한보안설정을모두점검하여 Mass SQL Injection에대응하여야한다. 16