Google Play 개발자 프로그램 정책 업데이트 – 민감한 정보 액세스 권한 및 API

liapp_team·2023년 1월 5일
9
post-thumbnail

Google Play 개발자 프로그램 정책 업데이트 – 민감한 정보 액세스 권한 및 API

스마트폰 애플리케이션은 자신들의 고유한 기능과 역할에 따라 사용자에게 권한을 부여받습니다. 지도 앱은 위치 정보 수집 권한을, 음성 녹음 앱은 마이크 접근 권한을, 통화 앱은 연락처 정보에 접근하는 권한을 요청해 부여받게 됩니다. 하지만 사용자가 이러한 권한을 잘못 허용하게 되면 개인 정보 노출 위협 및 해킹의 타깃이 될 우려가 있어 위험합니다.

오늘은 이 ‘권한’에 대해 더 자세히 알아보기 위해 Google Play의 개발자 프로그램 정책 중 민감한 정보 액세스 권한 및 API에 관한 ‘권한’ 정책을 살펴보려 합니다. Google play는 SMS 또는 통화 기록 권한 그룹을 포함하여 위험도가 높거나 민감한 권한을 사용하는 것을 제한합니다. 하지만 의도한 용도나 적격한 예외가 적용된다고 판단되면 해당 ‘권한’에 대한 액세스 양식을 작성해야 합니다.

Google Play는 2022년 5월 11일부터 시행되는 개발자 프로그램 정책을 업데이트하여 공지하였습니다. 달리 명시되지 않는 한, 변경 사항을 준수할 수 있도록 5월 11일부터 최소 30일 동안 모든 신규 앱 및 기존 앱에 유예기간이 적용되며(시행일이 달리 명시된 정책은 제외), 정책 요구사항을 충족하지 못하거나 권한 요청 양식을 제출하지 않으면 앱이 Google Play에서 삭제될 수 있습니다. 이에 Google이 제한하는 권한에 대해 자세히 살펴보고 해당 권한을 사용하기 위해서는 어떤 요구사항이 필요한지 알아보겠습니다.

SMS 및 통화 기록 권한

SMS 및 통화 기록 권한은 전화나 문자를 주 기능으로 하는 앱이 아니면 해당 권한을 획득할 수 없게 되어있습니다. 음성 전화 걸기, 통화기록 열람 등의 권한을 악용하면 사용자의 전화를 도청하거나 마음대로 전화를 걸 수 있기 때문입니다. 이에 SMS 및 통화 기록 권한은 개인 정보 및 민감한 사용자 데이터로 간주되며 다음 제한사항이 적용됩니다.

위치 정보 액세스 권한

스마트폰은 항상 GPS로 자신의 위치를 확인하고 있습니다. 이미 많은 앱이 이 위치 정보를 요구하고 있지만, 위치 정보 제공에 무턱대고 동의하면 스토킹 행위를 하는 악성 앱에 사용될 우려가 있습니다. 이에 위치 정보 액세스에는 다음과 같은 요구사항이 적용됩니다.

앱의 현재 기능이나 서비스를 제공하는 데 더 이상 필요하지 않으면 앱에서 위치 정보 액세스 권한(예: ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION, ACCESS_BACKGROUND_LOCATION)으로 보호되는 데이터에 액세스해서는 안 됩니다.
광고 또는 분석 목적으로만 사용자에게 위치 정보 액세스 권한을 요청해서는 안 됩니다. 앱에서 광고 게재를 위해 허용되는 위치 데이터 사용 사례를 확장할 경우 Google의 광고 정책을 준수해야 합니다.
앱은 위치가 필요한 현재 기능 또는 서비스를 제공하기 위해 필요한 최소 범위(즉, 미세한 수준 대신 대략적 수준, 백그라운드 대신 포그라운드)를 요청해야 하며, 사용자가 기능 또는 서비스에 요청된 위치 수준이 필요하다고 합리적으로 예상할 수 있어야 합니다. 예를 들어 Google에서는 강력한 근거 없이 백그라운드 위치를 요청하거나 이 위치에 액세스하는 앱을 거부할 수 있습니다.
백그라운드 위치 액세스는 사용자에게 유용하며 앱의 핵심 기능과 관련이 있는 기능을 제공하는 용도로만 사용할 수 있습니다.

