초고속망관리 장애처리티켓시스템(TTS) 개발

Download Report

Transcript 초고속망관리 장애처리티켓시스템(TTS) 개발

[Hacking Exposed] 웹 기획. 운영자를 위한 해킹과 보안중에서
10장. 웹 서비스 공격
(Attacking Web Service)
이무훈, 송수연
한남대학교 컴퓨터공학과
데이터베이스 실험실
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
2
목차
Part I
: 웹 서비스란 무엇인가?
Part II : WSDL
Part III : 샘플 웹 서비스 해킹
Part IV : 웹 서비스 보안의 기본
Part V : 요약
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
3
Part I :
웹 서비스란 무엇인가?
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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)
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
5
웹 서비스란 무엇인가? [2]
Company A
Web
App
server
Request
Client
Web service
Response
Web
App
Web
App
Transport
Firewall
Web
App
server
Internet
Firewall
Web
App
Web service
Web
App
Transport
Directory
Company A : Web service 1
Company A : Web service 2
Company B : Web service 1
etc.
Company B
진부한 웹 서비스 아키텍처 다이어그램
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
6
웹 서비스란 무엇인가? [3]
Service
Provider
Publish
Bind
Service
Client
Description
Service
Registry
Find
Service
Request
UDDI Registry
Web Service Roles, Operations, Artifacts
[자료 출처] http://www-903.ibm.com/kr/software/wbr/element/element.html
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
7
웹 서비스란 무엇인가? [4]
 전송 : HTTP(S) 상에서 SOAP

SOAP : 중앙 집중화된 환경과 분산된 환경에서 개별 시스템 사
이의 구조화 및 유형화된 데이터를 교환하는 데 사용될 수 있는
XML 문서의 정의를 제공

XML을 기반으로 시스템 통신에 대한 메시지 정의

SOAP Version 1.2

W3C Candidate Recommendation 24 January 2003
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
8
웹 서비스란 무엇인가? [5]
SOAP envelop
SOAP header
Header block 1
Header block 2
SOAP body
Body subelement 1
Body subelement 2
<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-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
</soap:Envelope>
Envelope
외피, 헤더, 바디를 나타내는 SOAP 메시지의 구조화된 표현
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
9
웹 서비스란 무엇인가? [6]
1
Soap
proxy
2
3
XML/HTTP
Client
application
Soap
listener
4
5
Component
회사 A
회사 B
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에게 전달
[자료 출처] Scott Seely, SOAP, Prentice-Hall PTR 2002
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
10
웹 서비스란 무엇인가? [7]
 SOAP 장점 - 전송 측면
Port 80
특정 Port

F
i
r
e
w
a
l
l
X
Firewall 친화적

특정 포트가 아닌 HTTP의 포트를 사용하기 때문에 Firewall이나
Proxy Server가 있는 환경에서도 메시지 전달 가능

Internet 확장 용이

보안측면

HTTP를 사용하기 때문에 SSL과 같은 기존의 보안 Solution 적용
가능
[자료 출처] Scott Seely, SOAP, Prentice-Hall PTR 2002
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
12
Part II :
WDSL
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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
Binding
Service
Interface
Definition
PortType
Message
Type
WSDL의 구조
http://netwk.hannam.ac.kr
[자료 출처] Krnet 2002, 이규철
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
14
WSDL [2]
 WSDL Elements

<types>, <message> : 전달될 수 있는 메시지의 포맷 정의
<types>
<schema targetNamespace=“http://stocktrader.ecdu/stockquote.xsd”>
...
</types>
<message>
<part name=“body” element=“xsd1:StockPrice”/>
</message>

<portType> : 전달되는 메시지의 의미를 정의
<portType name=“StockQuotePortType”>
<operation name=“GetQuote”>
<input message=“tns:GetQuoteInput ”/>
<output message=“tns:GetQuoteOutput ”/>
</operation>
</portTypes>
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
15
WSDL [3]
 WSDL Elements (Cont’d)

<binding> : 특정 전송을 통한 다양한 인코딩 지원
<binding name=“StockQuoteSoapBinding”
Type=“tns:GetQuoteInput”>

