새로운 웹 표준 HTML5 도입 속도가 한층 빨라지고 있다. 동영상 재생, 그래픽 프로그램 구동 등의 기능 제약으로 비 표준 플러그인을 사용해야 했고 이를 통해 많은 불편함과 보안 문제점이 발생했던 기존 HTML과는 달리, 지난 2012년 월드와이드웹컨소시엄(W3C)에서 새롭게 발표된 HTML5는 플러그인을 요구하지 않는 ‘논-플러그인’ 방식으로 브라우저 자체적으로 다양한 웹 서비스를 제공해 편리함을 한층 높였다는 점에서 좋은 평가를 받고 있다. 오디오/비디오를 포함한 확장된 태그들을 지원하는 것은 물론 웹 스토리지, CORS(교차출처 자원공유), 웹 소켓 등의 신규 기능을 지원하는 것이 대표적인 개선점으로 꼽힌다.

 

하지만, 한편에서는 HTML5의 일부 신규 기능이 보안 위협에 악용될 수 있다는 지적이 제기되고 있다. 새롭게 추가된 기술들을 통해 웹 개발자, 사용자, 웹사이트 단말, 웹 애플리케이션 등 웹과 관련된 모든 요소가 신규 보안 위협에 취약해질 수 있다는 것이다. 이에, HTML5의 주요 신규 기능을 노리는 주요 보안 위협을 알아보고 안전한 HTML5 웹 구축을 위한 대응 방안을 논의하고자 한다.

 1. HTML5의 신규 속성 및 태그를 이용한 필터 우회

우선적으로 눈여겨볼 것은 HTML5의 멀티미디어 자체 지원 기능을 노린 공격 가능성이다. HTML5는 비디오, 오디오 콘텐츠 재생 등 그 동안 플래시, 액티브 X 등 비 표준 플러그인을 통해 실행되었던 기능을 웹 브라우저에서 자체적으로 지원한다. 즉, audio, video, source, embed와 같은 신규 태그를 이용해 플러그인 없이도 멀티미디어를 재생할 수 있으며, 각 태그에 대한 세부 기능도 onfocus, autofocus를 통해 설정이 가능하다. 하지만, 이에 따라 공격자들이 악용할 수 있는 공격 지점이 늘어나고 기존 XSS(크로스 사이트 스크립팅) 블랙리스트 기반 필터를 우회하는 공격이 발생할 가능성도 높아지게 된 것이 사실이다.

웹페이지에 악성 스크립트를 삽입해 정보를 탈취하는 XXS 공격에 유연하게 대응하기 위해서는 사용자로부터 입력 받는 모든 값을 서버에서 검증 후 입력 받도록 하는 등 서버 단에서의 대응이 요구된다. 또한, 해당 공격이 HTML5에 새롭게 추가된 속성 및 태그를 악용하는 만큼, 필터 되지 않은 조건들을 업데이트하고 알려지지 않은 공격 패턴을 빠르게 탐지할 수 있는 지속적인 모니터링이 뒷받침되어야 한다.

2. 웹 스토리지 정보탈취

또한, HTML5의 웹 스토리지 기능을 노리는 위협도 주목해야 한다. ‘웹 스토리지’는 기존의 쿠키 기능을 개선하여 키-값 형태로 웹사이트와 관련된 데이터를 사용자의 컴퓨터에 자바 스크립트를 이용해 접근 및 통제할 수 있게 지원하는 API(응용프로그램 인터페이스)이다. ‘웹 스토리지’는 데이터 저장 방법에 따라 ▷브라우저나 탭을 종료할 경우 데이터가 삭제되는 ‘세션 스토리지’와 ▷브라우저를 종료해도 데이터가 삭제되지 않는 ‘로컬 스토리지’로 구분될 수 있다. 저장할 수 있는 데이터의 용량은 브라우저의 종류에 따라 다르나 일반적으로 도메인당 5MB 정도의 크기를 사용할 수 있다.

