책과 논문

Attacks on WebView in the Android System

B612 2023. 9. 9. 14:39

논문을 읽고, 요약 번역한 글입니다.

잘못 번역 및 이해한 부분이 있을 수 있습니다.

(아직 미완인 글입니다)

 

author = {Luo, Tongbo and Hao, Hao and Du, Wenliang and Wang, Yifei and Yin, Heng},
year = {2011},
isbn = {9781450306720}

 

ABSTRACT

웹뷰는 Android와 iOS 플랫폼에서 스마트폰 등에 브라우저를 삽입할 수 있게 하는 필수적 구성요소이다.

 

1. INTRODUCTION

iOS와 Android에는 많은 앱들이 존재하고, 대다수는 웹을 기반으로 한다. 앱은 표준 HTTP 프로토콜을 이용해 웹 서버에서 컨텐츠를 가져오고, 보여주며 사용자들이 웹 서버와 상호작용 하도록 한다.

브라우저가 동작하는 것처럼 보이지만, 실제로는 상당한 차이점이 존재한다. 브라우저는 일반적이게 디자인 되었고, 웹 어플리케이션들과 독립적이다. 하지만 대부분의 웹 어플리케이션들은 맞춤화 되어있기 때문에 해당 어플리케이션에 특화된 기능을 구현할 수 있다.

예를 들어, Facebook Mobile은 컨텐츠를 보고, 서버와 상호작용 하기 등을 페이스북의 웹 인터페이스에 비해 더 쉽고 나은 방법으로 제공하기 위해 특별히 개발되었다. 이러한 커스텀된 '브라우저'들로부터 얻은 경험 때문에 대부분의 유저들은 실제 브라우저보다 모바일 기기에서 사용하는 것을 더 선호한다. 유명한 웹 어플리케이션들은 자체적으로 또는 제 3자에 의해 개발된 전용 앱을 가지고 있다.

 

앱들이 특별한 웹 어플리케이션을 커스텀 할 수 있도록 하는 기술은 WebView라 불린다.

WebView 기술은 브라우저의 기본 기능 (ex. 페이지 렌더링, 네비게이션, JavaScript 실행)을 클래스로 패키징한다. 이러한 기본 브라우저 기능을 요구하는 앱들은 단순히 WebView 라이브러리를 포함하고, WebView 클래스의 객체를 생성할 수 있다. 이렇게 함으로써 앱들은 기본 브라우저를 내장하고, 웹 컨텐츠를 보여주거나 웹 어플리케이션과 상호작용하는 데에 사용할 수 있다.

 

실제로, customization을 가능하게 하는 것은 웹뷰에서 제공하는 API이다. 웹뷰는 앱들이 웹 컨텐츠를 보여주는 것 이외에도 API를 통해 앱들이 웹 컨텐츠와 상호작용 하도록 한다. 상호작용에는 두 가지 방향이 존재한다.

앱 → 웹 페이지 : 앱은 웹 페이지 내의 자바 스크립트 코드를 호출하거나 그들만의 자바 스크립트 코드를 웹 페이지에 삽입할 수 있다.

앱들은 웹 페이지 내에서 일어나는 이벤트를 monitor, intercept 하고 반응할 수 있다. 웹 페이지 → 앱까지 앱은 인터페이스를 등록해 웹 페이지에 내장된 자바스크립트 코드가 인터페이스들을 호출할 수 있다.

앱들과 웹 페이지 간의 두 가지 방향의 상호작용 매커니즘을 통해 앱들은 인터페이스를 웹 컨텐츠나 스크린 크기 등에 맞춰 커스텀 하는 등 기존 브라우저보다 더 강력해질 수 있다. 이를 통해 유저들에게 더 다양한 경험을 제공할 수 있다. Java나 Object로 구현된 이런 기능들은 페이스북이 기본 자바스크립트나 HTML을 이용해 웹 인터페이스로 제공하는 것보다 더 많은 기능을 제공한다.

 

Security situations

웹뷰와 모바일 디바이스의 많은 사용은 웹 보안의 환경을 변화시켰다. 그 동안 유명한 회사의 IE, Firefox, Chrome, Safari 등의 브라우저를 통해 웹을 탐색하는 것을 신뢰했다. 웹뷰 덕분에 앱들은 브라우저와 유사해졌고, 수십만개의 'browsers'가 존재하게 되었다. 대부분은 유명한 회사에서 개발되지 않았고, 신뢰성이 보장되지 않는다.

브라우저는 Trusted Com-puting Base (TCB)에서 중요한 구성요소이다. unknown 'browsers'로 옮기며 TCB가 사라지게 되었다. 고로, 웹뷰는 TCB를 약화시켰다.

또 다른 브라우저의 중요한 보안적 특징은 브라우저 내의 웹 페이지에서 동작하거나, 시스템 리소스나 다른 출처의 페이지에 접근하지 못하도록 방지하는 기능인 sand-box 이다.

앱들과 웹 페이지 간 더 나은 상호작용을 지원하기 위해 웹뷰는 앱들이 샌드박스에 '구멍'을 뚫어 더 많은 공격 기회를 만들어 내도록 하게 되었다.

 

Overview of our work and contribution

이 연구의 목적은 웹뷰가 보안에 미치는 영향을 종합적이고 체계적으로 연구하는 것이다. 커뮤니티에서 발생한 논란[3, 5-7]을 분류했고, 저자가 찾은 새로운 공격을 취약점의 원인에 따라 분류했다. 이러한 공격들은 웹뷰 인프라에서 TCB와 샌드박스가 약화되어 발생하는 근본적 문제들을 드러낸다.

안드로이드에 초점을 맞춰 작성된 논문이다.

 

2. SHORT TUTORIAL ON WEBVIEW

(추가 작성 예정)

 

≪깨달은 점≫

- 논문을 전체 번역하려고 했는데, 이게 되게 집중력이 떨어지고 비효율적이라는 것을 깨달았다. 논문 읽는 법을 알아야 할 것 같다. 다음에는 영어로 대충 읽고 중요한 부분만 따로 정리하는 방법을 사용해 봐야겠다.

- 2011년에 발표된 꽤나 오래된 논문이다. 하지만 웹뷰의 기본을 정리하기에는 좋은 논문 같다.