<service> : 서비스에 대한 종단점을 정의(URL)
<service name=“StockQuoteService”>
<documentation>User-readable documentation here</documentation>
<port name=“StockQuotePort”
binding=“tns:GetQuoteBinding”>
<soap:address location=“http://stocktrader.edu/stockqute”/>
</port>
</service>
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
16
디렉토리 서비스 : UDDI 및 DISCO [1]
 UDDI (UDDI.org)

웹 서비스의 분산 웹 기반 정보 레지스트리에 대한 규격

공개적으로 비즈니스로 하여금 다른 비즈니스들이 자신을 발견
할 수 있게 하기 위해 자신들이 제공하는 웹 서비스에 관한 정보
의 등록을 허락하는 규격을 구현

UDDI Version 3.0

Published Specification, 19 July 2002
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
17
디렉토리 서비스 : UDDI 및 DISCO [2]
Web service
consumer
3. Bind
2. Find
UDDI
Company A : Web service 1
Company A : Web service 2
Company B : Web service 1
etc.
4. Use
Logic
API
WSDL doc
1. Publish
Web service provider
UDDI, WSDL, 웹 서비스 사이의 공표, 발견, 묶음 상호 작용
모든 화살표는 SOAP 통신을 나타낸다
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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:contractRef ref=“stocks.asmx?wsdl”
docRef=“stocks.asmx”/>
</disco:discovery>
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
19
디렉토리 서비스 : UDDI 및 DISCO [4]
DISCO 파일을 특정 출력 디렉토리에 저장
[Microsoft .NET Framework Software Development Kit 다운로드]
http://download.microsoft.com/download/.netframesdk
/Install/1.0/W98NT42KMeXP/KO/setup.exe
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
20
Part III :
샘플 웹 서비스 해킹
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
22
샘플 웹 서비스 해킹 [2]
?disco 인자를 사용하여서 원격 서비스로부터 DISCO 정보를 덤프한다
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
23
샘플 웹 서비스 해킹 [3]
 DISCO 및 WSDL 노출 대응 방법

중요 데이터 및 개인 데이터에 대한 XML 보안

파일이 존재하는 디렉토리에 대한 인증 접근
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
24
Part IV :
웹 서비스 보안의 기본
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
25
웹 서비스 보안의 기본 [1]
 웹 애플리케이션 보안과 유사성

TCP/IP 보안 수단들은 웹 서비스에 대하여 보안을 거의 제공하
지 못함

HTTP 서버와 같은 하위-계층 서비스에 대해 신뢰하지 못함

웹 서비스 안에서의 부적절한 정보의 노출 및 인가
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
26
웹 서비스 보안의 기본 [2]
 웹 서비스 보안 방법


인증

HTTP 인증 기법을 사용(웹 어플리케이션과 동일, Chapter5)

강력한 인증 메커니즘 적용
XML 보안

XML 서명
○
XML을 사용하는 디지털 서명에 대한 설명, 인증 제공, 메시지 무결성,
XML 문서 혹은 그 일부에 대한 명세

XML 암호화
○
XML 문서 혹은 그 문서의 일부에 대한 암호화와 복호화를 설명
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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

네트워크를 통한 전송시, 도청이나 위조 공격으로부터 보호
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
28
웹 서비스 보안의 기본 [4]
 WS-Security

Web Services Security Language

Microsoft Corp., IBM Corp., VeriSign Inc. 제정
(2002. 4. 11)

새로운 웹 서비스 보안 규격

SOAP 메시지 안에 있는 내장 디지털 서명, 암호화된 데이터, 보
안 토큰을 위한 표준 포맷을 설명
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
29
웹 서비스 보안의 기본 [5]
메시지 수령자
메시지를 수령하여 개인키를
사용하여 3DES 키를 해독하고,
3DES 키를 사용하여 데이터를 해독
수령자의 공개키를 사용하여 암호화된
3DES 대칭 암호화키
SOAP 메시지 페이로드 부분을
암호화하는데 사용되는
암호화 키를 설명
참조된 암호화 페이로드 구성요소와
RSA 비대칭 암호법을 사용하는
메시지 수령자의 공개키를 사용하여 암호화
WS-Security
3DES 암호화된 데이터 페이로드
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
30
Part V :
요약
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
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, 이규철
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY
[Hacking Exposed] 웹 기획, 운영자를 위한 해킹과 보
안
32
Part VII :
Q&A
http://netwk.hannam.ac.kr
HANNAM UNIVERSITY