38
1 웹웹웹웹웹웹웹 웹웹 웹웹 웹웹 2005. 04.19 한한한한한한한한한 한한한한한한한 한한한 [email protected]

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

  • Upload
    chung

  • View
    96

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

2005. 04.19한국전자통신연구원 정보보호연구단

이재승[email protected]

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

2

21C IT Global Leader

웹어플리케이션 보안------------------------------------------------------------------------

1. 웹어플리케이션 개요2. 웹어플리케이션 보안의 필요성3. 웹어플리케이션 보안 솔루션4. 웹어플리케이션 보안 제품 현황5. 10 가지 웹어플리케이션 보안

취약점

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

3

웹어플리케이션 개요 (1/2)

• A web application is a software application that is accessible using a web browser or HTTP(S) user agent.

▣ 웹어플리케이션이란 ?

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

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

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

5

웹어플리케이션 보안의 필요성 (1/4)▣ 최근 해킹 동향

◈ 웹 어플리케이션에 대한 공격 증가◈ 공격 도구의 다양화 , 해킹 난이도 하락

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

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)

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

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 ( 응용계층에 보안 구멍이 존재 )

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

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

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

9

웹어플리케이션 보안 솔루션

◈ 웹 해킹 및 웜으로부터 핵심적인 엡 어플리케이션을 보호하는 전용 솔루션

◈ 웹 프로그래밍 오류에 의한 역기능을 최소화시키고 DMZ 혹은 Web zone 을 방어하는 보안 솔루션

◈ 웹 스캐너 , 웹 어플리케이션 게이트웨이로 구분 - 웹 스캐너 : 웹 어플리케이션의 취약점을 진단

- 웹 어플리케이션 게이트웨이 . 웹 어플리케이션에 대한 공격을 전문적으로 차단 . . 기존 방화벽과 웹서버 중간 혹은 웹서버에 위치하면서 외부에서 유입되는 HTTP 요청을 필터링해 웹어플리케이션에 전달 . SSL 로 암호화된 데이터를 패킷 분석 후 웹서버로 보내줄 수 있음◈ 기존 보안 솔루션과 보완적 관계

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

10

웹어플리케이션 보안 제품 현황 (1/2)

◈ 카바도 ( 이스라엘 ) - 웹 스캐너 (ScanDo), 웹 방화벽 (InterDo) 통합형 제품 보유 - 자동정책설정 (Autopolicy) 기능 제공◈ 생텀 : 웹 스캐너 (AppScan) 에서 진단한 취약성을 바로 웹

어플리케이션 방화벽 (App-Shield) 로 업로드◈ 넷컨티넘 - NC-1000 ( 웹 어플리케이션 방화벽 ) - ASIC 기반이며 타 어플리케이션 스캐너와 연동 가능◈ 테로스 : ASIC 기반의 SSL 가속 기능 제공◈ 체크포인트 - Connectra, 웹 인텔리전트 , SSL 네트워트 익스텐더 출시◈ F5 네트웍스 : Traffic Shield ( 웹 보안 방화벽 ) 은 SSL 가속기를

내장한 하드웨어 일체형

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

11

웹어플리케이션 보안 제품 현황 (2/2)

◈ 임퍼바 - SecureSphere: 호스트 IPS 제품을 포함한 웹 어플리케이션

게이트웨이◈ 패닉시큐리티 ( 국내 ) - 웹 취약점 스캐너 PS 스캔 W3B 자체 개발◈ 듀얼시큐리티 ( 국내 ) - ASROC 개발 - OWASP 에서 규정한 10 대 취약점을 기반으로 해커의 공격에 대한 룰

생성으로 웹 해킹을 차단

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

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

검증

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

13

10 가지 웹어플리케이션 보안 취약점 (2/10)▣ 취약한 접근 통제

◈ 인증되지 않은 사용자가 시스템에 접근하여 권한 없는 기능을 수행◈ 접근 통제 설계가 취약하여 공격자가 SQL-Injection 등의 방법을

사용하여 다른 사람의 계정으로 들어갈 수 있음

◈ 대처 방안 :- 어플리케이션의 접근통제 요구사항을 반영하여 보안정책을 명시

- 접근 통제 메커니즘의 우회 가능성 검증

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

