1 / 38

웹어플리케이션 보안 기술 동향

웹어플리케이션 보안 기술 동향. 2005. 04.19 한국전자통신연구원 정보보호연구단 이재승 jasonlee@etri.re.kr. 21C IT Global Leader. 웹어플리케이션 보안 -------------------------------- ---------------------------------------- 웹어플리케이션 개요 웹어플리케이션 보안의 필요성 웹어플리케이션 보안 솔루션 웹어플리케이션 보안 제품 현황 10 가지 웹어플리케이션 보안 취약점. 웹어플리케이션 개요 (1/2).

clarke
Download Presentation

웹어플리케이션 보안 기술 동향

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 웹어플리케이션 보안 기술 동향 2005. 04.19 한국전자통신연구원 정보보호연구단 이재승 jasonlee@etri.re.kr

  2. 21C IT Global Leader • 웹어플리케이션 보안 • ------------------------------------------------------------------------ • 웹어플리케이션 개요 • 웹어플리케이션 보안의 필요성 • 웹어플리케이션 보안 솔루션 • 웹어플리케이션 보안 제품 현황 • 10가지 웹어플리케이션 보안 취약점

  3. 웹어플리케이션 개요 (1/2) • 웹어플리케이션이란? • A web application is a software application that is accessible using a web browser or HTTP(S) user agent.

  4. 웹어플리케이션 개요 (2/2) • 웹어플리케이션의 전형적인 아키텍처 n-tiers SQL Database HTTPrequest (cleartext or SSL) DB Web Server Web app Connector Web Client Transport Web app DB Web app Connector Web app HTTP reply(HTML, Javascript, VBscript, etc) Apache, IIS, Netscape etc… Perl, C/C++, JSP, etc.. ADO,ODBC, etc..

  5. 웹어플리케이션 보안의 필요성 (1/4) • 최근 해킹 동향 • 웹 어플리케이션에 대한 공격 증가 • 공격 도구의 다양화, 해킹 난이도 하락

  6. 웹어플리케이션 보안의 필요성 (2/4) • 최근 웹 어플리케이션 해킹 동향 (출처: CSI/FBI Computer Crime and Security Survey) • 웹사이트가 침해 당한 경험이 있다는 응답자의 비율이 99년 20%에서 2003년 25%로 꾸준히 증가 • 2004년 조사 응답자의 7% 가량이 웹사이트 훼손 경험 (피해액: $958,100) • 2004년 조사 응답자의 10% 가량이 웹어플리케이션 공격 경험 (피해액: $2,747,000) • 웹어플리케이션 해킹 횟수 (출처: CERT, incident report)

  7. 웹어플리케이션 보안의 필요성 (3/4) • Firewall, SSL, IDS, 보안 OS 등을 이용한 네트워크 계층에서의 방어만으로는 응용 계층에 대한 공격을 막을 수 없음 (응용계층에 보안 구멍이 존재) Custom Developed Application Code Application Layer Databases Web Services Human Resrcs Legacy Systems Directories Billing APPLICATIONATTACK App Server Web Server Hardened OS Network Layer Firewall Firewall

  8. 웹어플리케이션 보안의 필요성 (4/4) • Firewall, IDS 등 네트워크 계층 보안기술의 한계 취약점: Business Logic SQL Injection Parameter Manipulation Application Server Authorization Solutions Cookie Poisoning Web Server Cross-Site Scripting Host-basedIDS Operating System Firewall VPN PKI Network Network-based IDS

  9. 웹어플리케이션 보안 솔루션 • 웹 해킹 및 웜으로부터 핵심적인 엡 어플리케이션을 보호하는 전용 솔루션 • 웹 프로그래밍 오류에 의한 역기능을 최소화시키고 DMZ 혹은 Web zone을 방어하는 보안 솔루션 • 웹 스캐너, 웹 어플리케이션 게이트웨이로 구분 - 웹 스캐너:웹 어플리케이션의 취약점을 진단 - 웹 어플리케이션 게이트웨이 .웹 어플리케이션에 대한 공격을 전문적으로 차단. .기존 방화벽과 웹서버 중간 혹은 웹서버에 위치하면서 외부에서 유입되는 HTTP 요청을 필터링해 웹어플리케이션에 전달 . SSL로 암호화된 데이터를 패킷 분석 후 웹서버로 보내줄 수 있음 • 기존 보안 솔루션과 보완적 관계

  10. 웹어플리케이션 보안 제품 현황 (1/2) • 카바도 (이스라엘) - 웹 스캐너 (ScanDo), 웹 방화벽 (InterDo) 통합형 제품 보유 - 자동정책설정 (Autopolicy) 기능 제공 • 생텀: 웹 스캐너 (AppScan)에서 진단한 취약성을 바로 웹 어플리케이션 방화벽 (App-Shield)로 업로드 • 넷컨티넘 - NC-1000 (웹 어플리케이션 방화벽) - ASIC 기반이며 타 어플리케이션 스캐너와 연동 가능 • 테로스: ASIC 기반의 SSL 가속 기능 제공 • 체크포인트 - Connectra, 웹 인텔리전트, SSL 네트워트 익스텐더 출시 • F5네트웍스: Traffic Shield (웹 보안 방화벽)은 SSL 가속기를 내장한 하드웨어 일체형

  11. 웹어플리케이션 보안 제품 현황 (2/2) • 임퍼바 - SecureSphere: 호스트 IPS 제품을 포함한 웹 어플리케이션 게이트웨이 • 패닉시큐리티 (국내) - 웹 취약점 스캐너 PS 스캔 W3B 자체 개발 • 듀얼시큐리티 (국내) - ASROC 개발 - OWASP에서 규정한 10대 취약점을 기반으로 해커의 공격에 대한 룰 생성으로 웹 해킹을 차단

  12. 10가지 웹어플리케이션 보안 취약점 (1/10) • OWASP (Open Web Application Security Project)에서 발표 • 입력값 검증 부재 • 웹 브라우저는 HTTP request에 URL, Query string, Form Fields, Hidden Fields, Cookies, Headers 등을 포함하여 웹 어플리케이션에 전송 • 웹 어플리케이션은 이 정보를 가지고 웹 페이지를 생성 • 공격자는 request를 수정하여 공격할 수 있음 • 대처 방안: - 모든 parameter에 대해 사용 전에 검증 수행 - 허용된 값만을 받아들이는 Positive 방식을 사용하여 parameter 검증

  13. 10가지 웹어플리케이션 보안 취약점 (2/10) • 취약한 접근 통제 • 인증되지 않은 사용자가 시스템에 접근하여 권한 없는 기능을 수행 • 접근 통제 설계가 취약하여 공격자가 SQL-Injection 등의 방법을 사용하여 다른 사람의 계정으로 들어갈 수 있음 • 대처 방안: - 어플리케이션의 접근통제 요구사항을 반영하여 보안정책을 명시 - 접근 통제 메커니즘의 우회 가능성 검증

  14. 10가지 웹어플리케이션 보안 취약점 (3/10) • 취약한 인증 및 세션 관리 • 강력한 인증 메커니즘도 취약한 사용자의 credential 관리로 침해 받을 수 있음 (ex. 패스워드 분실) • 세션 토큰이 적절히 보호되지 않으면 공격자가 현재 활성화된 사용자의 세션을 가로채 다른 사용자를 가장하여 접속 가능 • 대처 방안: - 강력한 패스워드 사용 - 전송중의 credential 보호 - 세션 아이디 보안

  15. 10가지 웹어플리케이션 보안 취약점 (4/10) • Cross-Site Scripting 취약점 • 웹어플리케이션의 특성상 사용자의 브라우저에서 실행될 수 있는 악성코드 전달가능 • 대처 방안: - 어플리케이션 차원에서 HTTP 헤더, 쿠키, 쿼리 스트링, 폼 필드, 히든 필드 등의 모든 인자들에 대해 허용된 유형의 데이터만을 받아들이도록 한다.

  16. 10가지 웹어플리케이션 보안 취약점 (5/10) • 버퍼 오버플로우 • 웹 어플리케이션의 실행 가능한 스택을 덮어쓰기 위해 사용됨 • 웹 어플리케이션에 주의깊게 조작한 입력 값을 보내 웹 어플리케이션이 임의의 코드를 수행하도록 함 • 대처 방안: - 해당 제품의 최신 패치 적용 - 자체 제작한 어플리케이션의 경우 HTTP 요청을 통해 입력 받아들이는 코드 검토

  17. 10가지 웹어플리케이션 보안 취약점 (6/10) • 삽입 (Command Injection) 취약점 • 취약한 웹 어플리케이션을 통해 악성 코드를 전송하여 시스템 콜을 통한 OS 호출, 쉘 명령어를 통한 외부 프로그램 사용, SQL 구문을 통한 백엔드 데이터베이스 호출 등을 수행 SQL-Injection의 예: SELECT Count (*) FROM Users WHERE UserName=‘’Or 1=1 -–’ AND Password=‘’ • 대처 방안: - 가능한 한 외부 인터프리터 사용하지 않는다. - 백엔드 데이터베이스 호출할 경우, 입력 값을 주의 깊게 검증

  18. 10가지 웹어플리케이션 보안 취약점 (7/10) • 부적절한 에러 처리 • 부적절한 에러 처리로 stack trace, 데이터베이스 덤프나 에러 코드를 사용자가 볼 수 있도록 자세한 에러 메시지 반환 • 대처 방안: - 해당 사이트가 예상 가능한 모든 에러를 적절히 다루도록 보장

  19. 10가지 웹어플리케이션 보안 취약점 (8/10) • 암호의 안전하지 않은 사용 • 중요 데이터를 암호화하지 않거나, 키를 안전하지 않은 장소에 보관하는 등 암호를 적절히 사용하지 않는 경우 • 대처 방안: - 취약점이 없는 암호 라이브러리 사용 - 사용자 인증정보, 패스워드 등은 안전하게 저장되도록 함

  20. 10가지 웹어플리케이션 보안 취약점 (9/10) • Denial of Service • 웹 어플리케이션은 공격과 정상적인 트래픽 사이의 차이를 구분하기 어려워 DoS 공격에 취약할 가능성이 높음 • 대처 방안: - 완벽하게 방어하는 방법은 없음 - 모든 사용자에게 제한된 자원만을 할당

  21. 10가지 웹어플리케이션 보안 취약점 (10/10) • 부적절한 환경 설정 • 취약점을 패치하지 않거나 적절하지 않은 파일 권한 설정, 디폴트 패스워드를 사용하는 계정을 남겨두는 등의 부적절한 환경 설정은 심각한 위험을 줄 수 있음 • 대처 방안: - 보안 강화 가이드라인을 만들고 준수

  22. 21C IT Global Leader • 웹서비스 보안 • ------------------------------------------------------------------------ • 웹서비스 개요 • 웹서비스 구성 예 • 웹서비스 보안 • XML 전자서명 • XML 암호 • WS-Security • XKMS • XACML • SAML • 결론

  23. 웹서비스 (Web Services) 개요 • 네트워크상에서 접근 가능한 소프트웨어 기능 단위로, 플랫폼, 프로그래밍 언어 및 컴포넌트 모델에 독립적인 기술로 만들어진 소프트웨어 • Service Provider: 웹 서비스를 구현하여 제공하며, 웹 서비스로 공개할 기능에 대한 인터페이스를 표준 (WSDL)에 맞춰 기술하고, 이 인터페이스를 레지스트리에 공개 • Service Registry: Service Provider가 제공한 웹 서비스를 Service Consumer가 찾을 수 있도록 필요한 정보를 제공 (UDDI) • Service Consumer: Service Provider 가 만든 웹 서비스를 사용하며, Service Registry에서 웹 서비스를 bind하는데 필요한 정보를 검색하고, 이 정보를 이용하여 웹 서비스를 사용한다.

  24. 웹서비스 구성 예 Company A Web App server Request Web service Web App Client Response Transport Web App Firewall Internet Web App Firewall server Web service Web App Transport Web App Company B

  25. Simple Object Access Protocol (SOAP) 웹서비스 보안 XML 보안정보 교환 (SAML) XML 접근제어 (XACML) XML Security Frameworks XML 키 관리 (XKMS) Web Services Security (WS-Security) HTTP, FTP, SMTP, JMS, etc Non-XML Frameworks Transport-Level Security : Secure Socket Layer (SSL) Transmission Control Protocol and Internet Protocol (TCP/IP)

  26. XML 전자서명 (1/2) • 전자문서 혹은 메시지에 대한 인증, 무결성, 부인봉쇄 서비스 제공 • 전자서명된 결과가 XML 형태로 XML 및 웹서비스 환경에 접목이 용이 • XML에 대한 부분서명 지원 • Remote에 있는 대상에 대한 전자서명 가능 • 여러 개의 문서에 대한 서명을 하나의 XML 전자서명으로 처리 가능

  27. XML 전자서명 (2/2) • XML 전자서명된 메시지의 예 <?xml version="1.0"?> <!DOCTYPE Signature SYSTEM "xml/xmldsig.dtd"> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2000/CR-xml-c14n-20001026"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="xml/test.xml#jasonlee"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2000/CR-xml-c14n-20001026#WithComments"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>DmKpHJWGGS8y3tdL2a4f19PwYig=</DigestValue> </Reference> </SignedInfo> <SignatureValue> MCwCFHNYk1vKdjI1FBR07MYJGw5QV4IYAhQGKKtVEcoaXSYS6tSG8TFFlPhi/g== </SignatureValue> <KeyInfo> <X509Data> <X509SubjectName>CN=Jason, OU=ISTD, O=ETRI, L=Yusong, ST=Taejon, C=KR</X509SubjectName> <X509Certificate> MIIC7zCCAq0CBDqDqyAwCwYHKoZIzjgEAwUAMF0xCzAJBgNVBAYTAktSMQ8w DQYDVQQIEwZUYWVqb24xDzANBgNVBAcTBll1c29uZzENMAsGA1UEChMERVRS STENMAsGA1UECxMESVNURDEOMAwGA1UEAxMFSmFzb24wHhcNMDEwMjA5MDgz ……………. </X509Certificate> </X509Data> </KeyInfo> </Signature>

  28. XML 암호 • 전자문서 혹은 메시지에 대한 기밀성 제공 • 암호화된 결과가 XML 형태로 XML 및 웹서비스 환경에 접목이 용이 • XML에 대한 부분암호화 지원 <?xml version="1.0"?> <!DOCTYPE customer_order SYSTEM "custord.dtd"> <customer_order> <items> <item> <name>Turnip Twaddler</name> <qty>3</qty> <price>9.95</price> </item> <item> <name>Snipe Curdler</name> <qty>1</qty> <price>19.95</price> </item> </items> <customer> <name>Doug Tidwell</name> <street>1234 Main Street</street> <city state="NC">Raleigh</city> <zip>11111</zip> </customer> <EncryptedElement algorithm="DES/CBC/PKCS5Padding" contentType="text/xml" encoding="base64" iv="S5Rirg//pNQ=">vJqNpDrQT1vmCVbyGJfIwdIDBYoGXGmutgz6TVGoPuKVG7IxNEN50iKlw8pmtx Fixz5hOChOXgTtPqktQhEHO5+vLOLAFgIioDIRQGHHmHng3CLd+8tvrT8wxPBCRSMUpx4d2TGXW2 tqSepam0ZxdmwUXwNSAgaR8hmiromD+bh+tDomPv7eFZ4no5ft3JG3t0trLlwVupF/5vaIJimUSmuUkkgy G8x9AcS/kXJxHpmM=peqGzIMf+8A=</EncryptedElement> </customer_order>

  29. WS-Security (SOAP Message Security) (1/2) • SOAP 메시지에 대한 정보보호 제공 • 메시지 수준에서의 무결성과 기밀성을 구현하기 위한 SOAP extension 의 표준 집합 • 제공되는 주요 메커니즘: • - security token을 메시지의 일부로 전송하는 기능 • - 메시지 무결성, 인증, 부인봉쇄 • - 메시지 기밀성 • Multi-hop 을 거치는 SOAP Message의 안전한 end-to-end 전송 가능 • SOAP 메시지 일부분에 대한 전자서명이나 암호화 가능 • 메시지 전달 경로상의 intermediary가 추가로 전자서명이나 암호화 가능 • Timestamp 지원으로 메시지 중복 송수신 여부 판단 가능

  30. SOAP-Envelope SOAP-Header Timestamp Security Header Security Token Cipher Data Signature SOAP-Body Cipher Data WS-Security (SOAP Message Security) (2/2) • 보호처리된 SOAP 메시지의 구조

  31. XKMS (XML Key Management Spec) (1/2) • PKI 기능을 XML 기반 어플리케이션에 용이하게 지원할 수 있는 공개키 관리를 위한 프로토콜 • X-KISS (XML Key Information Service Specification) - 식별자 정보가 주어졌을 때, 필요로 하는 공개키 위치와 식별자 정보 그리고 공개키 연결 기능 지원 - X-KISS Locate Service와 Validate Service로 구성 - 인증서의 유효성 검증 서비스 제공 • X-KRSS (XML Key Registration Service Specification) - 키 쌍 소유자에 의한 키 쌍의 등록, 관리를 지원하는 프로토콜 - 키복구, 재발급 (갱신) 또는 키취소 기능 지원

  32. PKI Provider (1) PKI Provider (2) XKMS (XML Key Management Spec) (2/2) • XKMS 서비스 모델 Signed & Encrypted XML Documents X-KISS X-KRSS <KeyBinding> <…..> Public Key XML Signature Locate Register SOAP Request SOAP Request Reissue SOAP Response SOAP Response Revocation Validate XML Encryption Key Pair Java Crypto Library Recovery Result = Valid <KeyBinding> <KeyID> <KeyInfo> User (1) User (2) PKI Module Interface SOAP Security

  33. XACML (eXtensible Access Control Markup Language) (1/2) • 공유된 자원 및 시스템에 대한 사용자의 접근 권한을 명시하는 접근제어 정책에 대한 표준화된 언어의 제공을 목적으로 하는 XML 기반의 접근제어 언어 • 보안정책에 대한 표준언어 제공 - 정책의 작성, 검토, 시험 및 승인 등의 보안정책의 관리가 수월 • 기존의 접근제어 시스템에도 쉽게 적용 가능 • XML의 범용성, 확장성 상속 • 정책언어와 요청/응답언어로 구성

  34. XACML (eXtensible Access Control Markup Language) (2/2) • XACML 서비스 모델

  35. SAML (Security Assertion Markup Language) (1/2) • 이질적인 웹 접근 관리와 보안 제품간에 인증과 인가 정보를 교환하기 위해 제안된 XML 기반 언어 • 인증과 인가 서비스를 제공하는 다양한 벤더 플랫폼 간의 상호 운용성을 제공 • 인증과 인가 정보를 교환하기 위한 XML 기반의 프레임워크 • 시스템들에 의해 생성되는 정보를 전달하기 위한 일반적인 공통언어 정의 • SSO (Single Sign On)에 적용 가능 • Assertion Protocol, Binding, Profile이 정의되어 있음

  36. SAML (Security Assertion Markup Language) (2/2) • SAML 서비스 모델

  37. 결론 • 기존 네트워크 보안 기술만으로는 웹어플리케이션에 대한 공격을 완전히 막기 힘들며 이를 위한 웹어플리케이션 보안 기술 적용 필요 • 웹어플리케이션 보안 솔루션은 기존 보안 솔루션과 보완적 관계 • 웹어플리케이션에 대한 공격이 증가 추세이므로 향후 웹어플리케이션 보안 솔루션에 대한 수요가 증가하리라고 예상됨

  38. 질의 응답

More Related