DOI QR코드

DOI QR Code

A Case Study on Mobile Advertisement Injection

모바일 광고 인젝션 사례 연구

  • Received : 2017.05.11
  • Accepted : 2017.08.30
  • Published : 2017.10.31

Abstract

The rapid evolution of mobile technologies and proliferation of mobile devices have created a new channel for marketing by mobile advertising. As mobile advertising is a close relative to online advertising, it also has similar problems such as advertisement injections (Ad injections). Users are exposed to unwanted advertisements and redundant web traffic by injected ads can cause additional charges of mobile devices. Although mobile ad injection can cause many problems it has been merely studied. In this paper, we analyze ad injection activities by mobile applications that exploit a legitimate application (Naver mobile application). We reverse-engineered 2 mobile applications and find out characteristics of mobile ad injections. We compare mobile ad injections with online ad injections and suggest feasible mitigations.

최근 무선 네트워크 및 모바일 기술의 발전으로 인해 모바일 기기를 통한 다양한 종류의 서비스가 개발 및 제공되고 있다. 이와 더불어 모바일 광고(mobile advertisement) 형태도 다양한 형태로 확대되고 있다. 이에 유선 환경에서 발생하였던 광고 인젝션(advertisement injection; ad injection)이 모바일 환경으로 확장되고 있다. 특히 모바일 환경에서는 원하지 않는 광고의 노출로 인하여 사용자에게 불편함을 초래함과 동시에 모바일 데이터 사용량을 증가시킬 수 있다. 이렇게 광고 인젝션으로 인한 피해가 발생함에도 불구하고, PC 환경에서와 마찬가지로 아직까지 모바일 환경에서의 광고 인젝션 유형 및 특성에 관한 연구는 거의 진행되지 않았다. 따라서 본 논문에서는 국내 인터넷 포털 사이트 네이버를 대상으로 한 모바일 앱(mobile app)의 광고 인젝션 사례를 살펴보고, 이를 통하여 모바일 광고 인젝션의 유형 및 특성 분석을 수행하고자 한다. 본 연구에서는 2개의 모바일 앱을 대상으로 역공학(reverse engineering) 기법을 통하여 광고 인젝션 코드 및 행위에 대한 정적 동적 분석을 수행하였고 기존 PC 환경에서의 광고 인젝션과 비교 분석하였다.

Keywords

I. 서론

모바일 광고(mobile advertisement)는 스마트폰의 진화는 물론 무선 네트워크 및 관련 모바일 기술의 발전을 기반으로 다양한 형태로 확대되고 있다. 특히, 모바일 기술 및 장치들이 일상생활에 밀접하게 접목됨으로써 PC 환경의 온라인 광고 매출은 축소되고, 모바일 광고 매출은 큰 성장세를 보이는 현상이 두드러지고 있다 [1]. 이에 PC 환경에서 발생하였던 광고 인젝션(advertisement injection; ad injection)이 모바일 환경으로 확장되고 있는 상황이다. 앞선 연구[2]에서 언급하였듯이, 광고 인젝션은 소비자를 비롯하여 서비스(또는 콘텐츠) 제공자 및 광고주에게 다양한 피해를 유발한다. 예를 들어, 의도된 광고가 노출되지 않고, 엉뚱한 광고 링크나 배너 광고가 노출됨으로서 콘텐츠 게시자의 광고 수익을 잃게 하거나, 노출되어야 할 광고주의 광고 링크가 노출되지 않아 광고주에 대한 신뢰성 문제를 야기할 수 있다. 특히 모바일 환경에서는 원하지 않는 광고의 노출로 인하여 사용자에게 불편함을 초래함과 동시에 모바일 데이터 사용량을 증가시켜 모바일 데이터 사용에 대한 금전적인 손해를 끼칠 수도 있다. 이렇게 광고 인젝션으로 인한 피해가 발생함에도 불구하고, PC 환경에서와 마찬가지로 아직까지 모바일 환경에서의 광고 인젝션 유형 및 특성에 관한 연구는 거의 진행되지 않았다. 따라서 본 논문에서는 국내 인터넷 포털 사이트 네이버를 대상으로 한 모바일 앱 (mobile app)의 광고 인젝션 사례를 살펴보고, 이를 통하여 모바일 광고 인젝션의 유형 및 특성을 분석하고자 한다. 또한 모바일 인젝션에 대응하기 위한 기존 대응사례를 분석하고 시사점에 대하여 논의하고자 한다.

