보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

HTML5 보안 취약점

2015.12.08

21,930

 

 

 

1. HTML5 신규 기능


1) 요약
HTML5는 웹 문서를 제작하기 위해 사용되는 프로그래밍 언어인 HTML의 최신규격을 말한다. 기존의 HTML에서는 브라우저 자체 기능만으로 동영상 재생과 그래픽 관련 프로그램 등의 기능에 대한 많은 제약이 있었다. 이를 해결하기 위해 다양한 비 표준 플러그인(Flash, ActiveX, silverlight 등)을 사용하여야 했다.
HTML5는 브라우저 자체적으로 다양한 기능을 구현할 필요성에 의해서 제안되었다. Audio/video를 포함한 확장된 태그들을 지원하고 있으며, CORS, Web Storage, Web Socket, Geolocation, File API 등이 신규 기능의 대표적인 예이다. Chrome, Safari, FireFox, IE 등 주요 웹 브라우저들도 이러한 기능 구현을 위해 지속적인 업데이트를 수행 중이다.
그러나 새롭게 추가된 기술들을 통해 새로운 보안 위협이 발생할 수 있으며, 이는 지금의 웹 개발자, 사용자 , 웹사이트 단말, 웹 애플리케이션 등 웹과 관련된 모든 요소가 신규 보안 위협에 취약할 수 있음을 의미한다.


2) 신규요소

 주요기능

설명 

신규 속성/태그​​

 audio, video, source, canvas, embed와 같은 신규 태그와 각 태그에 대한 세부 기능을 설정할 수 있는 onfocus, autofocus 등의 속성들이 추가되었다.

 Web Storage

 Web Storage는. 도메인당 약 5MB 크기의 저장 공간을 지원한다. 기존의 쿠키 기능을 개선하여 ‘키-값’ 형태로 데이터를 저장하고 관리할 수 있게 해주는 API이다.

 CORS(Cross Origin Resource Sharing)

 CORS는 브라우저가 XHR 을 이용하여 Cross-Origin 요청을 가능하게 한다. 해당 기술은 서로 다른 도메인(사이트) 간 자원을 공유할 수 있게 해주며, 특정 조건들이 만족할 경우 동일출처정책(SOP : Same Origin Policy)에 의한 제한을 완화하는 데 사용될 수 있다.

 Web Socket

 HTTP는 프로토콜의 특성상 브라우저가 먼저 요청을 하면, 웹서버가 이를 처리하여 응답한다. 하지만 Web Socket은 웹 서버와 User Agent 간 지속해서 연결을 기반으로 하는 전이중 통신을 가능하게 해준다.

< HTML5 신규 기능 요약 >


2. HTML5 보안위협


1) HTML5 의  신규 속성 및 태그를 이용한 필터 우회
이전 HTML은 브라우저에서 비디오나 오디오를 재생하기 위해서는, 이러한 영상을 처리해주는 플러그인을 설치해야 했지만, HTML5의 신규 태그 및 속성들이 이러한 부분을 자체적으로 처리하는 것이 가능해졌다.

 

 

< HTML5 신규 태그 및 속성을 이용한 자바스크립트 실행 코드(예)>

 

 

 


 

 

2) Web Storage 정보탈취

Web storage는 세션스토리지와 로컬스토리지로 나뉜다. 웹사이트와 관련된 컨텐츠를 사용자의 컴퓨터에 저장하고 자바스크립트를 이용하여 접근 및 통제를 할 수 있다. 저장할 수 있는 데이터의 용량은 브라우저의 종류에 따라 다르나 일반적으로 도메인당 5MB 정도의 크기를 사용할 수 있다.

 

 세션스토리지 와 로컬스토리지 차이점

 Session Storage

 브라우저 혹은 탭을 종료할 경우 데이터가 삭제된다.

 Local Storage

 해당 영역에는 모든 텍스트 값을 저장할 수 있다. 사용자 혹은 웹 애플리케이션에 의해서 생성/삭제될 수 있으며, 브라우저를 종료해도 데이터들은 삭제되지 않는다.


< 세션 스토리지 와 로컬 스토리지 차이점>

 

 

 

 

 

3) CORS을 이용한 사용자 개인정보 탈취

최근에는 개발비용 및 시간 절약을 위하여 정보를 제공하는 사이트에서 컨텐츠 또는 데이터를 가져온 후 이를 재사용하여 서비스를 창출하는 사이트가 많이 개발되고 있다. 하지만 동일 출처 정책 (SOP: Same Origin Policy)에 의한 제한은 이러한 유형의 서비스 개발을 어렵게 만들었다. 웹 브라우저들이 보안을 위해 자바스크립트로 타 도메인에 접근하는 것을 못하도록 막아 놓은 제약조건이다. 즉 같은 호스트, 프로토콜, 포트로부터 요청이 발생한 경우에만 접근할 수 있다. 그러나 CORS는 웹 페이지 상에서 자바 스크립트를 이용하여 XHR(XMLHttpRequest)를 다른 도메인으로 발생시킬 수 있도록 해주는 기능을 가지고 있다. CORS를 이용하면 서로 다른 도메인 간(웹 서버) 자원 공유를 가능하게 해주며, 이는 서버 설정 중 ‘Access-Control-Allow-Origin : domain’을 통해 설정할 수 있다.

 

 

 

 

 

