Android 앱 권한 설명
모든 Android 앱은 기기의 일부에 접근하기 위한 권한을 요청하지만 요청 화면에서는 이러한 권한이 실제로 앱에서 수행할 수 있는 작업을 거의 설명하지 않습니다. 아래 요약에서는 모든 주요 Android 권한을 다루고, 실제로 개인 정보 보호에 영향을 미치는 몇 가지 권한을 지적하며, 허용할 항목을 결정하기 위한 몇 가지 간단한 규칙을 제공합니다.
Android 권한이란 무엇입니까?
Android 권한은 앱이 기기에서 액세스할 수 있는 항목을 제어하는 보안 메커니즘입니다. 앱을 설치하거나 실행할 때 다양한 하드웨어 기능(카메라, 마이크) 또는 데이터(연락처, 위치)에 대한 접근을 요청할 수 있습니다. 이러한 권한을 이해하는 것은 개인 정보 보호 및 보안을 유지하는 데 중요합니다.
권한 카테고리
Android는 권한을 두 가지 주요 범주로 나눕니다.
일반 권한(자동 부여)
이러한 권한은 사용자 개인 정보 보호에 심각한 위험을 초래하지 않으며 자동으로 부여됩니다.
- 인터넷: 인터넷 액세스, 거의 모든 앱에 이 항목이 필요합니다.
- 떨리다: 장치의 진동 모터 제어
- SET_WALLPAPER: 기기 배경화면 변경
- 깨우기_잠금: 장치의 절전 모드 방지
- ACCESS_NETWORK_STATE: 네트워크 연결 상태 확인
- 블루투스: 페어링된 Bluetooth 장치에 연결
위험한 권한(사용자 승인 필요)
이러한 권한에는 개인 정보 보호에 영향을 미칠 수 있는 사용자 데이터 또는 장치 기능이 포함됩니다.
| 권한 그룹 | 액세스 대상 | 위험 수준 |
|---|---|---|
| 카메라 | 사진을 찍고 비디오를 녹화하세요 | ⚠️ 높음 |
| 마이크 | 오디오 녹음 | ⚠️ 높음 |
| 위치 | GPS 및 네트워크 기반 위치 | ⚠️ 높음 |
| 연락처 | 연락처 목록 읽기/쓰기 | ⚠️ 높음 |
| 전화 | 전화 걸기, 전화 상태 읽기, 통화 기록 | 🔴 매우 높음 |
| SMS | SMS 메시지 보내기, 읽기, 받기 | 🔴 매우 높음 |
| 저장 | 장치에서 파일 읽기/쓰기 | ⚠️ 중간 높음 |
| 달력 | 캘린더 이벤트 읽기/쓰기 | ⚠️ 중간 |
| 신체 센서 | 심박수 모니터, 만보기 | ⚠️ 중간 |
의심해야 할 때
앱의 기능과 일치하지 않는 경우 권한 요청에 대해 질문해야 합니다.
- 🚩 연락처 또는 SMS 액세스를 요청하는 손전등 앱
- 🚩 카메라 또는 마이크 액세스를 요청하는 계산기
- 🚩 전화 또는 통화 기록 액세스를 요청하는 배경화면 앱
- 🚩 SMS 권한을 요청하는 게임
- 🚩 한 번에 모든 권한을 요청하는 모든 앱
설치하기 전에 APK의 권한을 확인하는 방법
APK를 사이드로드하는 경우 설치하기 전에 권한을 확인해야 합니다.
- 전체 권한 목록을 추출하려면 APK 정보 도구를 사용하세요.
- 앱에 명시된 목적에 따라 각 권한을 검토하세요.
- Play 스토어 공식 앱과 권한 비교
- 의심스러운 것이 있으면 설치하지 마세요.
특별 권한: 설치 시 표시되지 않는 권한
Android에는 "정상" 및 "위험한" 권한 외에도 특별한 또는 앱팝 권한이라는 세 번째 계층이 있습니다. 이는 플랫폼에서 가장 강력한 기능으로, OS가 각 기능을 활성화하기 위해 별도의 고의적인 설정을 강제로 실행할 만큼 강력합니다. 이는 또한 맬웨어에 의해 가장 일반적으로 악용되는 것이기도 합니다. 사이드로드된 앱에서 이러한 요청을 하면 중지하고 이유를 물어보세요.
- 접근성 서비스 (BIND_ACCESSIBILITY_SERVICE: 원래 화면 판독기 및 신체 장애 지원용으로 설계되었습니다). 이 권한이 있는 앱은 화면의 모든 내용을 읽고, 입력한 내용을 확인하고, 사용자를 대신하여 버튼을 탭할 수도 있습니다. 기능이 명백히 접근성과 관련된 앱(TalkBack, 비밀번호 관리자의 자동 채우기 흐름, 화면 읽기 사전 앱)에만 부여하세요.
- 장치 관리자/장치 소유자: 앱이 장치를 잠그고, 데이터를 지우고, 비밀번호를 변경하고, 카메라를 비활성화할 수 있습니다. 이를 필요로 하는 소비자 앱은 거의 없습니다. MDM(엔터프라이즈 모바일 관리) 클라이언트는 합법적인 예외입니다.
- 다른 앱 위에 그리기 (SYSTEM_ALERT_WINDOW: 앱이 화면의 다른 모든 것 위에 칠할 수 있도록 합니다). 채팅 헤드 버블 및 오버레이 번역가가 합법적으로 사용합니다. 가짜 "상품 청구" 오버레이 아래에 "예, 내 계정을 비워주세요" 버튼을 숨기는 탭재킹 악성코드에 의해 악용되었습니다.
- : Android 11 이상에서 범위 지정 저장소 보호를 우회하고 앱이 공유 저장소의 모든 파일을 볼 수 있도록 합니다. 대부분의 앱은 대신 표준 사진/문서 선택기를 사용해야 합니다. 모든 파일 액세스 MANAGE_EXTERNAL_STORAGE
- 알림 수신기: 앱이 기기의 모든 알림을 읽을 수 있도록 합니다. 생산성 허브 앱을 위한 훌륭한 기능입니다. 남용 시 자격 증명 도용을 위한 완벽한 도구입니다(뱅킹 앱은 알림 스트림에 일회성 코드를 게시합니다).
- 알 수 없는 앱 설치: 호스트 앱을 사이드 로더로 전환합니다. 실제로 Play 스토어 외부에서 APK를 설치해야 하는 경우에만 브라우저나 파일 관리자에서 이를 설정한 다음 다시 끄세요.
주의해야 할 권한 조합
개별 권한은 이야기의 일부만 알려줍니다. 조합은 단일 요청보다 더 많은 정보를 제공하는 경우가 많습니다.
- 접근성 + 알림 수신기 + SMS: 이것은 고전적인 Android 뱅킹-트로이 목마 트리오입니다. 트로이 목마는 화면의 콘텐츠를 읽고 은행의 일회용 비밀번호 알림을 가로채며 사용자가 문자를 통해 OTP를 받으면 SMS 자체에서 OTP를 가져올 수도 있습니다. 이 세 가지를 모두 결합한 합법적인 소비자 앱은 없습니다.
- 카메라 + 마이크 + ALL_FILES_ACCESS + 배경 위치: 손전등, 계산기 또는 배경화면인 것처럼 가장하는 애드웨어 스타일의 감시 앱입니다. 거부하고 제거합니다.
- SYSTEM_ALERT_WINDOW + BIND_DEVICE_ADMIN: 랜섬웨어급 행동. 앱은 런처 상단에 "휴대폰이 잠겨 있습니다. X를 지불하세요" 화면을 표시하여 사용자가 비활성화하는 것을 방지할 수 있습니다.
- 다이얼러, 연락처 앱 또는 통화 녹음 도구가 아닌 앱의 경우 전화 + 연락처 + 통화 기록: 매우 주의하세요. 이 조합은 Google 자체가 해당 카테고리에 제공하는 매우 제한된 앱 세트 외에는 합법적으로 사용되지 않습니다.
효과적인 감사의 예
포럼에서 무료 "토치" APK를 발견하고 설치하기 전에 APK 정보 도구를 통해 실행했다고 가정해 보겠습니다. 매니페스트에는 다음과 같은 요청된 권한이 표시됩니다.
android.permission.CAMERA
android.permission.FLASHLIGHT
android.permission.INTERNET
android.permission.READ_CONTACTS
android.permission.READ_SMS
android.permission.RECEIVE_SMS
android.permission.READ_PHONE_STATE
android.permission.ACCESS_FINE_LOCATION
android.permission.SYSTEM_ALERT_WINDOW
토치 앱에는 기껏해야 카메라 권한(카메라 하위 시스템을 통해 LED에 액세스하기 위해), 손전등 권한 및 광고에 대한 인터넷 권한이 필요합니다. 해당 선 아래의 모든 내용은 정당하지 않습니다. READ_SMS + READ_CONTACTS + RECEIVE_SMS + 위치 + 그리기 앱은 위에서 설명한 감시 및 OTP 도난 서명입니다. 결정: 설치하지 마십시오. 파일을 삭제합니다.
사이드로드하는 모든 APK에 대해 동일한 종류의 검사를 실행하세요. 권한 감사 기능을 사용하면 어떤 바이러스 백신 앱도 사후에 정리할 수 없는 문제로부터 5분만 절약할 수 있습니다.
다양한 Android 버전에서 권한이 작동하는 방식
Permission UX는 거의 매년 재편되었습니다. 동일한 기본 기능이 Android 9와 Android 15에서는 매우 다르게 느껴질 수 있습니다.
- Android 6(2015):는 위험한 그룹에 대한 런타임 권한을 도입했습니다. 앱은 더 이상 설치 시 모든 것을 요구할 수 없습니다. 그들은 언제 그 기능을 사용했는지 물어봐야 했습니다.
- Android 10: 3단계 위치 권한(항상 허용/사용 중에만 허용/거부) 배경 위치가 별도로 부여되는 권한이 되었습니다.
- Android 11: 일회성 권한(단일 세션에 부여) 및 수개월 동안 사용하지 않은 앱에 대한 자동 권한 철회 기능입니다.
- 새로 설치된 앱에 대한 Android 13: 별도의 알림 권한; 포괄적인 READ_EXTERNAL_STORAGE를 대체하는 세분화된 미디어 권한(READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO).
- Android 14: 부분적인 사진/비디오 액세스를 통해 앱이 전체 라이브러리 대신 "이 사진만"을 요청할 수 있습니다.
- Android 15: 더욱 엄격한 포그라운드 서비스 제어; 선언된 서비스 유형은 실제로 사용되는 런타임 권한과 일치해야 합니다.
아직 이전 Android 버전을 사용하고 있다면 최신 보호 기능을 사용할 수 없습니다. 무엇을 설치할지 더욱 주의하세요.
자주 묻는 질문
권한을 거부하면 앱 작동이 중지되나요?
대부분의 앱은 정상적으로 성능이 저하됩니다. 카메라 버튼이 회색으로 표시되고 위치 인식 기능이 비활성화되며 나머지는 여전히 작동합니다. 잘못 작성된 소수의 앱이 충돌하거나 시작을 거부하는 경우, 그렇게 많은 것을 요구하는 앱이 정말로 필요한지 묻습니다.
앱에서 가끔 권한을 다시 요청하는 이유는 무엇인가요?
이전에 '이번에만'(일회성 허용)을 선택했거나, 장기간 앱을 사용하지 않아서 Android가 자동으로 권한을 취소했기 때문에 권한이 취소되었습니다. 두 동작 모두 의도적인 보호입니다.
APK를 설치하기 전에 APK가 선언하는 모든 권한을 볼 수 있나요?
예. APK를 APK 정보 도구에 놓으면 브라우저에서 AndroidManifest.xml를 구문 분석하고 바이너리 XML 형식을 디코딩하며 앱이 선언한 모든 uses-permission 항목을 나열합니다. "설치"를 탭하기 전에 해당 목록을 앱 카테고리에 대해 예상되는 것과 비교하세요.
장치에 대한 권한 관리
앱 권한을 검토하는 방법
- 설정 → 앱로 이동
- 앱 선택
- 권한를 탭하세요
- 필요에 따라 권한을 검토하고 전환합니다.
특정 권한이 있는 모든 앱을 보는 방법
- 설정 → 개인정보 보호 → 권한 관리자로 이동
- 권한 카테고리 선택(카메라, 위치 등)
- 해당 권한에 액세스할 수 있는 모든 앱 보기
- 필요하지 않은 앱의 액세스 권한 취소
Android 13 이상 권한 변경
최신 Android 버전에서는 권한 처리가 크게 개선되었습니다.
- 세분화된 미디어 권한: 전체 저장소 액세스 대신 앱은 특정 미디어 유형(사진, 비디오, 오디오)을 요청해야 합니다.
- 알림 권한: 앱은 이제 알림을 보내려면 권한을 요청해야 합니다.
- 자동 취소: 몇 달 동안 사용하지 않은 앱에 대한 권한이 자동으로 취소됩니다.
- 대략적인 위치: 정확한 위치 대신 대략적인 위치를 부여할 수 있습니다.
- 일회성 권한: 한 세션에만 카메라/마이크/위치 부여
앱 권한 감사를 위한 실제 규칙
권한은 귀하의 개인 정보를 얻거나 잃는 곳이므로 탭하는 것보다 권한을 읽는 것이 좋습니다. 앱의 용도에 맞지 않는 것이 있으면 질문하고, 사이드로드하기 전에 APK 정보 추출기를 통해 APK를 실행하세요. 잘 구축된 앱은 작동하는 데 필요한 것이 무엇인지 묻고 그 외에는 많은 것을 요구하지 않습니다.