본문 바로가기
IT Tech/Application

HTML5 개발표준 및 보안취약점 대응방안은?

by _><- 2015. 7. 10.
반응형

출처 : HTML5 웹 애플리케이션 개발 지침 : http://rra.go.kr/board/kcs/view.jsp?nb_seq=1502&cpage=1&nb_type=6&searchCon=nb_name&searchTxt=HTML5&sortOrder=

 

웹 애플리케이션 공격 유형 및 대응 방안

 

공격 유형

설명

대응 방안

크로스 사이트 스크립팅(XSS)

사이트의 악의적인 스크립트가 피해자의 브라우저에서 실행되면서 정보를 유출시키는 공격으로, 공격자는 악의적인 링크를 만들어 사용자가 방문하도록 유도한 후, 이를 통해 사용자의 클라이언트에서 악성스크립트가 수행되게 한다.

HTML 태그를 분석해 안전한 태그 및 속성 값 만으로 HTML을 재구성하고 신뢰할 수 없는 스크립트 실행을 차단한다.

시큐어코딩가이드 3, 크로스사이트스크립트[19] 참고

크로스사이트 요청(CSRF) 변조

웹 애플리케이션이 사용자 인증을 요청할 때 매번 HTTP 요청 시 마다 암호를 입력하도록 하지 않고 세션 쿠키나 HTTP 인증 헤더 등을 이용해 다수의 HTTP 요청에서 이를 사용한다. CSRF는 이점을 이용하며, 사용자가 신뢰할 수 있는 서비스에 로그인 되어 있다가 악성 코드를 담고있는 다른 사이트를 방문할 때 공격한다.

폼 데이터를 전송할 때 해당 입력 값의 인코딩 방식 및 유효값 여부를 사전에 검사하고 신뢰할 수 있는 데이터만 처리한다.

시큐어코딩가이드 3, 크로스사이트 요청위조[19] 참고

JSON 하이재킹

JSON 하이재킹은 CSRF를 기반으로 한 공격 방법이며, 일부 브라우저의 특성을 이용하여, 악성 사이트에서 JSON 포맷으로 된 기밀 데이터를 가로채어 공격한다.

클라이언트 코드의 무결성을 검증할 수 있는 코드를 별도로 구현한다(MD5 기반 해시값을 사전에 서버로 보내 무결성을 검증하는 방법도 사용한다).

OWASP AJAX Security Guidelines[20] 참고

서비스 거부(DoS, Denial of Service) 공격

특정 웹사이트에 반복적으로 리소스를 요구하는 제3의 자바스크립트가 사용자의 브라우저에서 수행되어 특정 사이트를 반복적으로 응답 요청(공격)한다.

웹 애플리케이션 특성상 경로를 허용하는 경우에는 ‘../’와 같은 상대 경로를 차단하고 절대 경로만 허용하도록 해야 한다.

사전에 허용된 경로가 아닌 곳으로 접근하는 것은 서버에서 차단해야 한다.

KISA DDoS 공격대응가이드[21] 참고

API Mashup

통한 공격

비공식 외부 API를 통한 매쉬업 애플리케이션을 개발하여 배포할 경우 사용자와 매쉬업 애플리케이션 모두 보안 취약점을 갖게 되며, 매쉬업 애플리케이션에 악성 코드를 삽입하여 XSS, CSRF, DDoS 등을 포함하여 공격한다.

인가된 API key 값을 사전에 확인해야 하며, API 취약점 정보를 모니터링하고, 기술적 문제점을 보완해야 한다.

OpenAjax Alliance, Ajax and Mashup Security[22] 참고

 

HTML5 보안

앱 애플리케이션 개발 시 기존 HTML4.01 기반의 앱 애플리케이션 보안 대응 방안 이외에도

HTML5 신규 명세에 따른 다양한 구성 요소의 DOM 조합이나 CORS(cross-origin resource sharing),

localStorage, WebSocket, Web Worker와 같은 새로운 기술 도입에 따른 보안 문제에 대한 대응 방안을

같이 고려해야 한다.

 HTML5 보안 취약점

취약 요소

공격 방법

대응 방안

CORS, CSRF 공격

서로 다른 도메인간 데이터를 주고받을 수 있는 CORS의 부적절한 설정으로 인해 비 인가된 네트워크의 콘텐츠에 접근하도록 유도한다.

Access-Control-Allow-Origin 헤더의 값에 Asterisk(*) 를 사용하지 말고 허용하는 도메인을 명확하게 지정해야 하며, 공격자는 Origin 헤더를 조작하여 요청을 발생 시킬 수 있기 때문에 해당 헤더에만 의존한 접근 제어는 피해야 한다.

HTML5 Top 10 Attacks, A1[23] 참고

클릭재킹과

피싱공격

(ClickJacking &

Phishing by mixing
layers and iframe)

사용자의 정상적인 인터렉션을 이용, 인라인 프레임(iframe)에 숨어 있는 더미를 통해 클릭을 가로채기하거나 다른 페이지로 접속 등 비정상적인 동작을 유도