앱에서는 다음에 해당하는 경우 포그라운드 서비스(앱에 포그라운드 액세스 권한만 있는 경우, 예: '사용 중에만') 권한을 사용하여 위치에 액세스할 수 있습니다.

위치의 사용이 사용자가 시작한 인앱 작업의 연장으로 시작된 경우
애플리케이션에서 사용자 시작 작업이 의도된 목적대로 완료된 직후 위치의 사용이 종료되는 경우

모든 파일 액세스 권한

사용자의 파일 및 디렉터리 접근은 개인의 민감한 정보를 포함하고 있습니다. 이에 사진, 비디오, 오디오 등에 대한 접근에 대해 앱 제어 및 READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STRAGE 등 권한을 세분화하여 권한을 설정해야 합니다.
앱은 작동하는 데 필수적인 기기 스토리지에만 액세스 권한을 요청해야 하며, 사용자에게 표시되는 중요한 기능과 관련이 없는 목적으로 제3자를 대신하여 기기 스토리지에 액세스 권한을 요청할 수 없습니다.
공유 저장 공간의 액세스 권한을 관리하려면 R(Android 11, API 레벨 30) 이상을 실행하는 Android 기기에 MANAGE_EXTERNAL_STORAGE 권한이 필요합니다. R을 타겟팅하고 공유 스토리지에 관한 폭넓은 액세스 권한('모든 파일 액세스')을 요청하는 모든 앱은 게시 전에 적절한 액세스 검토를 반드시 통과해야 합니다. 이 권한을 사용하도록 허용된 앱은 '특수 앱 액세스' 설정에 따라 앱에 '모든 파일 액세스'를 사용 설정하도록 사용자에게 분명하게 메시지를 표시해야 합니다.

QUERY_ALL_PACKAGES (모든 패키지 쿼리) 권한

안드로이드 11버전부터 ‘폭넓은 앱 가시성(QUERY_ALL_PACKAGES)’이라는 권한이 새로 생겼습니다. 이것은 기기에 설치된 전체 애플리케이션의 목록을 확인할 수 있는 권한입니다. 보통 어떤 앱을 구동하는데 다른 앱이 서로 상호작용해야 하는 경우 다른 앱이 설치되어 있는지 확인하기 위해 이 권한을 부여받게 됩니다. 예를 들면 은행 앱을 실행할 때 바이러스 백신이 같이 켜지는 것과 같은 것입니다.

하지만 이런 권한은 애플리케이션에 따라 꼭 들어가야 할 때도 있지만, 실제로 앱의 핵심 기능이 이 권한을 필요로 하는 게 아니라면 기기에 설치된 앱을 확인할 수 없게 제한해야 합니다.

다음은 Google Play가 해당 권한을 허용하는 목록입니다.
기기를 검색하는 앱
바이러스 백신
파일 관리 앱
인터넷 브라우저

은행 및 디지털 지갑과 관련된 금융 애플리케이션에도 임시 예외가 부여돼 백신처럼 보안 목적으로 설치된 앱의 리스트에 한해 설치 여부를 확인할 수 있도록 권한을 일부 허용했습니다. 기기에 백신이 설치돼 있는지 확인한 뒤 이를 실행해야 정상적으로 금융 애플리케이션을 사용할 수 있기 때문입니다.

해당 권한은 아래와 같이 앱 사용 권한 선언을 제출해야 하며, 선언하지 않으면 7월 12일부터는 앱 업데이트를 제출할 수 없게 됩니다. 이에 7월 12일까지 앱을 업데이트해야 합니다.

Accessibility API

Accessibility API는 장애가 있거나 일시적으로 장치와 완전히 상호 작용할 수 없는 사용자를 지원하기 위해 향상된 사용자 인터페이스를 제공하는 응용 프로그램입니다. 예를 들어, 운전 중이거나 어린 아이를 돌보고 있거나 매우 시끄러운 파티에 참석하는 사용자는 추가 또는 대체 인터페이스가 필요할 수 있습니다.

