본문 바로가기
AhnLab 보안in

[ASEC리포트 10월호]IE8, 크롬, 파이어폭스3 브라우저 보안 기능

by 보안세상 2020. 4. 5.

2008.10.20

 

구글이 크롬(Chrome) 브라우저를 발표한 가운데, 마이크로소프트사도 Internet Explorer 8 베타버전을 공개함으로써 차세대 브라우저간 치열한 다툼이 시작되었다. 이번 달 ASEC 리포트 컬럼에서는 새로운 브라우저들 속에 내장된 보안 기능을 집중적으로 소개하고자 한다.

마이크로 소프트가 IE 8을 설계할 때 중점을 둔 공격방법은 사회공학(Social Engineering), 웹서버 취약점을 이용한 공격, 그리고 브라우저 취약점을 이용한 공격이다 . 여기서 사회공학은 주로 피싱(Phising)처럼 사용자를 속여 개인정보를 탈취하는 공격 방법이고, 웹서버 취약점은 크로스 사이트 스크립트(Cross Site Scripting)와 같이 웹서버의 취약점을 이용하여 개인정보를 유출하는 방법이며, 브라우저 취약점을 이용한 공격방법은 취약점을 이용하여 악성 코드를 사용자의 시스템에 설치하는 공격방법을 의미한다. 구글 역시 마이크로소프트사와 같은 부분에 초점을 맞추고 있으나 구글의 크롬은 악성코드 설치, 키로거 파일읽기 등 주로 브라우저 취약점을 이용한 공격방법에 좀더 초점을 맞추고 있다 . 파이어 폭스는 웹서버 취약점을 이용한 공격 방어에 초점을 맞추고 있다.

브라우저 취약점 보호

공격자가 브라우저의 취약점을 이용하여 악성코드를 실행하기 위해서는 실행될 악성코드가 브라우저의 메모리 상에 적재되어야 한다. 이것은 브라우저의 메모리를 변조하는 방법으로 가능하며 실제로 자바스크립트와 같은 스크립트 코드로 브라우저의 메모리를 쉽게 조작할 수 있는 방법이 공개되어 있다. 일단 브라우저의 메모리에 적재된 악성코드가 실행되면 공격자는 사용자의 권한을 획득하는 것이 가능하다.

Internet Explorer 8 에서는 DEP (Data Execution Prevention) 또는 NX(No Execution) 라고 불리는 기능으로 브라우저의 메모리 변조 공격을 막아준다. 이 기능은 임의의 코드가 메모리의 특정 영역에서 실행되는 것을 방지하는 기술로, Windows Server 2008이나 Vista 이후의 버전에서는 자동으로 설정이 되어 있다. IE8 이전의 브라우저들은 호환성 문제로 이 기능을 지원하지 않았으나, IE8 에서는 이러한 문제를 해결하고 해당 기능을 지원하게 되었다. 비스타(Vista)의 태스크 관리자나 Process Explorer를 사용하면 DEP 기능이 적용되었는지 확인 할 수 있다.

[그림 1] 프로세스 익스플로러를 통한 IE8에서 DEP 적용 확인



크롬(Chrome)은 샌드박스 모델을 구현하여 문제가 발생하면 쉽게 처음 상태로 초기화하여 메모리 변조 공격을 막는다. 이를 위해 크롬은 다음 [그림 2]와 같이 Rendering Engine과 Browser Kernel을 분리하여 설계하였다.

[그림 2] 크롬 아키텍쳐



위의 Browser Kernel과 Rendering Engine의 역할은 다음 [표 1]과 같다.

Rendering Engline Browser Kernel
HTML 분석 쿠키 데이터 베이스
CSS 분석 이력 데이터 베이스
Image 복호화 암호 데이터 베이스
자바스크립트 번역기 윈도우 관리
정규표현식 주소창 관리
레이아웃 안전 브라우징 블랙리스트
DOM 모델 네트워크 스택
렌더링 SSL/TLS
SVG 디스크 캐시
XML 분석 다운로드 매니저
XSLT 클립보드

[표 1] 크롬 아키텍쳐




피싱 방지 기능

Internet Explorer 8 에는 피싱을 막기 위해 스마트 필터라는 기능을 구현하였다. 이 필터는 IE7의 피싱필터의 기능을 발전시킨 것으로 성능과 휴리스틱 알고리즘에서 발전이 있다고 알려졌다. 피싱사이트로 알려진 사이트에 사용자가 접속하거나 의심스러운 사이트에 접속하면 IE8은 각각 [그림 3], [그림 4]와 같은 에러 메시지를 출력한다. 특히, [그림 4]에서 IE8은 사용자에게 사이트의 신뢰여부를 묻게 되는데, 수집된 정보는 마이크로소프트사로 전송된다.

[그림 4] IE8 스마트 필터 - 1



[그림 4] 스마트 필터 - 2



파이어폭스 3은 Site Identification Button을 제공하여 [그림 5]와 같이 피싱 공격으로부터 사용자를 보호한다. 이 버튼을 사용자가 클릭하면 [그림 6]과 같이 사이트가 제공하는 신원정보를 확인할 수 있다.

[그림 5] Site Identification Button



[그림 6] 사이트 신원정보



