IBM Software Group 웹애플리케이션보안과 Rational AppScan 2009 IBM Corporation
목 차 웹애플리케이션의취약점및보안의필요성 대표적인웹애플리케이션해킹방법 SQL Injection XSS(Cross-Site Scripting) AppScan 소개 AppScan Standard Edition AppScan Developer Edition 요약
사이버범죄동향 IBM Software Group Rational software 비즈니스가환경, 고객, 파트너, 직원등에대해개방 (openness) 되어야하며신속 (agile) 함이요구되는동시에안전해야함 사이버범죄시장규모 > 마약시장 (FBI, 2007) 사이버범죄가과시를위한해킹이아니라사업적인성격을띄고있음 해커들의방법이점차진화 피해자의유형이나집중되는분야가급속도로확산 피해자가피해를입었는지도알기어려움 지난몇년간해킹공격이매년2배이상증가 공격이점점더악의적으로변함 조직 / 기업에치명적인공격이조직적으로 설계 되고있음
보안의영역및웹애플리케이션 Desktop Transport Network Web Applications Antivirus Protection Encryption (SSL) Firewalls / IDS / IPS 허가된네트워크사용자 http & https Firewall Application Servers Backend Server Web Servers Databases PC 용보안솔루션 AVS, Firewall, IPS, IDS, Spam Prevention, Spyware Remover 등 암호화통신으로정보유출차단 SSL, VPN etc 네트워크보안솔루션 F/W, WAF, IPS, IDS, Virus Wall etc Web Application 보안을위한솔루션은?
근본적인문제가빠진방어 IBM Software Group Rational software 기존의정적, 문제대응방식의방법으로는웹애플리케이션을타겟으로행해지는공격을막아낼수없으며, 근본적인문제를해결하는것이중요 Access Control And Firewall IDS/IPS AV Enterprise Infrastructure The Internet DoS Antispoofing Known Web Server Issues Parameter Tampering Cross Site Scripting Web Server Application Server Databases Backend Server/System SSL Port Scanning Pattern- Based Attacks SQL Injection Cookie Poisoning
웹애플리케이션의취약성은지속적으로증가 2008 년보고자료 54.9% 의취약성은웹애플리케이션문제 6 개월동안 SQL Injection 공격은 30% 증가 2008 년에발견된웹애플리케이션취약점의 74% 가연말까지해결되지않음
웹애플리케이션보안중요성과현실 웹애플리케이션 해커들의 #1 목표 75% 의공격이애플리케이션레이어에대해발생 (Gartner) XSS & SQL Injection이가장많이시도되는두가지공격 (Mitre) 80% 의조직들이2010년에는애플리케이션보안과관련된문제를겪을가능성이있음 (Gartner) 공격빈도 웹애플리케이션 투자 10% 75% 90% 25% 네트워크 / 서버
웹애플리케이션보안문제발생시의영향 해커의목표가되는대부분의웹사이트는고객의중요한정보를보유하고있기때문에, 그정보의노출로인한피해는매우클수밖에없음 이에따른피해는 기업의신뢰도하락 고객감소 시장점유율하락 평판에타격 법적책임및이에따른비용 규제및감사비용.. 하룻동안시장에서 USD 200M 하락 자료참조 : Gartner, IDC, Watchfire
SQL Injection SQL Injection? 사용자가제공한 의도적인 데이터가명령문이나질의문의일부로포함되어시스템에전송되는것 발생되는문제? SQL injection : 허가되지않은데이터베이스의데이터접근및수정 SSI(Server-Side Includes) injection : 서버상에서명령문을수행하여데이터에접근 LDAP injection 인증과정생략 웹애플리케이션 정보탈취 정보수정 애플리케이션변경 공격목적의 SQL 문 해커
SQL Injection 시도방법 IBM Software Group Rational software 애플리케이션탐색을위한시도 에러메시지가해커에게스트링이사용된다는점, DB의종류등에대한정보를제공 SQL 문확인가능 : username = AND password = xxxx username = or 1=1 -- AND password = xxxx
Cross-Site Scripting (XSS) XSS? 정상적으로접근한웹페이지에사용자가임의의스크립트를삽입시켜특정정보를취득하는것 발생되는문제 세션토큰의취득 페이지의내용손상 (defacement, 세션 hijacking 등 ) 1. 메일등을통해 bank.com 의링크를보냄 해커 4. 사용자모르게사용자의쿠키와세션정보를전송 5. 해커가훔친정보를이용하여접근 bank.com 2. 사용자가링크에포함된스크립트를보냄 피해자 3. 사용자에의해수행된스크립트에대한결과전송
Cross-Site Scripting (XSS) 시도방법 검색텍스트박스에검색어를입력 HTML 문이적용되어진것을확인 검색어에스크립트적용 : 예 ) <script>alert(document.cookie)</script> 정보취득이가능 : URL 정보를메일등으로링크에첨부하여전송 http://bank.com:88/xss/text_r.asp?str=%3cscript%3ealert%28%22%b1%ee%b2%e1%21%22%29%3b%3c%2fscript%3e
Cross-Site Scripting (XSS) 해커가피해자로하여금스크립트를시행시키게할수있다면 피해자가브라우징하고있는도메인에서쿠키정보를취득할수있고, 이도메인에서피해자가보는어떤페이지의내용도수정할수있으며 (defacement) 브라우저에서피해자가수행하는모든행동을추적할수있고, 피싱사이트로유도할수있으며, 브라우저의취약점을악용하여피해자의 PC를제어할수있으며, XSS 가가장악용되는보안문제임
AppScan Standard Edition AppScan? 웹애플리케이션의보안점검도구 AppScan이필요한이유 웹애플리케이션의보안문제를보다쉽게발견하고해결하기위해서 AppScan의역할 웹애플리케이션을테스트하고, 보안문제를발견하여이를조치할수있도록문제에관련된다양한정보제공 사용대상자 보안감사자 QA 팀 개발자 1. 애플리케이션스캔 2. 보안상취약성파악 3. 결과분석및권고사항제시
AppScan Standard Edition 의동작방식 AppScan의동작방식 웹애플리케이션에대해블랙박스 (black-box) 테스트수행 웹애플리케이션을링크를따라찾아다니며사이트모델생성 보안상의취약점을능동적으로찾음 탐색시점에파악된요청들을해커들이수행할만한요청으로변경하여입력과애플리케이션의로직을테스트 HTTP 요청의결과에근거하여해당애플리케이션이취약한지평가 SQL injection 테스트예 원요청 http://server/page.jsp?param=value 테스트요청 http://server/page.jsp?param= or 1=1 or = http://server/page.jsp?param= or 1=1 or = http://server/page.jsp?param= -- Web Application http://server/page.jsp?param=+1+1+1 HTTP Request HTTP Response
스캔구성및수행 IBM Software Group Rational software 스캔을위한정보 어디서, 어떻게, 무엇을 타겟웹애플리케이션 URL 로그인방법및정보 테스트정책 적용룰 / 패턴 링크깊이, 수의제한 스캔제외경로및파일타입등 테스트대상애플리케이션정보수집 시작 URL 부터링크를따라탐색하여웹사이트페이지정보수집 수집된 URL 정보들을애플리케이션트리형태로구체화 스캔 선스캔으로실제스캔이전에권고사항제공 수집된 URL에변조된Request를송신하여스캔수행 각 request에대한응답기록및결과제공
스캔분석 보안문제 IBM Software Group Rational software 스캔중발견된문제들에대한포괄적이고자세한정보를제공 단순리스트업이상의정보필요 문제정보 보안권고문 수정안 요청 / 응답
스캔분석 조치작업 IBM Software Group Rational software 스캔에서발견된문제들을위해디자인된솔루션제공 애플리케이션이현재가지고있는문제를어떻게해결해야할지에대한정보 조치작업별로적용할수있는문제들리스트업 ( 비개발자인 ) 보안담당자입장에서 ( 비보안전문가인 ) 개발자들과보다정확하게소통가능
스캔분석 애플리케이션데이터 테스트수행중웹애플리케이션에서발견된내용의리스트 요청 / 응답정보 브라우저보기기능 수동테스트기능 요청을수정하여원하는내용의테스트수행가능 사용자가패러미터값제공, 자동폼내용채우기기능해제등을통해추가적인테스트가능
리포트 테스트분석후조직내의다양한팀원들과결과를공유할수있는여러관점의리포트제공 보안보고서 기본보고서 산업표준 (OWASP, ISO, Visa 등 ) 규정준수 ( 일본, 유럽, 미국등의규정 ) 델타분석 스캔비교 템플리트기반 사용자정의리포트 발생된문제, 빈도등에대한정보포함 규정준수보고템플릿 OWASP Top 10 보고서일부의예
개발공정주기단계별문제해결비용 공정후기에발견된문제일수록이를해결하는데더많은비용과시간소요 Early Test의필요성 개발단계에서개발자에의해코드상에서발견할수있는문제들을찾아해결할수있다면 $7,600/defect $960/defect $80/defect 요구사항분석단계 $240/defect 디자인 / 구현단계 QA/ 테스트단계 출시후
코드에서발견될수있는보안문제들 Source : 문제가있는문자열을리턴하는메소드 Sink : 보안문제가발생할소지가있는메소드 Sanitize : 문자열의잠재적인문제를해결하는메소드 protected protected void void doget( doget( HttpServletRequest HttpServletRequestreq, req, HttpServletResponse HttpServletResponseresp) resp) throws throws IOException IOException {{ Source String String str str = req.getparameter( searchvalue"); PrintWriter PrintWriterwriter = resp.getwriter(); resp.getwriter(); Sink writer.println(str); writer.println(str); }} Source String String username username = request.getparameter( username ); String String query query = SELECT SELECT** from from tusers tuserswhere + Sanitize userid= userid= + Sanitize(username) Sanitize(username) + + AND AND password= password= + Sanitize(password) Sanitize(password) + ; ; Sink ResultSet ResultSetrs rs = stmt.executequery(query); XSS 예 SQL Injection 예
Rational AppScan Developer Edition Developer Edition? 보안취약점들을찾아내기위해서정적코드분석 (Java) 을사용하여보안과규제준수를체크함 ( 보안전문가가아닌 ) 개발자들이개발프로세스의앞단계에서코드상의보안결점들을처리할수있도록하여, 이슈가처리되는비용을최소화시켜줌 주요기능 보안감사자가아닌개발자를위한 Self-Serve 보안테스팅제품 개발자들이사용하기용이함 Eclipse 기반 White box / Black box / Run time 분석 Developer Edition 은모든보안이슈들을찾는것이목적이아니라, 찾기쉬운이슈들을개발초기단계에서빠르고정확하게알아내기위함 (100%... 가아님 ) 초반에문제점을찾아해결 보다복잡한문제에집중
RASDE - 사용되는분석기술들 정적코드분석 화이트박스 코드를살펴서이슈들을찾음 ( 코드레벨스캐닝 ) 동적분석 블랙박스 동작하는애플리케이션으로테스트할정보를보내테스트 ( 매뉴얼수행 ) String Analysis 런타임분석 Black box 테스트가수행되는동안메쏘드호출을추적하여이정보를해당 black box 이슈와연관시켜분석가능 AppScan 이동적분석을수행하는동안애플리케이션이어떤작업을수행했는지이해하는데도움이됨 -IBM 특허출원중인코드분석기술 - 정확한결과를위해스캔을효과적으로구성하게해주는, Scan Expert 기능의코드분석용버전
요약 웹응용프로그램에는근본적인취약성이존재하고그에따른피해는심각 보안피해는 소잃고외양간고치는 꼴이므로현실적으로가시화되고있는피해에대하여적극적으로대처해야함 For Security Team 고객고충 보안담당자가웹애플리케이션테스팅도구를이용하여테스트수행 보안팀의노력만으로전체공정에서발생되는보안문제를해결하기에는인력이부족하며, 효과적인문제해결을하기어려움 고객이얻는가치 웹애플리케이션보안테스팅솔루션인AppScan Portfolio는개발자등소프트웨어개발관계자들이보안테스팅의책임을공유해서보안팀의리소스제한을경감시켜줌 For Development 고객고충 개발단계에서발견하여해결할수있는문제들이적절한인력과솔루션의부재로적시에발견되지못함 이에따라개발공정후반에발견된문제를해결하는데많은비용과시간이소요되어비능률적 고객이얻는가치 Dev Edition은개발단계에서보안비전문가도테스팅을할수있도록하는보안테스팅솔루션임 개발프로세스에서보다일찍보안이슈들을발견하고조치하도록하여, 프로세스를능률적으로만들고, 프로젝트가제시간에완료될수있도록해줌
감사합니다