국외출장복명서 - OWASP & WASC AppSec 2007 참석 - 2007. 11 IT 기반보호단 / IT 기반기획팀
목 차 1. 출장목적 2. 출장자 3. 출장기간및장소 4. 세부일정 5. 활동내용 6. 출장소감및업무활용계획 7. 수집자료
1. 출장목적 o OWASP & WASC AppSec 2007 는웹어플리케이션보안을다루는국제행사로서세계각지에서최고의전문가가참석하여기존홈페이지보안에대한분석결과및최신홈페이지보호기술관련동향에대해발표하고토론하는대규모국제행사임 - 특히, OWASP 는전세계웹어플리케이션에서가장많이발생하고 있는 TOP 10 취약점을발표하는등홈페이지보안분야에서가장권위있 는기구로서, - 온라인상에서 TOP 10 취약점학습, 웹어플리케이션보호툴제공, 허 니팟을활용한분석등의홈페이지보호를위한다양한프로젝트를진 행하고있음 - 또한, OWASP & WASC AppSec에서발표되는주요내용들은대부분최신홈페이지보안분야의국제동향을주도하고있음 OWASP : Open Web Application Security Project WASC : Web Application Security Consortium o 이러한이유로 OWASP & WASC AppSec 2007 에참석하여홈페이지보호분야의최신동향및이슈사항을파악하여원내 외에최신정보를제공할뿐만아니라국내홈페이지보호를위한계획수립에활용하고자함 - 특히, 다양한세션에서발표되는홈페이지보호관련국제전문 가들의아이디어및의견을수렴하여추후홈페이지보호분야의 중장기적계획수립에참고할수있을것으로기대 - 1 -
2. 출장자 o 민복기주임연구원 (IT 기반보호단 IT 기반기획팀 ) 3. 출장기간및장소 o 출장기간 : 2007. 11. 11( 일 ) ~ 2007. 11. 17( 토 ) (5 박 7 일 ) o 출장지 : 미국산호세 (US, San Jose) - 2 -
4. 세부일정 구분 내용 '07.11.11( 일 ) 인천공항출발 시애틀경유 산호세도착 '07.11.12( 월 ) ~ '07.11.15( 목 ) Registration Building and Testing Secure Web Applications 코스참석 - Authentication and Session Management - Cross-Site Request Forgery (CSRF) - Cross-Site Scripting (XSS) - Information Leakage and Improper Error Handling - Insecure Cryptographic Storage - Failure to Restrict URL Access - Malicious File Execution - Error Handling and Logging 등 Web Service Security Conference 참석 - Challenges and Techniques - Dynamic Web Services Security and Policy Management '07.11.15( 목 ) ~ '07.11.17( 토 ) o 미국산호세출발 로스앤젤레스경유 인천공항도착 - 3 -
5. 세부내용 개요 o OWASP & WASC AppSec 2007 컨퍼런스는 OWASP Top 10 웹어플리케이션보안취약점의중요성을알리는것을목적으로하며, 취약점들로부터보호하기위한기본적인보호대책과정보들을소개함 o OWASP에서는 2004년도에이어 2007년 OWASP TOP 10 웹어플리케이션취약점을발표하였으며, 이는 CVE(Common Vulnerabilities and Exposures) 데이터베이스를운영하고있는 MITRE의 2006년취약성데이터를분석및참조하여 TOP 10 취약점목록을정함 o 안전한웹어플리케이션의운영을위해서는어플리케이션구현단계뿐만 아니라라이프사이클전체단계에서의보호수단을강구해야함을강조함 보안성점검도단한번의점검만으로는충분하지못하며, 지속적인어플리케이션점검 및코드라인을수정을통하여보호수준을제고하여야함을강조함 OWASP TOP 10 주요내용 o OWASP TOP 10 A1 크로스사이트스크립팅 (XSS) Cross Site Scripting (XSS) -XSS취약점은콘텐츠암호화나검증하는절차없이사용자가제공하는데이터를어플리케이션에서받아들이거나, 웹브라우저로보낼때마다발생. -XSS는공격자가희생자의브라우저내에서스크립트를 실행하게허용함으로써사용자세션을가로채거나, 웹사이트를손상하거나웜을심는것등을가능하게할수있음. - 4 -
A2 인젝션취약점 Injection Flaws [ 신규] A3 악성파일 실행 Malicious File Execution A4 불안전한직접 객체참조 Insecure Direct Object Reference [ 신규] A5 크로스사이트 요청변조 (CSRF) Cross Site Request Forgery (CSRF) - 인젝션취약점, 특히 SQL 인젝션취약점은웹 - 어플리케이션에서자주발생함. 인젝션은사용자가입력한 데이터가명령어나질의문의일부분으로인터프리터에보내질 때발생. 악의적인공격자가삽입한데이터에대해인터프리터는 의도하지않은명령어를실행하거나데이터를변경할수있음. - 원격파일인젝션(RFI) 에취약한코드는공격자가악의적인 코드와데이터의삽입을허용함으로써전체서버훼손과같은 파괴적인공격을가할수있음 - 악성파일실행공격은 PHP, XML, 그리고사용자로부터 파일명이나파일을받아들이는프레임워크에영향을줌 - 직접객체참조는개발자가파일, 디렉토리, 데이터베이스 - 기록혹은키같은내부구현객체에대한참조를 매개변수로노출시킬때발생. URL 혹은폼 공격자는이러한참조를조작해서승인없이다른객체에접속할수 있음 -CSRF 공격은로그온한희생자의브라우저가사전승인된 요청을취약한웹어플리케이션에보내도록함으로써희생자의 브라우저가공격자에게악의적인행동을수행하도록함. A6 정보유출및 부적절한오류 처리 Information Leakage and Improper Error Handling - - 어플리케이션은다양한어플리케이션문제점을통해의도하지않게자신의구성정보, 내부작업에대한정보를누출할수있음공격자는이러한약점을사용해서민감한정보를훔치거나보다심각한공격수행가능 A7 취약한인증 및세션관리 Broken Authentication and Session Management - 자격증명과세션토큰은종종적절히보호되지못함. 공격자는다른사용자인것처럼보이게하기위하여비밀번호, 키, 혹은인증토큰을손상시킴 A8 - 불안전한 암호화저장 Insecure Cryptographic Storage - 데이터를적절히보호하기위한적절한암호화기능을사용하지않은데이터를공격하여개인정보노출이나신용카드사기와같은범죄에사용가능 - 5 -
[ 신규] A9 불안전한통신 Insecure Communications A10 URL 접속 제한실패 Failure to Restrict URL Access - 대부분민감한데이터의전송에는암호화전송이필요하지만, 이를암호화하지않거나암호화가부족하여발생 - 허가받지않은사용자가인가되지않은 URL에우회하여접속할 수있어발생 o 2007년 TOP 10 웹어플리케이션취약점은도출방법은 2006년도 MITRE 데이터의웹어플리케이션취약점을분석하여도출하였음 - XSS(Crocess-site scripting) Injection Flaws, Malicious File Exclution 취약점등이주를이루고있으며, 2007년도 TOP 10 취약점이대부분이를반영하였음 2006 년도 MITRE 데이터의 TOP 10 웹어플리케이션취약점 - 6 -
OWASP TOP 10 에새롭게등장한항목 o 2007 년새롭게발표된중요취약점은기존중요한웹보안취약점을 그대로유지하면서도새롭게등장한여러취약점들을잘보여주고있으며, 이전과는달리프라이버시관련요구가반영됨 2007 년도 OWASP Top 10 2004 년도 OWASP Top 10 2006 년도 MITRE A1. 크로스사이트스크립팅 (XSS) A4. 크로스사이트스크립팅 (XSS) 1 A2. 인젝션취약점 A6. 인젝션취약점 2 A3. 악성파일실행 ( 신규) 3 A4. A5. A6. 불안전한직접객체참조 크로스사이트리퀘스트변조 (CSRF) 정보유출및부적절한오류 처리 A2. 훼손된접근제어 (2007년 Top10 에서는분리됨) ( 신규) 36 A7. 부적절한오류처리 6 A7. 훼손된인증및세션관리 A3. 훼손된인증및세션관리 14 A8. 불안전한암호화저장 A8. 불안전한저장 8 A9. 불안전한통신 ( 신규) A10. URL 접근제한실패 ( 신규) A10. A2. 불안전한구성관리부분에서 논의됨 훼손된접근제어 (2007년 Top10 에서는분리됨) <2007 년에삭제 > A1. 검증되지않은입력 7 <2007 년에삭제 > A5. 버퍼오버플로우 4, 8, 10 <2007 년에삭제 > A9. 서비스거부 17 <2007 년에삭제 > A10. 불안전한구성관리 29 5 8 14 순위 o 2007년웹보안중요취약점에새롭게등장한항목은세가지임 - 악성파일실행 (Malicious File Execution) - 크로스사이트리퀘스트변조 (CSRF, Cross Site Request Forgery) - 안전하지못한통신 (Insecure Communications) - 7 -
o 악성파일실행은웹어플리케이션의파일첨부기능을악의적으로 사용하여발생하며, 이는충분하지못한악성파일검사로인하여 발생되는취약점임 - 대표적으로웹쉘 (Web Shell) 과그밖의원격악성코드와루트킷을 웹페이지에올리는방법등이있음 - 전형적인공격방법은게시판에웹쉘등의악의적인파일올게시하여서버권한을획득하는등의방법이었으나, 최근에는악의적인파일을외부의서버에서참조하는 Remote File Inclusion(RFI) 취약점이보고되고있음 국내에서는 Remote file inclusion (RFI) 부분에대하여 2004 년도이전부터공개용 게시판인 ZERO 보드에본취약점이보고되어지속적으로점검하고있는분야임 - 최근유행하고있는다양한기능을가진웹쉘 (Web Shell) 인 r57shell, c99shell 등이있으며, 이러한진화된웹쉘이홈페이지에게시될경우 보다많은공격을수행할수있는환경이만들어짐 r57shell 등의웹쉘이게시된홈페이지들을인터넷에서찾는방법은, 구글해킹을 이용하여가능하며구글특수검색어를이용하여검색이가능함 ( 구글검색어 : intitle:r57shell) o CSRF 로최근에널리알려지고있는크로스사이트리퀘스트변조공격은 2001년도정도부터조금씩알려지기시작했지만많이사용되거나알려지지않았음 - 이공격은세션쿠키, SSL 인증서등과같이자동으로입력된정보를웹어플리케이션에서사용자의요청을변조함으로써해당사용자의권한으로악의적인공격을수행할수있는취약점임 예로는, 아래와같이이미지내용을변경하여공격자의계좌로자금을이체하는코드삽입 - 8 -
<img src="http://www.mybank.com/transferfunds.do?acctid=132486&amount=2000 " width="0" height="0" /> 이취약점은웹2.0 환경에서전통적인 XSS 취약점기반의공격과함께매우효과적인공격기법으로선호될것으로판단됨 - 이공격은기존에지속적으로점검하여조치하였던, XSS 취약점에대한방어로대처할수있음. 또한, 브라우저로부터자동으로전송되지못하도록유일하고랜덤한토큰등을각각의 URL로부터발생시키며, 중요한트랜젝션에는재인증을수행하여방어해야함 o 안전하지못한통신의경우에는웹어플리케이션과관련된네트워크트래픽이나민감한정보의암호화문제를다루고있음 - 내부의중요구간에서는암호화통신을사용할것을권고하며, 신용카드정보와같은중요한정보를전송할때에는반드시암호화할것을권고하고있으며, 이새로운취약점은업계의프라이버시보호요구가반영된것임 - 특히, 인증된연결이나, 중요한정보를전송하는모든연결 (Connection), 웹서버와 DB 어플리케이션사이의내부연결은 SSL/TLS를사용할것을권고함 2004년도 OWASP TOP 10대비삭제된항목 o 지난 2004년 OWASP TOP 10 취약점대비삭제된것은, - 서비스거부 (Denial of Service) - 안전하지못한구성관리 (Insecure Configuration Management) - 확인되지않은입력 (Unvalidated Input) - 버퍼오버플로우 (Buffer Overflows) - 9 -
o 서비스거부 와 안전하지못한구성관리 는여전히중요한웹보안취약점이지만지난해이를기반으로한공격이그다지많지않아 2007년도웹중요취약점목록에서는제외되었음 MITRE 취약점순위는서비스거부공격 (17 위 ), 안전하지못한구성관리 (29 위 ) 임 o 버퍼오버플로우 는웹어플리케이션상의취약성이라기보다는주로 C나 C++ 가같은언어로작성된프로그램의취약성이므로 2007년도웹중요취약점목록에서는제외되었음 o 확인되지않은입력은웹중요취약점가운데가장기본적이고여전히 중요한취약점이지만, 이미널리알려져있고많은가이드와권고들이 있기때문에 2007 년도웹중요취약점목록에서는빠진것으로보임 기타이슈사항 o OWASP 에서는 OWASP TOP 10 취약점을학습할수있도록사용자에게실전위주로취약점을공격하고공격원리를파악하여방어할수있도록하기위하여제작되어운영되는 WebGoat Project를운영하고있음 o OWASP 에서는어플리케이션개발라이프사이클에서보안위협을줄이고 어플리케이션의보안을보증하기위한기초적인방향을제시하고있음 o OWASP 에서는 A Guide to Building Secure Web Applications 등의 웹어플리케이션구축가이드를제공하고있어국내에서도이러한 가이드라인에대한지속적인관심필요 o 웹어플리케이션에대한취약점에대한구체적인예를들어시큐어 코딩에대한가이드를제시 - 10 -
DB 에대한에러의예를보여주며, 이러한불필요한외부에노출되는정보 는 SQL Injection 등의공격에재사용될수있음을강조함 Example 1 Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access 97 Driver] Can't open database 'VDPROD'. Example 2 java.sql.sqlexception: ORA-00600: internal error code, arguments: [ttcgnd-1], [0], [], [], [], at oracle.jdbc.dbaccess.dberror.throwsqlexception (DBError.java:169) at oracle.jdbc.ttc7.ttioer.processerror (TTIoer.java:208) o 세션관리에대하여다루어지고있으며, 대부분국내에서도보안을 위하여적용하고있는것들을소개하고있음 - 공격자는패스워드, 인증키, 인증토큰등에대한공격을수행하며, 웹어플리케이션에서는종종적절하지못하게이러한정보를관리하지 못하여문제가발생하고있음 - 이를방지하기위하여, 추측할수없는랜덤세션 ID 를사용하며, URL 쿼리스트링이세션 ID 및사용자정보로이뤄지지않도록함 예 : https://www.example.net/servlet/login?userid=ralph&password=dumb - 또한세션 ID 의유효기간및사용가능한도메인을정하여사용 [ 쿠키를이용한세션ID 예] Set-Cookie: siteid=91d3dc13713aa579d0f148972384f4; path=/; expires=wednesday, 22-Oct-2007 02:12:40domain=.www.rd1.net secure Cookie: siteid=91d3dc13713aa579d0f148972384f4-11 -
6. 출장소감및업무활용계획 o OWASP & WASC AppSec 2007에서는최근웹어플리케이션보안에대한내용을중심을이루고있음 - OWASP 에서는 2004년웹어플리케이션보안의 10대취약점발표에이어, MITRE 등의데이터를수집분석하여 2007년웹어플리케이션 10대취약점을발표하였음 o 정보통신부소속 산하기관홈페이지취약점점검및보호진흥원내부의취약점점검시에 2007년도 OWASP TOP 10 취약점분야가대부분다루어지고있음 - 하지만, 2007 년도 OWASP TOP 10 취약점에서새롭게등장한 3개분야 ( 악성파일실행, 크로스사이트리퀘스트변조, 안전하지못한통신 ) 는웹어플리케이션보안의세계적인트랜드임을감안하여보호진흥원에서점검시에보다관심을가지고집중적으로점검해야할필요성이있음 - 외부점검에서발견하기어려운분야였던버퍼오버플로우취약점, 웹어플리케이션보안의기본이되며광범위하게발생되어취약점범주분류가어려웠던사용자입력검증등 2007년도 OWASP TOP 10에삭제되는항목을보호진흥원의점검항목에서도삭제검토가필요 o 보호진흥원에서는 2004년도에 웹서버보안관리가이드 를필두로 홈페이지개발보안가이드 를작성하여배포하였으나, - 변화하는환경에서기존웹관련보안가이드에대한업그레이드가부족하였으며, 웹보안에대하여각언어별로보안프로그램하는방법등의교육이부족한실정으로다양한프로그래밍언어별로시큐어코딩등의교육프로그램개발이필요한것으로생각됨 - 12 -
o OWASP 에서는웹보안도어플리케이션구축을통하여이루어지는것이므로, 웹어플리케이션개발라이프사이클에서의보안에대한중요성을강조함 - 어플리케이션보안은아키텍처와디자인으로부터시작하고, 철저한테스트를통하여보장됨 - 또한, 한발표자가발표한 디자인, 디자인, 디자인, 코딩, 테스트, 테스트, 테스트 란말과같이디자인및테스트의중요성이웹어플리케이션의보안을보증하는중요한요소임을느꼈음 o 마지막으로, OWASP는안전한웹어플리케이션을위한다양한분야의사람들이모여다양한시각으로정보보호업무를수행함 - 많은사람들의참여를독려하여디자인방법, 코딩방법, 테스팅방법, 공격방법, 다양한문서화를제공하고있음 - 국내에서도보다다양한전문가들이함께모여서웹어플리케이션보호를위하여다양한활동을수행할수있는장마련의필요성을느꼈음 7. 수집자료 o OWASP & WASC AppSec 2007 자료집 1 부 - 13 -