크롬(Chrome)은 [그림 7]과 같이 피싱 사이트에 대한 블랙 리스트의 정보를 사용하여 피싱 페이지를 구별하며, IE8과 마찬가지로 휴리스틱 알고리즘을 사용하여 의심스러운 URL을 구별할 수도 있다. [그림 7]에서 사용자는 "a.co.kr"란 URL을 사용했지만, 실제 접속은 a.com으로 접속했기 때문에 크롬 부라우저가 의심 URL로 확인한 결과이다. 이 결과는 구글로 전송하여 블랙리스트를 관리하는데 사용된다.

[그림 7] 크롬 피싱 방어



주소창 하일라이팅기능

이 기능은 브라우저가 URL 중의 도메인 이름을 분석하여 그 결과를 사용자에게 보여주고 피싱이나 기타 도메인 이름을 사용한 공격을 막기 위한 기술이다. 이 기술은 IE8 Beta에서 처음 구현된 기술로, 크롬에서도 기본적으로 해당 기능을 지원한다. 파이어폭스는 LocationBar라는 플러그인을 설치해야만 가능하다.

주소를 하일라이팅하는 기능은 기본적으로 세 브라우저 모두 가능하나, 구체적인 방법 면에 있어서는 약간의 차이를 나타낸다. 다음은 차례로 IE8과 FireFox3, 크롬에서 주소창이 하일라이팅된 모습을 보여준다.

[그림 8] IE8, 파이어폭스 3.0, 크롬 주소창 하일라이팅 기능



크로스 사이트(XSS) 공격 방어 기능

크로스 사이트 공격은 웹서버 취약점을 이용한 공격 방법 중 그 빈도가 가장 높은 공격으로, 모든 브라우저에서 해당 공격을 막기 위한 기술이 구현되어있다.

Internet Explorer 8에서는 XSS Filter를 구현하여 크로스 사이트 공격을 방어한다. IE8은 모든 브라우저를 통한 모든 응답과 요청을 관찰한다. 만약, XSS 필터가 XSS로 보이는 요청이 관찰될 경우, 공격으로 판단하고 [그림 9]와 같이 사용자에게 경고 메시지를 내보낸다.

[그림 9] XSS 필터 경고창 표시



파이어폭스 3 는 W3C가 제안한 XHR(XMLHTTPRequest) 기술을 이용하여 쿠키나 HTTP Header 데이터와 같은 개인정보가 다른 사이트로 전송되는 것을 차단하는 방식으로 크로스 사이트 공격을 차단한다. 이 기술은 IE8의 XSS filter와 비슷한 역할을 수행한다.

크롬(Chrome)은 앞서 밝혀듯이 크롬 아키텍쳐의 주요 초점이 브라우저 기반 취약점 공격에 맞추어져 있다. XSS 공격을 방어하기 위한 특별한 설명은 아키텍쳐 소개서에 명시되어 있지 않지만 구글과 파이어폭스의 관계를 보았을 때 아마 파이어폭스 3와 비슷한 구조를 가지고 있을 것으로 추정된다.

악성 코드 보안 기능

최근의 해킹동향은 공격자가 웹서버를 해킹한 후, 악성 코드 배포를 위한 페이지를 웹서버에 삽입하는 것이다. 만약, 보안 취약점의 패치를 하지 않은 사용자가 해당 웹서버에 접속할 경우, 공격자가 삽입한 코드가 실행되어 사용자의 시스템 권한을 획득할 수 있다. 따라서, 각 브라우저는 이러한 코드가 사용자의 시스템에서 실행되는 것을 막기 위해 의심 코드가 삽입된 웹페이지의 접근을 차단하고 있다. [그림 11]~[그림 13]는 다음 [그림 10]과 같은 코드를 포함한 웹페이지를 각 브라우저에 요청한 결과이다.

[그림 10] 테스트 코드



Internet Explorer 8 은 크로스사이트 공격과 마찬가지로 스마트 필터를 이용하여 사용자가 악성코드를 삽입한 페이지에 접근하는 것을 [그림 3]과 같이 차단할 것이라고 하지만, 필자가 테스트한 [그림 10]의 코드가 삽입되어 있는 페이지를 테스트한 결과 [그림 11]과 같이 IE8에서 해당 페이지를 차단하지 못한 채 그대로 브라우저 상에 로드되었다.

[그림 11] IE8 탐지 결과



파이어폭스 3 에서는 해당 페이지를 [그림 12]와 같이 차단하였으며 해당 페이지를 차단한 이유와 현재 상태를 [그림 13]과 같이 사용자가 직접 확인할 수 있다. 특이할 만한 사항은 해당 페이지의 데이터베이스를 구글이 제공했다는 것이다. 따라서 크롬 역시 같은 데이터를 사용할 것이라고 추측할 수 있다.

[그림 12] 악성 사이트 차단



[그림 13] 현재 페이지 상태 확인



크롬(Chrome)도 [그림 14]와 같이 차단 화면을 볼 수 있다.

[그림 14] 크롬이 차단한 페이지



정리

지금까지 차세대 브라우저가 제공하는 보안 기술을 간단하게 살펴보았다. 브라우저 보안은 크게 1)사회공학, 2)웹서버, 3)브라우저 취약점에 대한 보호로 분류될 수 있다. 세 브라우저 모두 방어하고자 하는 공격 방법은 대부분 같았지만 설계의 지향점은 조금씩 차이를 보였다. 따라서, 사용자는 브라우저를 선택하기 전 위협 요인을 정확히 인지하고 그에 맞는 브라우저를 선택해야 할 것이다.