서버측에서 X-Frame-Options의 적절한 설정값을 지정하거나 CORS등을 이용한 제3자의 스크립트 실행을 허용하지 않도록 한다.

HTML5 Top 10 Attacks, A2[23] 참고

SQL 인젝션을 통한

웹스토리지 공격

클라이언트 SQL 인젝션 공격 등을 통해 WebStorage에 저장된 주요 정보 탈취할 수 있다.

가능한 CORS를 허용하지 않는 정책을 유지한다.

HTML5 Top 10 Attacks, A4, A5[23] 참고

웹스토리지와 글로벌 변수에서 정보 추출

사용자가 로컬 스토리지에 저장되어 있는 데이터의 접근 여부를 확인 하거나 제어할 수 없으며, CORS등을 통해 변조된 자바스크립트만 실행 가능하면 로컬 스토리지에 저장되어 있는 데이터에 대한 접근 및 조작이 가능하다.

세션 구분자를 쿠키에 보관하거나, 로컬 스토리지에는 가급적 사용자의 민감한 정보들을 보관하지 말고 서버 측에 보관할 수 있도록 구현한다.

HTML5 Top 10 Attacks, A4[23] 참고

 

HTML5 태그 악용

media, target, autofocus HTML5 신규 속성 등을 악용하여 XSS, CSRF등 기존 웹 공격의 범위를 확장할 수 있다.

새롭게 추가된 속성 및 태그를 이용한 패턴에 대한 지속적인 모니터링 및 필터링 목록 작성이 필요하다.

HTML5 Top 10 Attacks, A3[23] 참고

HTML5DOM

호출에 의한

XSS 및 리다이렉트

여러 HTML5 태그와 속성이 DOM 호출에 의해 제어되는 것을 이용해 다른 공격의 진입점을 만들기 위한 외부 페이지 요청을 수행한다.

기존 사용되었던 속성과 태그의 블랙리스트 필터링 목록의 보강이 필요하다.

HTML5 Top 10 Attacks, A7[23] 참고

DOM 인젝션과
하이재킹

HTML5 태그와 속성이 광범위하게 DOM을 동적으로 사용하는 것을 이용하여 XHR호출을 통해 DOM을 조작하여 데이터 추출, 변수 조작, 우회 정보 열기 같은 기능을 수행하도록 한다.

기존 사용되었던 속성과 태그 중 블랙리스트 필터링 목록의 보강이 필요하며, 자동 점검 도구나 서비스를 통한 정기적인 점검이 필요하다.

HTML5 Top 10 Attacks, A7[23] 참고

클라이언트 자바스크립트 기능 악용

(Abusing thick client features)

HTML5 UI 기능을 수행하기 위한 자바스크립트를 이용하여 데이터 추출, 변수 조작, 우회 정보 열기 같은 기능을 수행하도록 한다.

중요한 비즈니스 로직을 자바스크립트에 구현해두지 않으며, 자바스크립트에 대한 무결성 검증이나 난독화하여 대응

HTML5 Top 10 Attacks, A10[23] 참고

WebSocket

이용한 공격

사용자에게 허가 받지 않고 WebSocket 을 이용한 Cross-Domain 요청 및 연결을 수행할 수 있다.

 

서버 측에서 메시지 암호화 및 XSS 취약점을 차단해야 하며, 사설 네트워크 접근을 차단해야 한다.

HTML5 Top 10 Attacks, A9[23] 참고

Web Worker

기능을 악용

메인 페이지를 처리하는 쓰레드에 독립적이며 백그라운드 형태로 실행된다는 웹 워커의 특징은 DDoS 공격 같은 다양한 방식으로 악용될 수 있다

Web Worker를 사용하는 동안에는 가능한 CORS를 허용하지 않는 정책을 유지한다.

HTML5 Top 10 Attacks, A6[23] 참고

 

 


HTML5 Top Attacks :
 https://media.blackhat.com/bh-eu-12/shah/bh-eu-12-Shah_HTML5_Top_10-WP.pdf


A1 - CORS Attacks & CSRF
A2 - ClickJacking, CORJacking and UI exploits
A3 - XSS with HTML5 tags, attributes and events
A4 - Web Storage and DOM information extraction
A5 - SQLi & Blind Enumeration
A6 - Web Messaging and Web Workers injections
A7 - DOM based XSS with HTML5 & Messaging
A8 - Third party/Offline HTML Widgets and Gadgets
A9 - Web Sockets and Attacks
A10 - Protocol/Schema/APIs attacks with HTML5

  


HTML5 기반의 액티브X 대체 지침
:
http://rra.go.kr/board/kcs/view.jsp?nb_seq=1391&cpage=1&nb_type=6&searchCon=nb_name&searchTxt=HTML5&sortOrder=

 

 

반응형

'IT Tech > Application' 카테고리의 다른 글

Cloaking 기능  (0) 2015.10.07
[용어] SSL  (0) 2015.10.04
Apache Structs 취약점이란?  (0) 2015.07.11
HTML5의 트렌드는?  (0) 2015.07.10
HTTP 상태 코드  (0) 2015.04.23