다음은 Accessibility API가 사용될 수 없는 경우를 설명한 것입니다.
사용자의 허락 없이 사용자 설정을 변경하거나 사용자가 앱 또는 서비스를 사용 중지하거나 제거할 수 있는 기능 차단(자녀 보호 기능 앱을 통해 부모 또는 보호자로부터 승인을 받았거나 기업 관리 소프트웨어를 통해 권한이 있는 관리자로부터 승인을 받은 경우 제외)
Android에서 기본 제공하는 개인 정보 보호 설정 및 알림 우회
사기성이 있거나 그 밖의 Google Play 개발자 정책을 위반하는 방식으로 사용자 인터페이스 변경 또는 활용

또한, Accessibility API는 원격 통화 녹음을 위해 만들어지지 않았으며 이 목적으로 해당 API를 요청할 수 없으며, Accessibility API 사용은 Google Play 등록정보에 명시해야 합니다.

만약, 장애인 직접 지원이 핵심 기능인 앱은 IsAccessibilityTool을 사용하여 공개적이며 적절한 방식을 사용해 직접 접근성 앱임을 지정할 수 있습니다. Accessibility API를 사용하지 않고도 필요한 기능을 제공할 수 있다면 더 범위를 좁혀 제한된 API 및 권한을 사용해야 합니다. (시행일: 2022년 7월 11일)

LIAPP 적용 시 민감한 정보 액세스 권한 가이드

이번 ‘권한’ 업데이트 정책을 살펴보면, 애플리케이션 보안 위협 탐지를 위해 권한 사용을 선언해야 LIAPP을 사용할 수 있는 것이 아닌가 생각될 수 있습니다. 최근, 대부분의 앱 보안 기능을 제공하는 서비스는 구글의 정책 변경으로 인해 Play Console을 통한 권한 사용 선언에 대해 공지하고 있습니다. 특히 이들은 앱을 변조/공격하는 행위를 차단하기 위한 방법 중 하나로 블랙리스트에 포함된 치트 앱이 설치된 것을 탐지하여 앱이 위험한 환경에서 실행되는 것을 예방하기 위해 QUERY_ALL_PACKAGES 권한 사용을 권장하고 있습니다.

하지만 QUERY_ALL_PACKAGES 권한은 상당히 민감한 정보를 담고 있기 때문에 실제로 앱의 핵심 기능이 이 권한을 필요로 하는 게 아니라면 기기에 설치된 앱을 확인할 수 없게 제한하고 있습니다. 만약 이 권한에 대한 사용을 요청했다 하더라도 Google이 이를 거절하게 되면, 앱이 등록되지 않거나 기존 앱이 삭제되는 사태가 발생하게 됩니다.

해당 권한을 사용하기 위해서는 양식 작성 과정과 심사, 앱 사이트 등록 거절에 의한 보안 절차가 필요하며, 이에 과도한 리소스가 할당되면 기업 입장에서는 비용의 손실로 연결됩니다. 하지만 LIAPP은 이런 기존의 보안 앱과는 다르게 Google Play의 정책에 따른 제한된 권한을 사용하지 않아도 애플리케이션의 해킹, 변조, 위협을 사전에 탐지하여 차단할 수 있습니다. 현재 LIAPP은 설치된 앱을 조회하는 방식이 아닌 위협 행위들을 탐지하고 있으며, QUERY_ALL_PACKAGES 권한을 삭제하여도 보안에 위협이 되지 않도록 대응하고 있습니다.

LIAPP은 설치된 앱을 검사하는 방식이 아닌 위협 행위를 기반으로 탐지하고 있어, QUERY_ALL_PACKAGES 권한을 사용하지 않아도 안전하게 앱을 보호하고 있습니다.

여러분의 애플리케이션에 보안 서비스 도입을 고민하시거나 Google 정책 업데이트로 인해 보안 기능에 관련된 권한 사용에 어려움이 있으시다면 언제든지 편하게 LIAPP TEAM으로 연락주시면 상세히 안내해 드리겠습니다.

LIAPP 홈페이지 바로가기

LIAPP, 최상의 서비스만을 제공합니다.!

profile
LIAPP TEAM은 전 세계 누구나 쉽게 보안을 누릴 수 있는 세상을 만들고 싶습니다.​ 작은 기업이라도 많은 노력으로 만든 서비스가 누군가로부터 위협받지 않도록, 그 가치를 잃지 않도록, 함께 지켜나가고 싶습니다🤗

1개의 댓글

comment-user-thumbnail
2023년 1월 5일

좋은 글 감사합니다~!

답글 달기