14

10 가지 웹어플리케이션 보안 취약점 (3/10)▣ 취약한 인증 및 세션 관리

◈ 강력한 인증 메커니즘도 취약한 사용자의 credential 관리로 침해 받을 수 있음 (ex. 패스워드 분실 )

◈ 세션 토큰이 적절히 보호되지 않으면 공격자가 현재 활성화된 사용자의 세션을 가로채 다른 사용자를 가장하여 접속 가능

◈ 대처 방안 :

- 강력한 패스워드 사용 - 전송중의 credential 보호 - 세션 아이디 보안

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

15

10 가지 웹어플리케이션 보안 취약점 (4/10)▣ Cross-Site Scripting 취약점

◈ 웹어플리케이션의 특성상 사용자의 브라우저에서 실행될 수 있는 악성코드 전달가능

◈ 대처 방안 :

- 어플리케이션 차원에서 HTTP 헤더 , 쿠키 , 쿼리 스트링 , 폼 필드 , 히든 필드 등의 모든 인자들에 대해 허용된 유형의 데이터만을 받아들이도록 한다 .

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

16

10 가지 웹어플리케이션 보안 취약점 (5/10)▣ 버퍼 오버플로우

◈ 웹 어플리케이션의 실행 가능한 스택을 덮어쓰기 위해 사용됨◈ 웹 어플리케이션에 주의깊게 조작한 입력 값을 보내 웹

어플리케이션이 임의의 코드를 수행하도록 함

◈ 대처 방안 :- 해당 제품의 최신 패치 적용

- 자체 제작한 어플리케이션의 경우 HTTP 요청을 통해 입력 받아들이는 코드 검토

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

17

10 가지 웹어플리케이션 보안 취약점 (6/10)▣ 삽입 (Command Injection) 취약점

◈ 취약한 웹 어플리케이션을 통해 악성 코드를 전송하여 시스템 콜을 통한 OS 호출 , 쉘 명령어를 통한 외부 프로그램 사용 , SQL 구문을 통한 백엔드 데이터베이스 호출 등을 수행

SQL-Injection 의 예 : SELECT Count (*) FROM Users WHERE UserName=‘’ Or 1=1 -–’ AND

Password=‘’

◈ 대처 방안 :- 가능한 한 외부 인터프리터 사용하지 않는다 .

- 백엔드 데이터베이스 호출할 경우 , 입력 값을 주의 깊게 검증

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

18

10 가지 웹어플리케이션 보안 취약점 (7/10)▣ 부적절한 에러 처리

◈ 부적절한 에러 처리로 stack trace, 데이터베이스 덤프나 에러 코드를 사용자가 볼 수 있도록 자세한 에러 메시지 반환

◈ 대처 방안 :- 해당 사이트가 예상 가능한 모든 에러를 적절히 다루도록 보장

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

19

10 가지 웹어플리케이션 보안 취약점 (8/10)▣ 암호의 안전하지 않은 사용

◈ 중요 데이터를 암호화하지 않거나 , 키를 안전하지 않은 장소에 보관하는 등 암호를 적절히 사용하지 않는 경우

◈ 대처 방안 :- 취약점이 없는 암호 라이브러리 사용

- 사용자 인증정보 , 패스워드 등은 안전하게 저장되도록 함

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

20

10 가지 웹어플리케이션 보안 취약점 (9/10)▣ Denial of Service

◈ 웹 어플리케이션은 공격과 정상적인 트래픽 사이의 차이를 구분하기 어려워 DoS 공격에 취약할 가능성이 높음

◈ 대처 방안 :- 완벽하게 방어하는 방법은 없음- 모든 사용자에게 제한된 자원만을 할당

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

21

10 가지 웹어플리케이션 보안 취약점 (10/10)▣ 부적절한 환경 설정

◈ 취약점을 패치하지 않거나 적절하지 않은 파일 권한 설정 , 디폴트 패스워드를 사용하는 계정을 남겨두는 등의 부적절한 환경 설정은 심각한 위험을 줄 수 있음

◈ 대처 방안 :- 보안 강화 가이드라인을 만들고 준수

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

22

21C IT Global Leader

웹서비스 보안------------------------------------------------------------------------