본 논문의 구성은 다음과 같다. Ⅱ장에서는 모바일 광고 인젝션 관련 기존 연구들에 대해 기술한다. Ⅲ장에서는 분석된 모바일 앱 광고 인젝션의 유형을 간략히 설명하고, Ⅳ장에서 각 유형을 기술적으로 분석한 다. Ⅴ장에서는 모바일 광고 인젝션의 대응사례 분석과 시사점에 대해 논의하고, 마지막으로 ⅤI장에서는 결론 및 향후 연구해야 할 사항에 대해 기술한다.

II. 관련 연구

광고 인젝션에 대한 연구는 주로 웹 광고 인젝션에 대한 연구가 주로 수행되었으며 모바일 광고 인젝션에 대해서 다룬 연구는 거의 없었다.

웹 광고 인젝션과 관련해서는 과거에는 광고 인젝션을 수행하는 바이너리(웹하드와 관련된 바이너리 등)를 설치하여 수행되었으며 최근에는 주로 브라우저 익스텐션(extension) 등을 이용하여 웹 광고를 인젝션 한다.

대표적인 웹 인젝션 관련연구인 구글의 Kurt Thomas[3] 등의 연구에서는 웹페이지 컨텐츠가 수정되었는지를 서버 레벨에서 확인할 수 있도록 자바 스크립트(java script)를 이용하였으며 (웹페이의 컨텐츠가 수정되는 경우 서버에 알림) 인젝션된 데이터가 바이너리 데이터인 경우 “Google safe browsing”을 이용해 광고 인젝션을 수행하는 바이너리를 탐지하였다. 이 논문에서는 이와 같은 탐지 시스템들을 이용하여 실제로 광고 인젝션에 대한 데이터 분석을 수행하였는데 구글의 웹사이트에 접속하는 컴퓨터들의 IP주소 중에 약 5%의 IP 주소에서 광고 인젝션이 발생하였다고 한다.

모바일 광고 관련 어뷰징 논문의 하나인 J. Crussell[4] 등의 연구는 안드로이드 어플리케이션에서 어플리케이션이 백그라운드에 있는데도 광고요청을 하거나 사용자가 클릭하지 않았음에도 광고 요청을 하여 금전적인 이득을 얻고자 하는 모바일 광고 어뷰징을 탐지하는 연구를 하였다. 백그라운드 상태의 어플리케이션에서 광고 요청이 수행되는지 탐지하기 위해서 어플리케이션을 실행하여 60초간 모니터링 후 백그라운드로 전환 후 60초간 모니터링을 하였다. 광고 요청의 탐지는 네트워크 트래픽을 분석하 여 수행하였는데 Bro Network Security Monitor를 이용하였다. Crussell 등의 연구는 이 용자에게 보이지 않게 광고를 요청하고 자동으로 클릭하는 어뷰징 행위를 다루었으나, 본 논문에서는 이용자에게 의도적으로 광고를 노출하는 인젝션 행위를 다룬다.

또 다른 모바일 광고 관련 어뷰징 연구는 S. Demetriou[5] 등의 연구와 같이 모바일 광고 라이브러리에서의 유저 정보 유출에 대한 연구도 진행이 되고 있는데 모바일 광고 어뷰징이라기 보다는 모바일 광고 관련 개인정보 유출의 범주로 볼 수 있다.

앞서 언급한데로, 모바일에서 광고 어뷰징과 관련된 연구는 거의 진행된 바가 없으며 특히 모바일광고 인젝션과 관련된 연구는 없었다.

국내에서 광고 인젝션에 대한 피해는 온라인 광고를 메인으로 하는 대형 온라인 포털 사이트를 제외하고는 관심의 대상이 아니었으며, 광고주는 직접적인 피해를 인지하지 못하는 경우가 일반적이었다. 또한 간접적인 피해를 입는 사용자의 경우도 인젝션 프로그램이 어떻게 설치되어 무슨 일을 하는지 모르는 경우가 대부분이었다.

본 저자들의 앞선 연구[2]에서는 대형 온라인 포털 사이트인 네이버를 대상으로 한 광고 인젝션의 유형과 특징을 분석하였다.

III. 모바일 광고 인젝션 유형 분석

