2
21C IT Global Leader
웹어플리케이션 보안------------------------------------------------------------------------
1. 웹어플리케이션 개요2. 웹어플리케이션 보안의 필요성3. 웹어플리케이션 보안 솔루션4. 웹어플리케이션 보안 제품 현황5. 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)▣ 웹어플리케이션의 전형적인 아키텍처
WebServer DB
DB
Web app
WebClient Web app
Web appWeb app
HTTP request(cleartext or SSL)
HTTP reply (HTML, Javascript,
VBscript, etc)Perl, C/C++, JSP, etc..
ADO, ODBC, etc..Apache, IIS, Netscape etc…
TransportConnector
Connector
SQL Database
n-tiers
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 등을 이용한 네트워크 계층에서의
방어만으로는 응용 계층에 대한 공격을 막을 수 없음
Firewall
Hardened OSWeb ServerApp Server
Firewall
Dat
abas
esLe
gacy
Sy
stem
sW
eb S
ervi
ces
Dire
ctor
ies
Hum
an R
esrc
sB
illin
gCustom Developed Application Code
APPLICATIONATTACK
Net
wor
k La
yer
App
licat
ion
Laye
r ( 응용계층에 보안 구멍이 존재 )
8
웹어플리케이션 보안의 필요성 (4/4)◈ Firewall, IDS 등 네트워크 계층 보안기술의 한계
Network
Operating System
Web Server
Application Server
Business Logic
PKI
AuthorizationSolutions
Host-based IDS
VPN Firewall
Network-based IDS
SQL Injection
취약점 :
Parameter Manipulation
Cookie Poisoning
Cross-Site Scripting
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
웹서비스 보안------------------------------------------------------------------------
1. 웹서비스 개요2. 웹서비스 구성 예3. 웹서비스 보안4. XML 전자서명5. XML 암호6. WS-Security7. XKMS8. XACML9. SAML10. 결론
23
웹서비스 (Web Services) 개요
◈ 네트워크상에서 접근 가능한 소프트웨어 기능 단위로 , 플랫폼 , 프로그래밍 언어 및 컴포넌트 모델에 독립적인 기술로 만들어진 소프트웨어
◈ Service Provider: 웹 서비스를 구현하여 제공하며 , 웹 서비스로 공개할 기능에 대한 인터페이스를 표준 (WSDL) 에 맞춰 기술하고 , 이 인터페이스를 레지스트리에 공개
◈ Service Registry: Service Provider 가 제공한 웹 서비스를 Service Consumer 가 찾을 수 있도록 필요한 정보를 제공 (UDDI)
◈ Service Consumer: Service Provider 가 만든 웹 서비스를 사용하며 , Service Registry 에서 웹 서비스를 bind 하는데 필요한 정보를 검색하고 , 이 정보를 이용하여 웹 서비스를 사용한다 .
Service Registry
Service Consumer Service ProviderWeb ServiceDescription
Find Publish
Bind
Service Registry
Service Consumer Service ProviderWeb ServiceDescription
Find Publish
Bind
24
웹서비스 구성 예
InternetWebApp
WebApp
WebApp
Web service
server
Company B
Client
Fire
wall
WebApp
WebApp
WebApp
Web service
serverCompany A
Firewall
Transport
Transport
Response
Request
25
웹서비스 보안
XML 키 관리(XKMS)
Web Services Security (WS-Security)
Simple Object Access Protocol (SOAP)
XML
Secu
rity
Fram
ewor
ks
HTTP, FTP, SMTP, JMS, etc
Transport-Level Security : Secure Socket Layer (SSL)
Transmission Control Protocol and Internet Protocol (TCP/IP)
Non
-XM
L Fr
amew
orks
XML 접근제어(XACML)
XML 보안정보 교환(SAML)
26
XML 전자서명 (1/2)
▣ 전자문서 혹은 메시지에 대한 인증 , 무결성 , 부인봉쇄 서비스 제공
◈ 전자서명된 결과가 XML 형태로 XML 및 웹서비스 환경에 접목이 용이◈ XML 에 대한 부분서명 지원◈ Remote 에 있는 대상에 대한 전자서명 가능◈ 여러 개의 문서에 대한 서명을 하나의 XML 전자서명으로 처리 가능
27
<?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>
XML 전자서명 (2/2)▣ XML 전자서명된 메시지의 예
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
WS-Security (SOAP Message Security) (2/2)
▣ 보호처리된 SOAP 메시지의 구조
SOAP-EnvelopeSOAP-Header
SOAP-Body
TimestampSecurity Header
Security Token
Cipher Data
Signature
Cipher Data
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
XKMS (XML Key Management Spec) (2/2)
▣ XKMS 서비스 모델
SOAP Request
SOAP Response
PKI Provider (1)PKI Provider (2)
XML
Sign
atur
eXM
LEn
cryp
tion
Java
Cry
pto
Libr
ary
SOAP
Secu
rity
X-KISS
Locate
Validate
X-KRSS
Register
ReissueRevocationRecovery
PKI Module Interface
Signed &Encrypted
XML Documents
<KeyBinding> <…..>
Result = Valid<KeyBinding> <KeyID> <KeyInfo>
SOAP Request
SOAP Response
Public Key
Key PairUser (1) User (2)
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
AuthenticationAssertion
AttributeAssertion
AuthorizationDecisionAssertion
AuthenticationAuthority
AttributeAuthority
Policy DecisionPoint
Policy EnforcementPoint
Policy Policy Policy
CredentialsCollector
SystemEntity
ApplicationRequest
▣ SAML 서비스 모델
SAML (Security Assertion Markup Language) (2/2)
37
결론
◈ 기존 네트워크 보안 기술만으로는 웹어플리케이션에 대한 공격을 완전히 막기 힘들며 이를 위한 웹어플리케이션 보안 기술 적용 필요
◈ 웹어플리케이션 보안 솔루션은 기존 보안 솔루션과 보완적 관계◈ 웹어플리케이션에 대한 공격이 증가 추세이므로 향후 웹어플리케이션
보안 솔루션에 대한 수요가 증가하리라고 예상됨
38
질의 응답