1 / 32

10 장 . 웹 서비스 공격 (Attacking Web Service)

[Hacking Exposed] 웹 기획 . 운영자를 위한 해킹과 보안중에서. 10 장 . 웹 서비스 공격 (Attacking Web Service). 이무훈 , 송수연 한남대학교 컴퓨터공학과 데이터베이스 실험실. 목차. Part I : 웹 서비스란 무엇인가 ?. Part II : WSDL. Part III : 샘플 웹 서비스 해킹. Part IV : 웹 서비스 보안의 기본. Part V : 요약. Part I :. 웹 서비스란 무엇인가 ?. 웹 서비스란 무엇인가 ? [1].

tymon
Download Presentation

10 장 . 웹 서비스 공격 (Attacking Web Service)

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. [Hacking Exposed] 웹 기획. 운영자를 위한 해킹과 보안중에서 10장. 웹 서비스 공격(Attacking Web Service) 이무훈, 송수연 한남대학교 컴퓨터공학과 데이터베이스 실험실

  2. 목차 Part I : 웹 서비스란 무엇인가? Part II : WSDL Part III : 샘플 웹 서비스 해킹 Part IV : 웹 서비스 보안의 기본 Part V : 요약

  3. Part I : 웹 서비스란 무엇인가?

  4. 웹 서비스란 무엇인가? [1] • 웹 서비스란 • 특별한 기능을 수행하기 위해 필요한 것을 완비한 소프트웨어 구성 요소이고, 네트워크를 통하여 다른 구성 요소에 대한 관련된 능력과 정보를 공표하는 것 • “An Interface that describes a collection of operations that are network accessible through standardized XML messaging”[KRnet 2002, 이규철] • 웹 서비스의 구성 요소 • WSDL (Web Service Description Language) • UDDI (Universal Description, Discovery, and Integration) • SOAP (Simple Object Access Protocol)

  5. Company A Web App server Request Web service Web App Client Response Transport Web App Firewall Internet Web App Firewall Directory Company A : Web service 1 Company A : Web service 2 Company B : Web service 1 etc. server Web service Web App Transport Web App Company B 웹 서비스란 무엇인가? [2] 진부한 웹 서비스 아키텍처 다이어그램

  6. Service Provider Publish Bind Service Client Description Service Registry Service Request Find UDDI Registry 웹 서비스란 무엇인가? [3] Web Service Roles, Operations, Artifacts [자료 출처] http://www-903.ibm.com/kr/software/wbr/element/element.html

  7. 웹 서비스란 무엇인가? [4] • 전송 : HTTP(S) 상에서 SOAP • SOAP : 중앙 집중화된 환경과 분산된 환경에서 개별 시스템 사이의 구조화 및 유형화된 데이터를 교환하는 데 사용될 수 있는 XML 문서의 정의를 제공 • XML을 기반으로 시스템 통신에 대한 메시지 정의 • SOAP Version 1.2 • W3C Candidate Recommendation24 January 2003

  8. SOAP envelop SOAP header Header block 1 Header block 2 SOAP body Body subelement 1 Body subelement 2 웹 서비스란 무엇인가? [5] <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> </soap:Envelope> <SOAP-ENV:Header> <Foo SOAP-ENV:mustUnderstand="1"> Hello! </Foo> </SOAP-ENV:Header> Header <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:echoStringResponse> <Return>string</Return> </tns:echoStringResponse> </soap:Body> Body Envelope 외피, 헤더, 바디를 나타내는 SOAP 메시지의 구조화된 표현

  9. Soap proxy 2 3 Soap listener 1 4 5 Client application Component XML/HTTP 1. Client Application에서 Remote Component를 요청 2. Soap proxy가 호출을 받아 XML request 메시지를 구성하고 전송 3. Soap listener가 받아 파싱과 validation을 수행 4. Soap listener가 Component를 호출 5. Soap listener가 결과를 받아 XML response 메시지를 구성하고 전송 6. Soap proxy가 response를 받아 파싱을 하고 결과를 Client application에게 전달 웹 서비스란 무엇인가? [6] 회사 A 회사 B [자료 출처] Scott Seely, SOAP, Prentice-Hall PTR 2002

  10. F i r e w a l l Port 80 X 특정Port 웹 서비스란 무엇인가? [7] • SOAP 장점 - 전송 측면 • Firewall 친화적 • 특정 포트가 아닌 HTTP의 포트를 사용하기 때문에 Firewall이나 Proxy Server가 있는 환경에서도 메시지 전달 가능 • Internet 확장 용이 • 보안측면 • HTTP를 사용하기 때문에 SSL과 같은 기존의 보안 Solution 적용가능 [자료 출처] Scott Seely, SOAP, Prentice-Hall PTR 2002

  11. 웹 서비스란 무엇인가? [9] • SOAP 장점 –표현측면(Cont’d) • Platform에 독립적 • 컴퓨터 H/W나 S/W마다 data를 표현하는 방법이 달라 이기종간Data교환이 어려웠던 문제를 XML을 이용하여 해결 • 기본적으로 Text형식의 data로 전송되기 때문에 별도의 encoding과 decoding 과정이 불필요 • 단순한 형식의 Data 뿐 아니라 구조화된 Data도 전송 가능 • MIME (Multipurpose Internet Mail Extensions )을 이용하여 사진, 음성, 동영상 등의 Binary data 전송가능 [자료 출처] Scott Seely, SOAP, Prentice-Hall PTR 2002

  12. Part II : WDSL

  13. WSDL [1] • WSDL • 메시지를 교환할 수 있는 통신 종단점의 모음으로 네트워크 서비스를 설명할 수 있는 XML 문법 [W3C 규격] • Web Services Description Language (WSDL) Version 1.2 • W3C Working Draft 3 March 2003 Service Implementation Definition service port Service Interface Definition Binding PortType Message Type WSDL의 구조 [자료 출처] Krnet 2002, 이규철

  14. WSDL [2] • WSDL Elements • <types>, <message> : 전달될 수 있는 메시지의 포맷 정의 • <portType> : 전달되는 메시지의 의미를 정의 <types> <schema targetNamespace=“http://stocktrader.ecdu/stockquote.xsd”> . . . </types> <message> <part name=“body” element=“xsd1:StockPrice”/> </message> <portType name=“StockQuotePortType”> <operation name=“GetQuote”> <input message=“tns:GetQuoteInput ”/> <output message=“tns:GetQuoteOutput ”/> </operation> </portTypes>

  15. WSDL [3] • WSDL Elements (Cont’d) • <binding> : 특정 전송을 통한 다양한 인코딩 지원 • <service> : 서비스에 대한 종단점을 정의(URL) <binding name=“StockQuoteSoapBinding” Type=“tns:GetQuoteInput”> <service name=“StockQuoteService”> <documentation>User-readable documentation here</documentation> <port name=“StockQuotePort” binding=“tns:GetQuoteBinding”> <soap:address location=“http://stocktrader.edu/stockqute”/> </port> </service>

  16. 디렉토리 서비스 : UDDI 및 DISCO [1] • UDDI (UDDI.org) • 웹 서비스의 분산 웹 기반 정보 레지스트리에 대한 규격 • 공개적으로 비즈니스로 하여금 다른 비즈니스들이 자신을 발견할 수 있게 하기 위해 자신들이 제공하는 웹 서비스에 관한 정보의 등록을 허락하는 규격을 구현 • UDDI Version 3.0 • Published Specification, 19 July 2002

  17. 디렉토리 서비스 : UDDI 및 DISCO [2] 2. Find Web service consumer UDDI Company A : Web service 1 Company A : Web service 2 Company B : Web service 1 etc. 3. Bind WSDL doc Logic API 4. Use 1. Publish Web service provider UDDI, WSDL, 웹 서비스 사이의 공표, 발견, 묶음 상호 작용 모든 화살표는 SOAP 통신을 나타낸다

  18. 디렉토리 서비스 : UDDI 및 DISCO [3] • DISCO • Discovery of Web Services • Microsoft 사의 독점 기술 • .NET 서버 운영체제 및 기타 .NET 관련 제품에서 사용 가능 <disco:discovery xmlns:disco=“http://schemas.xmlsoap.org/disco/” xmlns:scl=“http://schemas.xmlsoap.org/disco/scl/”> <! - -reference to other DISCO document- -> <disco:discoveryRef ref=“related-services/default.disco”/> <! - -reference to WSDL and documentation- - > <scl:contractRefref=“stocks.asmx?wsdl” docRef=“stocks.asmx”/> </disco:discovery>

  19. 디렉토리 서비스 : UDDI 및 DISCO [4] DISCO 파일을 특정 출력 디렉토리에 저장 [Microsoft .NET Framework Software Development Kit 다운로드] http://download.microsoft.com/download/.netframesdk /Install/1.0/W98NT42KMeXP/KO/setup.exe

  20. Part III : 샘플 웹 서비스 해킹

  21. 샘플 웹 서비스 해킹 [1] • DISCO 및 WSDL 노출 • 서비스 요청에 특정 인자를 붙임으로써 DISCO 및 WSDL 정보를 제공 http://www.victim.com/service.asmx http://www.victim.com/service.asmx?disco http://www.victim.com/service.asmx?wsdl

  22. 샘플 웹 서비스 해킹 [2] ?disco 인자를 사용하여서 원격 서비스로부터 DISCO 정보를 덤프한다

  23. 샘플 웹 서비스 해킹 [3] • DISCO 및 WSDL 노출 대응 방법 • 중요 데이터 및 개인 데이터에 대한 XML 보안 • 파일이 존재하는 디렉토리에 대한 인증 접근

  24. Part IV : 웹 서비스 보안의 기본

  25. 웹 서비스 보안의 기본 [1] • 웹 애플리케이션 보안과 유사성 • TCP/IP 보안 수단들은 웹 서비스에 대하여 보안을 거의 제공하지 못함 • HTTP 서버와 같은 하위-계층 서비스에 대해 신뢰하지 못함 • 웹 서비스 안에서의 부적절한 정보의 노출 및 인가

  26. 웹 서비스 보안의 기본 [2] • 웹 서비스 보안 방법 • 인증 • HTTP 인증 기법을 사용(웹 어플리케이션과 동일, Chapter5) • 강력한 인증 메커니즘 적용 • XML 보안 • XML 서명 • XML을 사용하는 디지털 서명에 대한 설명, 인증 제공, 메시지 무결성, XML 문서 혹은 그 일부에 대한 명세 • XML 암호화 • XML 문서 혹은 그 문서의 일부에 대한 암호화와 복호화를 설명

  27. 웹 서비스 보안의 기본 [3] • 웹 서비스 보안 방법(Cont’d) • XML 보안(Cont’d) • XKMS (XML Key Management Specification) • 공개키 등록과 배포를 위한 메시지 및 프로토콜을 정의 • SAML (Security Assertion Markup Language) • 공유 인증 및 인가 정보를 위한 포맷 • XACML (Extensible Access Control Markup Language) • 정보 접근 정책을 위한 XML 포맷 • SSL • Secure Sockets Layer • 네트워크를 통한 전송시, 도청이나 위조 공격으로부터 보호

  28. 웹 서비스 보안의 기본 [4] • WS-Security • Web Services Security Language • Microsoft Corp., IBM Corp., VeriSign Inc. 제정 (2002. 4. 11) • 새로운 웹 서비스 보안 규격 • SOAP 메시지 안에 있는 내장 디지털 서명, 암호화된 데이터, 보안 토큰을 위한 표준 포맷을 설명

  29. 웹 서비스 보안의 기본 [5] 메시지 수령자 메시지를 수령하여 개인키를 사용하여 3DES 키를 해독하고, 3DES 키를 사용하여 데이터를 해독 수령자의 공개키를 사용하여 암호화된 3DES 대칭 암호화키 SOAP 메시지 페이로드 부분을 암호화하는데 사용되는 암호화 키를 설명 참조된 암호화 페이로드 구성요소와 RSA 비대칭 암호법을 사용하는 메시지 수령자의 공개키를 사용하여 암호화 WS-Security 3DES 암호화된 데이터 페이로드

  30. Part V : 요약

  31. Part VI : 참고문헌 SOAP Cross Platform Web Service Development Using XML, PH PTR 웹 서비스, 한빛미디어 XML Web Services, 정보문화사 http://www-903.ibm.com/developerworks/kr/webservices/ KRnet 2002, 이규철

  32. Part VII : Q & A

More Related