본 연구에서는 2개의 모바일 앱의 광고 인젝션 과정을 분석하여 광고 인젝션 유형과 특징을 도출하였다. 광고 인젝션은 Fig. 1과 같이 모바일 웹 브라우저를 포함하여 이용자가 실행하는 여러 앱에서 3 가지 형태의 광고로 나타났다.

Fig. 1. Types of mobile app ad injection

- 배너(banner) 형: 앱 최하단에 배너 광고를 출력하는 형태 [Fig. 1(a)]

- 노티 바(notification bar) 형: 상단의 노티바를 내렸을 때 광고를 표시하는 형태 [Fig. 1(b)]

- 팝업(pop-up) 형: 앱을 종료했을 때, 화면 전체로 광고를 표시하는 형태 [Fig. 1(c)]

3가지 형태의 광고 인젝션에서 공통적으로 발견되는 특징은 권한 파일인 “AndroidManifest.xml” 에 다른 어플리케이션에서 최상위 화면에 표시할 수 있는 권한(“android.permission.SYSTEM_ALERT_WINDOW”) 을 취득하여, 광고를 인젝션하기 위해 앱 개발자 사이트가 아닌 제3의 사이트(즉, 광고 플랫폼 등)로 이용자의 검색 키워드 등을 전달하고, 광고 데이터를 수신하는 것을 관찰하였다. 특히 모바일 광고(스마트 폰 앱 광고) 인젝션은 PC 환경의 광고 인젝션과는 다르게 동반 설치가 아니라, 특정 앱 내에 광고를 인젝션 하는 모듈이 추가되어 있다. 흔히 모바일 앱 광고 SDK(software development kit)로 제공되어 개발자가 앱 내에서 해당 모듈을 활성화하여 특정 조건에 해당하는 경우 광고가 인젝션 된다.

IV. 모바일 앱 광고 인젝션 분석 사례

앞서 언급하였듯이, 본 연구에서는 2개의 모바일앱을 대상으로 광고 인젝션 유형과 특징을 분석하였다. 모바일 앱 분석 대상은 Table 1과 같다.

Table 1. Target for mobile app analytics

‘V’ 앱은 ‘M’이라는 업체에서 제작한 앱으로 모바일 웹 브라우저를 포함하여 이용자가 실행하는 여러 앱에서 몇 가지 형태의 광고 인젝션을 수행한다. ‘K’ 앱은 개인이 제작한 앱으로 특정 모바일 광고 플랫폼 라이브러리를 호출하여 광고 인젝션을 수행한다. 본 연구에서는 광고 인젝션 앱이 설치되지 않았을 때와 설치되었을 때의 네트워크 트래픽의 변화를 동적으로 분석하고, 소프트웨어 역공학(reverse engineering) 기법을 통하여 광고 인젝션 코드에 대한 정적 분석을 수행하였다. 정적 분석 기법은 JEB decompiler를 통해 해당 앱의 소스코드를 획득한 후 코드 분석을 통해 전반적인 앱의 구동 흐름을 파악하였다. 동적 분석 측면으로는 루팅 (rooting)된 안드로이드(Android) 환경의 휴대폰 (NEXUS 5)에 ‘V’앱을 설치하여 실제 앱을 구동하는 과정에서의 네트워크 트래픽 및 동작 로그(log) 를 분석하였다.

4.1 V앱 상세 분석

‘V’ 앱은 기존 네트워크 트래픽을 직접적으로 변조하지는 않지만, 사용자가 인터넷으로 검색한 URL 히스토리를 지속적으로 수집하고, 이를 특정 형태로 파싱하여 개발사(‘M’)으로 넘겨주고 광고 데이터를 수신하여 출력하는 기능을 가지고 있다.

해당 앱을 정적분석 측면에서 살펴보면, 앱설치 시 설치되면 Table 2와 같이 광고와 관계되는 파일이 생성된다. (/data/media/m****)

Table 2. Ad related files created when installing the ‘V’ app

Table 3 은 ‘AndroidManifest.xml' 내에 적힌 ’V'앱이 사용하는 권한들이며, 광고 표시를 위해 ‘다른앱 위에 그리기’를 사용하고 있음을 알 수 있다. 그리고 사용자가 방문한 URL을 획득하기 위해 ‘웹 북마크 및 기록 읽기’ 권한도 사용한다.

Table 3. Permissions of 'V' app in the manifest file

Fig. 2. Data flow of 'V' app's ad injection