문제는 웹에서 이용한 정보가 저장된 공간에 대한 접근 및 제어는 자바스크립트를 통해 이루어지는 만큼, 사용자의 브라우저에 평문으로 저장된 주요 정보가 XSS 등 스크립트 기반 공격을 통해 유출될 수 있다는 데서 발생한다. 웹 스토리지 정보탈취에 유연하게 대응하기 위해서는 어떠한 보안 조치가 필요할까.

일반적으로 공격 대상 사이트의 취약점을 이용해 XXS 공격이 들어오는 만큼, 웹 방화벽, 시큐어 코딩 등 XXS에 대한 대응 조치가 기본적으로 마련해야 할 것으로 보인다. 더불어, 웹 애플리케이션 개발 과정에서도 평문 상태로 데이터를 저장하는 로컬 스토리지에는 민감 정보를 저장하지 않거나 암호화하여 저장하는 등 정보 관리에 유의할 필요가 있다.

3. CORS를 악용한 사용자 개인정보 탈취

더불어, 교차출처 자원공유(CORS, Cross Origin Resource Sharing) 접근제어 설정을 악용하는 공격 시도에도 주의를 기울여야 한다. CORS는 ‘Access-Control-Allow-Origin: domain’ 서버 설정을 통해 웹 페이지 상에서 자바 스크립트를 이용하여 XHR(XMLHttpRequest)를 다른 도메인으로 발생시킬 수 있게 함으로써, 서로 다른 도메인(사이트) 사이에서 자원을 쉽게 공유하는 것을 가능하게 한다. 즉, 같은 호스트, 프로토콜, 포트로부터 요청이 발생한 경우에만 타 도메인에 접근이 가능하게 하는 동일 출처 정책(SOP, Same Origin Policy)의 제약에서 벗어나 보다 자유로운 공유가 이루어지게 된다.

그러나, 이와 같은 이점을 누리기에 앞서, 타 도메인 접근 시 사용자에게 허가 요청을 받지 않는 만큼, 사용자의 세션을 오용한 접근 제어 및 허가되지 않은 내부 네트워크에 대한 접근 가능성이 있다는 점도 반드시 염두에 둘 필요가 있다.

CORS를 악용한 공격을 빠르게 탐지, 차단하기 위해서는 어떠한 노력이 필요할까? 공격 대상 사이트의 파일 웹로드 취약점을 이용해 들어오는 공격이 빈번히 발생하는 만큼, 우선적으로 웹 서버의 파일 업로드 취약점에 집중해 대응 조치를 마련해야 한다. 더불어, 접근을 허용하는 발송처 및 헤더 값 등 서버 및 접근 설정에도 주의를 기울여야 한다. 명확하게 신뢰할 수 있는 사이트에 한해 접근 설정을 허용하며, 공격자가 Origin 헤더를 조작하여 요청을 발생시킬 수 있는 가능성이 있는 만큼, 해당 헤더에만 의존한 접근 제어가 이뤄지지 않게 조치를 취해야 한다.

지금까지 HTML5의 주요 신규 기능을 노리는 보안 위협과 대응 방안에 대해 논의해 보았다. 플래시 개발자 어도비조차 최근 플래시의 이름을 ‘애니메이트 CC’로 변경하고 2016년까지 HTML5 기반 디자인툴 활성화에 나설 것이라 밝히는 등 차세대 웹 기술인 HTML5의 장점을 활용하고자 하는 움직임이 전 세계적으로 한층 빨라지고 있다. 하지만 HTML5 적용에 앞서 반드시 염두에 두어야 할 사실이 있다. HTML5의 기술적 진화와 더불어 이에 따른 취약점을 노리는 공격도 점점 증가하고 있다는 점이다. 신규 보안 위협에 대한 대응책을 마련함으로써 차세대 웹 표준 HTML5의 장점을 최대한으로 누리길 바란다.

저작권자 © 디지털투데이 (DigitalToday) 무단전재 및 재배포 금지