4) Web Socket 을 이용한 사설네트워크 정보수집
HTTP는 브라우저가 서버에게 요청하면 웹 서버에서 이를 처리하여 응답을 해주는 구조로 수행한다. 실시간으로 정보전달을 하는 채팅이나 주식시장에서는 네트워크 세션 형성/종료에 많은 오버헤드를 가져오기 때문에 애플리케이션 개발에 제한적이다. 이러한 문제점으로 한 번의 네트워크 세션 형성을 통해 실시간(양방향) 통신이 가능한 Web Socket을 제안되었다. 연결하려는 객체의 상태정보를 의미하는 값(Connecting, Open, Closed)을 가지고 있다. 최초 Web Socket 생성 시 해당 객체는 0(Connecting) 값으로 설정되어 있으며, 스캐닝 대상의 상태에 따라 1(Open) 또는2(Closed)로 값이 변화한다. Web Socket 객체 ReadyState 속성이 0인 상태가 일정시간 초과하여 지속하면 필터링 혹은 시스템이 다운된 상태이며 1(Open), 2(Closed)로 바뀐다면 시스템은 동작 중이지 않을 확률이 높다고 판단할 수 있다.

 

 

 원격시스템 포트 상태 및 필터링 유무

 0값 지속시간

 원격 시스템의 포트가 열려있는 경우(Open)

 100ms (0.1초 미만)

 원격 시스템의 포트가 닫혀있는 경우(Closed)

 ~1000ms (1초)

 패킷이 필터링 되었을 경우

 30000ms (30초 초과)


< Web Socket을 이용한 시스템 포트 오픈 여부 확인>

 

 

 

 

 

3. 안전한 HTML5 웹 구축을 위한 대응방안

HTML5 신규 명세에 따른 자바스크립트 속성 및 태그, Web Storage, CORS, WebSocket, 같은 새로운 기술 도입에 따른 보안 문제에 대한 대응방안을 고려해야 한다.

 

 주요기능

 대응방안 

 신규 속성/태그

 서버 측에서 XSS 취약점에 대해 대응을 한다면 공격을 완화할 수 있다. 또한, 해당 공격은 HTML5에서 새롭게 추가된 속성 및 태그를 사용하기 때문에 XSS 필터 되지 않은 조건들을 추가해주며 특정 패턴에 대한 지속적인 모니터링이 필요하다.

 Web Storage

 공격 대상 사이트의 XSS 취약점을 이용하는 것으로 시작된다. 때문에 XSS에 대한 대응조치(웹 방화벽 혹은 보안코딩 등)가 되어 있다면 공격을 완화할 수 있다. 그리고 웹 애플리케이션 개발자는 평문 상태로 데이터를 저장하는 Local Storage에 사용자의 민감한 정보를 저장하지 않도록 하거나 암호화를 적용해 저장하도록 구현함으로써 정보 관리에 유의하도록 한다.

 CORS(Cross Origin Resource Sharing)

 주로 공격 대상 사이트의 파일 업로드 취약점을 이용하는 것으로 시작된다. 이 때문에 웹 서버의 파일 업로드 취약점에 대응 조치를 한다면 공격을 완화할 수 있다. 그리고 서버는 접근을 허용하는 발송처에 대한 설정을 주의하고 Cross-Origin 요청을 모두 허용할 수 있는 “Access-Control-Allow-Origin” 헤더의 값에 “*” 와 같은 패턴은 사용하지 말아야 한다. 또한,  허용하는 도메인을 명확하게 신뢰할 수 있는 사이트에 대해서만 접근을 설정(Access-Control-Allow-Origin : 신뢰할 수 있는 사이트)해야 하며 공격자는 Origin 헤더를 조작하여 요청을 발생시킬 수 있으므로 해당 헤더에만 의존한 접근 제어는 피해야 한다.

 Web Socket

 공격 대상 사이트의 XSS 취약점을 이용하는 것으로 시작된다. 이 때문에 XSS 에 대한 대응조치(웹 방화벽 혹은 보안코딩 등)가 되어 있다면 공격을 완화할 수 있으며 암호화 및 사설 네트워크 접근을 차단해야 한다.

 

< HTML5 신규 기능별 대응방안 >

 


4. 맺음말

차세대 웹 기술인 HTML5 사용이 퍼지고 있다. IE의 보안 취약점으로 꼽히고 있는  Active X를 비롯해 Flash,Siverlight 등 동영상 재생과 그래픽 관련 프로그램을 설치하지 않고도 같은 기능을 구현할 수 있는 등의 장점으로 웹이 가진 기능에 대하여 경제적이고 현실적인 대안으로서 의미 있는 기술적 진화를 보여주고 있다. 하지만 다양해진 기술만큼 이에 따른 취약점을 이용한 공격들이 많아진다. 즉, 새로운 환경에 대해선 신규 보안위협에 대한 대응책 또한 필요하다는 것이다. HTML5는 사용하지 않아도, 브라우저가 HTML5를 지원하고 있으므로 공격코드를 HTML5로 하면 동작이 가능해지므로 개발자, 운영자뿐만 아니라 모두 HTML5의 보안 문제에 대비해야 할 것이다.

 

 

* 참고 문헌


인터넷 글로벌 경쟁력 강화를 위한 차세대 웹 표준(HTML5) 확산 추진계획 (미래창조과학부)
스크립트 기반 사이버 공격의 현재와 미래 (한국인터넷진흥원)
HTML5 신규 웹서비스 환경에서의 보안 이슈 (한국인터넷진흥원)