1. 웹서비스 개요2. 웹서비스 구성 예3. 웹서비스 보안4. XML 전자서명5. XML 암호6. WS-Security7. XKMS8. XACML9. SAML10. 결론

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

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

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

24

웹서비스 구성 예

InternetWebApp

WebApp

WebApp

Web service

server

Company B

Client

Fire

wall

WebApp

WebApp

WebApp

Web service

serverCompany A

Firewall

Transport

Transport

Response

Request

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

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)

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

26

XML 전자서명 (1/2)

▣ 전자문서 혹은 메시지에 대한 인증 , 무결성 , 부인봉쇄 서비스 제공

◈ 전자서명된 결과가 XML 형태로 XML 및 웹서비스 환경에 접목이 용이◈ XML 에 대한 부분서명 지원◈ Remote 에 있는 대상에 대한 전자서명 가능◈ 여러 개의 문서에 대한 서명을 하나의 XML 전자서명으로 처리 가능

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

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 전자서명된 메시지의 예

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

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>

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

29

WS-Security (SOAP Message Security) (1/2)

▣ SOAP 메시지에 대한 정보보호 제공

◈ 메시지 수준에서의 무결성과 기밀성을 구현하기 위한 SOAP extension 의 표준 집합

◈ 제공되는 주요 메커니즘 : - security token 을 메시지의 일부로 전송하는 기능- 메시지 무결성 , 인증 , 부인봉쇄- 메시지 기밀성

◈ Multi-hop 을 거치는 SOAP Message 의 안전한 end-to-end 전송 가능

◈ SOAP 메시지 일부분에 대한 전자서명이나 암호화 가능◈ 메시지 전달 경로상의 intermediary 가 추가로 전자서명이나 암호화

가능◈ Timestamp 지원으로 메시지 중복 송수신 여부 판단 가능

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

30

WS-Security (SOAP Message Security) (2/2)

▣ 보호처리된 SOAP 메시지의 구조

SOAP-EnvelopeSOAP-Header

SOAP-Body

TimestampSecurity Header

Security Token

Cipher Data

Signature

Cipher Data

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

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)- 키 쌍 소유자에 의한 키 쌍의 등록 , 관리를 지원하는 프로토콜- 키복구 , 재발급 (갱신 ) 또는 키취소 기능 지원

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

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)

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

33

XACML (eXtensible Access Control Markup Language) (1/2)

▣ 공유된 자원 및 시스템에 대한 사용자의 접근 권한을 명시하는 접근제어 정책에 대한 표준화된 언어의 제공을 목적으로 하는 XML 기반의 접근제어 언어

◈ 보안정책에 대한 표준언어 제공 - 정책의 작성 , 검토 , 시험 및 승인 등의 보안정책의 관리가 수월◈ 기존의 접근제어 시스템에도 쉽게 적용 가능◈ XML 의 범용성 , 확장성 상속◈ 정책언어와 요청 / 응답언어로 구성

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

34

XACML (eXtensible Access Control Markup Language) (2/2)

▣ XACML 서비스 모델

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

35

SAML (Security Assertion Markup Language) (1/2)

▣ 이질적인 웹 접근 관리와 보안 제품간에 인증과 인가 정보를 교환하기 위해 제안된 XML 기반 언어

◈ 인증과 인가 서비스를 제공하는 다양한 벤더 플랫폼 간의 상호 운용성을 제공

◈ 인증과 인가 정보를 교환하기 위한 XML 기반의 프레임워크◈ 시스템들에 의해 생성되는 정보를 전달하기 위한 일반적인 공통언어

정의◈ SSO (Single Sign On) 에 적용 가능◈ Assertion Protocol, Binding, Profile 이 정의되어 있음

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

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)

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

37

결론

◈ 기존 네트워크 보안 기술만으로는 웹어플리케이션에 대한 공격을 완전히 막기 힘들며 이를 위한 웹어플리케이션 보안 기술 적용 필요

◈ 웹어플리케이션 보안 솔루션은 기존 보안 솔루션과 보완적 관계◈ 웹어플리케이션에 대한 공격이 증가 추세이므로 향후 웹어플리케이션

보안 솔루션에 대한 수요가 증가하리라고 예상됨

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

38

질의 응답