- Android 11 이후 Google은 앱 간 조회를 제한했지만, 여러 앱이
AndroidManifest.xml 선언만으로 설치 앱 목록을 확인할 수 있었음
- package visibility 정책은 핵심 기능에 필요한 앱만 보도록 요구하지만, 개별 패키지 선언과
ACTION_MAIN 필터가 우회 경로처럼 쓰였음
- Swiggy는 154개, Zepto는 165개, KreditBee는 860개, Moneyview는 944개 앱을 선언해 사용자 기기에 특정 앱이 있는지 조회할 수 있었음
- 무작위로 본 인도 앱 47개 중 31개가
ACTION_MAIN intent filter를 사용했고, 이는 QUERY_ALL_PACKAGES 없이도 화면이 있는 대부분의 설치 앱을 볼 수 있게 함
- 설치 앱 데이터와
READ_SMS 권한은 프로파일링, 가격 차등, 신용·자격 판단으로 이어질 수 있지만 사용자는 앱이 언제 무엇을 읽는지 알기 어려움
Android 앱 가시성 정책의 허점
- 과거 Android에서는 앱이 별도 권한 없이 사용자의 휴대폰에 설치된 다른 앱을 볼 수 있었음
- Google은 Android 11부터 package visibility 정책을 도입해 이 접근을 제한함
- 앱은 핵심 기능에 필수적인 경우에만 다른 설치 앱을 볼 수 있어야 함
- 개발자는 확인하려는 앱을 모든 Android 앱의 필수 설정 파일인
AndroidManifest.xml에 명시해야 함
- 파일 관리자, 브라우저, 백신 앱처럼 구체적인 사용 사례에는
QUERY_ALL_PACKAGES 권한이 예외적으로 허용됨
- UPI 결제 앱 표시, 앱 복제·다중 계정 앱 탐지 같은 경우는 합법적인 앱 조회 이유가 될 수 있음
- 조사된 manifest 다수에도 결제, 보안, 사기 탐지 목적의 앱 조회가 포함돼 있었음
Swiggy와 Zepto의 광범위한 앱 조회
- Swiggy는 manifest에 154개 패키지명을 나열해 해당 앱이 휴대폰에 있는지 확인할 수 있었음
- 목록에는 Xbox, PlayStation, Naukri, Upstox 같은 앱이 포함됨
- 카테고리가 매우 넓어 사용자 프로파일링과 행동 프로필 구축 목적의 데이터 수집 가능성이 큼
- Google은 설치 앱 목록을 개인적이고 민감한 사용자 데이터로 봄
- Zepto는 165개 앱을 기기에서 확인하도록 manifest에 등록함
- Netflix, Bumble, Binance 등 여러 카테고리의 인기 앱이 포함돼 있었음
- Zepto가 iOS와 Android 사용자에게 다른 가격을 표시했다는 보도가 있었고, 일부 고객은 Android 휴대폰별 가격 차이를 보고함
- 사용자는 Play Store에서 앱을 설치할 때 해당 앱의 manifest에 어떤 앱 조회 목록이 들어 있는지 볼 수 없음
배달 라이더 앱과 개인 대출 앱의 조회 범위
- Swiggy와 Zepto의 배달 라이더용 앱은 소비자용 앱과 다른 앱 조회 목록을 갖고 있었음
- 두 앱 모두 라이더가 어떤 다른 회사에서 일하는지 확인할 수 있는 항목을 포함함
- Swiggy는 개인 대출 앱, 개인 금융 앱, Ludo King, Carrom Pool 같은 게임 앱까지 확인했음
- 인도 개인 대출 앱의 약탈적 관행은 문서화돼 있고, 몇 년 전 대규모 단속으로 수천 개 앱이 Play Store에서 제거된 적이 있음
- KreditBee는 Play Store 개인 대출 분야 상위 앱 중 하나이며, 다운로드 수가 5천만 회 이상이고 manifest에서 860개 앱을 확인했음
- Tamil Calendar, Odia Calendar, Qibla Direction Finder, 사원 앱, 점성술 앱 같은 항목도 들어 있었음
- 고등학교를 졸업하지 않은 사람들을 위한 혼인 앱
Jodii for Diploma, +2,10 below와 소·버팔로 거래 앱 소와 버팔로 사고팔기 Animall도 예시로 등장하며, 둘 다 1천만 회 이상 다운로드됨
- Moneyview도 다운로드 수가 5천만 회 이상인 개인 대출 앱이며 manifest에 944개 앱을 포함함
- Play Store 정책은 개인 대출 앱의
QUERY_ALL_PACKAGES 사용을 명시적으로 제한하지만, KreditBee와 Moneyview는 원하는 앱을 하나씩 manifest에 나열하는 방식으로 이 제한을 우회함
QUERY_ALL_PACKAGES 없이 앱 목록을 보는 방식
- 조사한 앱 중 고위험·민감 권한인
QUERY_ALL_PACKAGES를 manifest에 포함한 사례는 Cred 하나였음
- Play Store는 금융 규제 상품과 관련된 금융 거래를 촉진하는 검증 가능한 핵심 목적이 있는 앱에 이 권한의 “임시 예외”를 허용함
- 같은 분야의 PhonePe나 PayTM manifest에는 이 권한이 없었음
- Cred는 개인 대출도 제공하며, Play Store의 개인 대출 정책상 이 예외 대상이 아닌 것으로 보임
- 일부 앱 manifest에는 다음과 같은
ACTION_MAIN intent filter가 들어 있었음
<queries>
[...]
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
[...]
</queries>
ACTION_MAIN 필터는 화면이 있는 설치 앱 대부분에 대한 가시성을 제공하며, QUERY_ALL_PACKAGES 권한 없이도 휴대폰의 앱 목록을 볼 수 있었음
- 같은 설정을 넣은 기본 Android 앱으로 설치 앱을 조회했을 때 휴대폰의 모든 앱 목록이 반환됨
- 무작위로 분석한 인도 앱 47개 중 31개가 이 필터를 사용했으며, 이는 3개 중 2개꼴임
- 사용한 앱: Astrotalk, Axis Mobile, Bajaj Finserv, BookMyShow, Cars24, Cure.fit, Fibe, Groww, Housing, Instamart, Ixigo, JioHotstar, KreditBee, KukuTV, LazyPay, Ludo King, Meesho, MoneyTap, Moneyview, Navi, NoBroker, Nykaa, Ola, PhonePe, PhysicsWallah, Slice, Spinny, Swiggy, Swiggy Delivery, Tata Neu, Zomato
- 사용하지 않은 앱: Airtel Thanks, Blinkit, Byju’s, MyGate, Dream11, Flipkart, HDFC Mobile, Healthify, INDmoney, MyJio, Paytm, PaisaBazaar, ShareChat, Unacademy, Vedantu, Zepto
- Swiggy는
ACTION_MAIN 필터도 갖고 있었지만 앱 조회 목록을 명시적으로도 나열해 데이터 수집 관행의 일부가 드러남
- 읽은 manifest 파일은 android-manifest-files에 공개돼 있으며, 대부분 3월 18일 또는 19일에 다운로드된 것임
- 이 설정은 인도 기업 앱에만 한정되지 않았음
- Facebook, Instagram, Snapchat, Subway Surfers, Truecaller는 같은 설정을 갖고 있었음
- Amazon, Spotify, X, Discord, WhatsApp에는 없었음
설치 앱 데이터와 SMS 권한의 민감성
- 설치 앱 데이터는 민감한 개인 데이터임
- 2022년 Vice는 Roe v. Wade가 뒤집힐 수 있다는 소식 직후 Narrative라는 데이터 마켓플레이스가 생리 추적 앱을 내려받은 사용자 데이터를 판매하고 있었다고 보도함
- 앱의 manifest에는 설치 앱 조회 외에도 필요 범위를 넘어 보이는 권한이 광범위하게 포함될 수 있음
- Zepto는
READ_SMS 권한을 요청함
- 사용자가 거부할 수 있지만, Zepto Postpaid 가입 시에는 필수임
- 권한을 허용하면 은행의 TRAI sender ID 다수와 Blinkit, Swiggy, Bigbasket, Flipkart의 SMS도 확인 대상에 포함됨
- Postpaid 요금제 자격 확인을 위해 은행 SMS를 읽는 것으로 보이지만, 사용자가 해당 기능을 선택하지 않아도 읽을 수 있음
- 사용자는
READ_SMS 같은 권한을 앱에 부여한 뒤 앱이 언제 무엇을 접근하는지 볼 수 없음
- Android 앱 설치 정보는 앱 개발자와 데이터 브로커의 프로파일링, 광고 네트워크 데이터와의 교차 참조, 가격 책정 같은 용도로 쓰일 수 있음