Fig. 3에서와 같이 ‘V’앱의 브라우저 히스토리 URL 수집 방법을 살펴보면, 백그라운드로 실행되는 서비스에서는 모바일 폰의 기본 브라우저와 크롬 (Chrome) 브라우저의 북마크(bookmark)를 통해 최신 URL 정보를 지속적으로 확인하여 ‘url’, ‘title’, ‘visits’ (방문 회수), ‘date’ (최근 방문날짜) 정보를 얻는다. 특히 Fig. 3에서 보듯이, URL 에서는 주요 검색 사이트에서 키워드를 담고 있는 ‘query’, ‘q’, ‘keyword’, ‘NVKWD’, ‘DMKW’를 파싱하고 있음을 알 수 있다. 여기서 q는 Google 검색 엔진에서의 검색 키워드를, NVKWD는 네이버, DMKW는 다음 사이트의 검색 키워드를 의미한 다.

Fig. 3. A portion of the ‘V’ app extracted through reverse engineering

‘V'앱은 Fig. 4에서 보여주듯이 전송받은 광고 데이터를 화면의 최상단에 표시한다.

Fig. 4. A Smali code for display ad in 'V' app

동적 분석 측면에서 보면, Fig. 5과 Table 4에서와 같이, 실제 네이버에서 ‘원피스’를 검색했을 때, 최근 방문한 사이트와 검색 키워드가 서버(‘M’사로 “m**.co.kr”)로 전달된다.

Fig. 5. Request traffic for Ad

Table 4. Decoded content of ‘param’ described in Fig. 3

또한 Fig. 6에서와 같이 ‘M’ 사의 서버에서는 광고 이미지 데이터와 클릭 시 이동하게 될 타겟 URL이 JSON(JavaScript Object Notation) 데이터로 전달된다.

Fig. 6. Received ad data

Fig. 6에서는 3가지의 광고 인젝션 형태 중에 배너 관련 데이터(adbn)만 있는 것을 확인할 수 있다. ‘V앱’은 수신한 JSON 정보를 Table 2의 “ad_data.db”파일에 저장한다. 이 파일은 SQLite[6] DB 파일로 “t_appData”라는 테이블에 필드명 “keywordData”로 구성되어 있다. keywordData 는 총 19개의 값이 “|”로 구분되어 연결되어 있다.

‘V’앱에서는 “keywordData”를 파싱하여, 이미지 클릭 시 이동할 URL를 배너로 생성한다. 그리고 “WindowManager”의 “addView” 메소드(method)를 이용해 화면 최상위 레이어(layer)에 맨 아래쪽에 표시한다. 한편 ‘V’앱은 안드로이드 기기가 부팅 완료 될 경우 브로드캐스트 메시지를 받을 수 있도록 권한이 요구된 것을 볼 수 있다.

이러한 광고를 출력하기 위해 ‘V’앱은 별도로 이용자의 검색 키워드를 수집하여 특정 서버로 전달하고, 해당 키워드에 상응하는 광고 데이터를 이용자의 단말기로 전송한다. 예를 들어, Fig. 7과 같이 웹 브라우저에서 네이버 모바일페이지(“https://m.nave r.com”)에서 “원피스”라는 여성 의류 관련 키워드를검색하게 되면, 화면 하단에 빨간색 부분과 같은 배너 광고가 출력된다. 이 배너 광고는 네이버에서 제공하는 광고가 아니다. 특히 이 배너는 화면 최 하단에 최초 위치한 후, 이용자가 브라우저를 스크롤하더라도 계속하여 최하단에 위치한다.

Fig. 7. Banner type ad injection

특히 ‘V’앱은 자신들의 광고를 노출시킬 대상 앱에 대한 정보도 서버로부터 수신하는 것을 확인할 수 있었다. 또한, Fig. 8과 같이, ‘V’앱을 실행할 때 마다 M사로부터 광고를 표시할 타켓(target) 앱 리스트를 받아온다. 이 데이터는 Table 2의 ad_sync.db 에 저장된다. 또한 Fig. 9에서와 같이 실제로 ad_sync.db 파일 내에는 네이버 검색 (com.nhn.android.search), 가계부(com.nhn.a ndroid.moneybook)와 같은 앱 이름이 들어 있었다.

Fig. 8. List of ad target apps

Fig. 9. Details of stored ad_sync.db file

4.2 K앱 상세 분석

‘K'앱도 ’V‘앱과 동일하게 다른 앱의 상단에 광고를 표시한다. 'K'앱은 광고를 표시하기 위해 Fig. 10에서 보여주는 흐름으로 사용자의 단말기 환경 정보를 전송하여 광고를 표시한다.

Fig. 10. Data flow of 'K' app's ad injection

정적 분석 측면에서도 'AndroidManifest.xml' 파일 내 ’다른 앱 위에 그리기‘ 기능을 요구하고 있는 것을 확인할 수 있다. Table 5은 ’K'앱이 가지고있는 주요 권한들이다.

Table 5. Permissions of 'K' app in the manifest file

동적분석 측면에서는, ‘K’앱이 설치되면 단말기는 주기적으로 특정 사이트(“get.e*.co.kr”)와 통신 중에, 이 서버로부터 appcode라는 값을 수신하게 되는데, 이 값으로 어떤 앱에서 광고를 요청하는지 식별하기 위한 것으로 보인다. Table 6은 단말기에서 ‘C’사로 보내는 요청URL로 스마트폰의 운영체제 정보와 단말기 정보, 그리고 앞서 설명한 appcode가 code=zrxf429t 라는 인자 값으로 전달된다.

Table 6. URL data from mobile device to ad platform 'C'

이 요청의 응답으로 Table 7과 같이, ‘C’사로부터 광고 이미지(“image.c***.co.kr”)와 클릭 시 이동할 URL 데이터를 수신한다.

Table 7. URL data to move on click

결과적으로 네이버 앱을 실행시켰을 때, Fig. 11과 같이 하단에 타 쇼핑몰 광고가 뜨며, 화면 터치 시 해당 사이트 광고가 팝업으로 노출된다.

Fig. 11. Ad injection of ‘K’ app. (banner & pop-up types)

노출되는 광고에 특별한 출처 표시가 없기에 현재 보고 있는 앱의 광고인 것으로 충분히 오인하게 만들고 있고, 원래 실행되는 앱의 영역을 가리게 되므로 불편함을 초래하고 있다. 실제로 구글 플레이앱 리뷰에서 광고 관련하여 불만스러운 의견을 다수 관찰할 수 있다.

Fig. 11에서 배너 광고를 클릭하면 “click.c***.co.kr”를 경유하며 “tr.c***.co.kr”로 접속 요청을 하게 된다. 이때도 Table 8과 같이 appcode(code=zrxf4295t)가 전송되는 것을 확인 할 수 있다.

Table 8. URL data when banner is clicked

또한 Table 9에서 보듯이 “tr.c****.co.kr”에서 302 redirect 응답을 단말기 전달하여 쇼핑몰(티몬)으로 이동되게 한다.

Table 9. Redirect message from ad platform 'C'

또한 배너 광고 팝업이 발생할 때, 티몬 앱으로 Table 10과 같은 메시지를 나타나게 하는 데이터를 수신하고 있다. ‘카***_M배너_inapp_마트’ 라는 텍스트가 수신되는 것으로 보아서, 광고주 사이트(티몬)에서 ‘C’사를 통한 배너 광고로 방문했다는 것을 집계할 수 있음을 확인할 수 있다.

Table 10. Received data from Tmon app

V. PC 인젝션과 비교 분석

본 장에서는 앞선 연구[2]에서 분석한 인터넷 환경(PC 환경)에서의 광고 인젝션과 모바일 환경에서의 광고 인젝션을 비교 분석하고자 한다.

광고 인젝션을 위한 동작 절차는 PC와 모바일 환경 모두 (a)사용자가 검색한 정보를 획득하고 (b)획득한 검색어 및 운영체제 정보 및 환경정보를 서버에 전송하며 (c)해당 키워드를 기반으로 최종 광고를 표시하는 절차는 비슷한 모습을 보여준다. 하지만 두 환경에서 (a)와 (c)를 구현하기 위한 방법은 기술 및 광고를 표시하는 유형에서 차이가 발생한다.

즉, 모바일과 PC 환경에서의 광고 인젝션 기법은 동작 방식에서는 유사한 측면이 있으나, 광고를 표시하는 방법은 기술적 환경의 차이 때문에 서로 상이하다. 팝업형 광고의 경우, PC는 광고를 표시할 영역이 넓기 때문에 이용하던 브라우저 위에 새 창을 띄워서 앞서의 창을 가리는 경우가 많았다. 반면 모바일에서는 앱의 샌드박스(sandbox) 기능으로 인해 타 앱이 실행하는 도중 팝업을 생성할 수 없고, 영역이 작기 때문에 특정 앱이 종료되는 경우를 탐지하여 전체화면으로 관련 광고를 표시한다. 사이드 바 (side bar) 광고의 경우, PC에서는 이용하는 브라우저의 좌측 또는 상단에 광고 영역을 게시한다. 모바일에서는 상단의 노티 바를 이용하여 광고를 표시하지만, 사용자에게 접근하는 방법이 PC보다 어렵다. HTML 변조 유형의 광고의 경우, 모바일에서는 기술적으로 불가능하므로 이를 이용한 유형은 현재까지 발견되지 않았다.

사용자가 특정 키워드로 검색을 수행하는 것은 그 내용에 관심이 있다는 것을 나타낸다. 따라서 광고 효율을 높이기 위해서는 사용자가 입력한 키워드를 획득하고 그 키워드에 관련이 있는 광고를 표시하여야 한다. 사용자가 검색한 키워드를 획득하는 방법에 관하여, PC에서는 BHO(Browser Helper Object)를 이용하여 현재 URL을 확인하지만, 모바일에서는 이용자 브라우저의 검색 히스토리를 통해 URL을 얻거나, 실행한 앱의 정보를 얻는다. 광고의 효과를 높이기 위해 이용자가 검색하는 키워드를 획득한다는 점이 공통적이지만, 모바일에서는 다른 앱의 정보를 추가로 감시하고 있는 경우가 있기 때문에 모니터링 측면에서 범위가 더 넓고, PC는 모바일보다 더 다양한 기술을 이용하여 광고 표시가 가능하 다.

또한, PC환경의 경우, 광고를 표시할 때 이용하는 API들을 광고 프로그램보다 앞서 후킹 (hooking)하여 처리하면 광고 인젝션을 예방할 수 있으나, 모바일 환경에서는 앱 설치 전 특정 권한을 허락하는 특성상 PC보다 세부적으로 방어하기가 어렵다. 단, 안드로이드 6.0부터는 다른 앱 위에 그리기 기능 동작 시 OS에서 사용자에게 허용 여부를 묻기 때문에 이전 버전들보다 사용자의 인지가 쉬워 졌다.

Table 11은 두 환경에서의 광고 인젝션 특성을 간략히 정리한 것이다.

Table 11. Comparison of ad injection between PC and mobile environments

VI. 대응 사례 분석과 고찰

본 연구에서는 국내에서는 거의 연구되지 않은 모바일 앱 광고 인젝션의 실제 사례를 분석하였다. 무료 앱으로 설치되면서 다른 앱 위에 그리기 등 필요한 특정 권한을 이용자에게 충분히 설명 없이 획득하고 있었다. 특히 앱 실행 중에 이용자의 검색어 등을 수집하여 특정 사이트로 전달하고 광고를 받아오는 특징을 가지고 있었는데, 개인정보 노출의 가능성과 불필요하게 추가적인 데이터 송수신이 발생함을 볼 수 있었다. 또한 광고를 표시하기 위해 특정 사이트로부터 데이터를 송수신하는데, 해당 사이트가 보안에 취약할 경우 악성콘텐츠를 다운로드 받을 여지도 있다.

설치 앱의 실행 중에 광고가 나타날 뿐만 아니라 다른 앱을 실행 중에도 해당 광고가 출력되어 다른 혹은 특정 사이트가 광고를 노출하는 것으로 오인 받게 하는 경우에 대해서는 법적으로도 분쟁 소지가 충분히 있으나 실제 판례는 아직 확인되지 않았다.

기술적으로는 PC환경에서와 유사하게, 기만적인 광고 인젝션 앱을 제한하기 위해 앱 마켓(예를 들어, 구글 플레이, 애플 앱 스토어 등)은 구체적인 광고 노출 가이드라인을 만들어 앱 개발자에게 제공하고, 앱 마켓에 등록된 앱에 대해서는 이를 준수하는 지를 검수하고 지속적인 모니터링이 필요하다.

구글의 경우 안드로이드 앱 개발자들을 위한 개발자 정책센터[7]에서 개발한 안드로이드 앱을 플레이 마켓에 게재할 때 지켜야 할 정책들에 대해서 자세히 언급하고 있다. 여러 제약사항들 중에서 광고와 관련된 내용도 언급이 되어있는데 사기성 광고 및 불편을 야기하는 광고의 포함을 금지하고 있다. 다른 앱이나 광고를 방해하는 것 또한 금지하고 있는데 이는 광고 인젝션과 관련된 사항이다. 구체적으로 광고가 메인 스크린으로 이동시 광고가 뜨는 등의 앱의 외부에 표시되는 경우나 앱을 종료시 팝업되는 광고 부정클릭을 유도하거나 광고의 종료가 안 되는 경우도 상세한 부정행위로 지목하여 금지하고 있다. 이처럼 안드로이드 앱에서의 광고 인젝션과 관련해서는 개발자 정책센터에서 상세한 사례들과 함께 이를 금지하고 있고 구글 앱 검수 시스템에서 이러한 부정행위를 탐지하는 자동화된 시스템을 갖추고 탐지를 하고 있으나 앞에서 본 여러 가지 사례들과 같이 이를 정확히 탐지하는 것은 매우 어려운 일이다. 따라서 본 연구에서 언급한 바와 같이 다양한 사례들에 대한 상세한 분석을 통해 이를 탐지하는 알고리즘들을 통해 광고 인젝션과 같은 부정행위를 탐지하는 것이 필요하다.

VII. 결론

본 연구에서는 국내에서는 거의 연구되지 않은 모바일 앱 광고 인젝션의 실 사례를 동적 분석과 소프트웨어 리버싱(reversing)을 통하여 분석하였다.

모바일에서의 광고 인젝션 행위는 PC보다는 상대적으로 작은 윈도우의 상당 부분을 차지하여 이용자에게 불편함을 끼치며, 마치 현재 실행한 앱에서 광고를 출력하고 있는 것으로 보여져 서비스 제공자에게도 부정적인 영향을 줄 수 있다.

특히 광고 인젝션을 위해 이용자가 방문한 URL을 지속적으로 감시하여, 자신들의 서버로 해당 데이터를 전송하는 행위는 이용자에게 충분히 설명되지 않은 행위이며, 이 때문에 부가적으로 광고 관련 데이터를 더 송수신하게 만든다. 광고 인젝션 행위와 관련하여, 출처 표시 역시 불분명하게 되어 있다.

본 연구를 통하여 모바일 광고 인젝션의 종류 및 특징에 대해 살펴보았으며, 이를 계기로 모바일 광고 인젝션의 위험성 인지와 더불어 향후 모바일 사용자들을 보호하기 위한 기술적·정책적인 대응 방안 수립에 대한 연구가 필요하다.

* 본 논문은 NAVER 주식회사로부터 지원되었습니다.

References

  1. Eunmin Lee, In-Su Lee, "Analysis and Forecast of Mobile Advertising Market", Information&Communications Policy, 27(6), pp.1-16, Korea Information Society Development Institute, 2015
  2. Sanghyun Cho, Hyun-sang Choi, Young-Gab Kim, "A Study on Internet Advertisement Injection", Journal of The Korea Institute of Information Security and Cryptology , 27(2), pp. 213-222, Korea Institute of Information Security & Cryptology, Apr. 2017 https://doi.org/10.13089/JKIISC.2017.27.2.213
  3. Kurt Thomas, Elie Bursztein, Chris Grier, Grant Ho, Nav Jagpal, Alexandros Kapravelos, Damon McCoy, Antonio Nappa, Vern Paxson, Paul Pearce, Niels Provos, and Moheeb Abu Rajab. "Ad Injection at Scale: Assessing Deceptive Advertisement Modifications", Proceedings of the IEEE Symposium on Security and Privacy, May. 2015
  4. J. Crussell, R. Stevens, and H. Chen. "MAdFraud:Investigating ad fraud in android applications", Proceedings of the 12th annual international conference on Mobile systems, applications, and services(ACM MobiSys), pp. 123-134, Jun. 2014
  5. S. Demetriou, W. Merrill, W. Yang, A. Zhang and C. A. Gunter, "Free for All! Assessing User Data Exposure to Advertising Libraries on Android", Proceedings of Network and Distributed System Security (NDSS '16), Feb. 2016.
  6. SQLite, url: https://www.sqlite.org/
  7. Google Developer Policy Center Guideines. url:https://play.google.com/about/developer-content-policy/