Android에는 앱이 취할 수 있는 액션을 설정하는 권한이라는 시스템이 있습니다. Android 6.0에는 악성코드에 대해 매우 뛰어난 방어 메커니즘, 즉 앱의 권한 관리 시스템이 구현되어 있습니다. 이것은 앱이 실행할 수 있는 (또는 할 수 없는) 액션 세트를 정의하는 방법입니다. 기본적으로 모든 Android 앱은 고립된 환경(샌드박스)에서 작동하게 되어 있습니다. 앱이 샌드박스 외부의 데이터에 액세스하거나 편집 또는 삭제하려면 해당 작업에 대한 권한을 부여받아야 합니다.

권한은 몇 가지 범주로 분류되지만, 여기에서는 'Normal(보통)'과 'Dangerous(위험)'의 2종류로 다룹니다. Normal 카테고리의 권한에 속하는 액션은 인터넷에 접속, Bluetooth 연결 등입니다. 이것들은 기본적으로 허용되어 있고, 이용자가 다시 허용할 필요가 없습니다.

한편 앱이 'Dangerous' 카테고리의 권한을 요구하는 경우에는 이용자의 동의가 필요합니다.



Dangerous 카테고리의 권한


'Dangerous' 카테고리에는 이용자의 개인정보 보호 및 보안에 관련된 권한 그룹이 9개 있습니다. 각 그룹에는 앱이 요구하는 권한이 포함되어 있습니다.

이용자가 이 중 하나의 권한을 부여하면 권한과 같은 그룹에 있는 모든 권한이 앱에 자동으로 부여됩니다. 예를 들어 앱에 SMS 메시지를 읽을 수 있는 권한을 부여하면 앱이 SMS 메시지를 보내고, MMS 메시지 읽기 등 동일한 권한 그룹에 포함된 모든 작업이 허용됩니다.

Dangerous 카테고리에 속한 권한 그룹과 그 그룹에 속하는 작업은 다음과 같습니다.


◆ 달력

허용되는 작업 :
- 캘린더에 저장된 이벤트 읽기(READ_CALENDAR)
- 오래된 이벤트를 편집하고 새 이벤트 만들기 (WRITE_CALENDAR)

위험한 이유 : 디지털 스케쥴 수첩을 활용하는 경우, 앱이 일상과 업무를 완전히 파악하게 되어, 범죄자와 공유할지도 모릅니다. 그뿐만 아니라 버그가 있는 앱인 경우, 달력에 기록된 중요한 약속이 실수로 삭제되어 버릴 가능성도 있습니다.


◆ 카메라

허용되는 작업 :
- 스마트폰의 카메라를 사용한 사진이나 동영상 촬영
(CAMERA)

위험한 이유 : 깨닫지 못하는 사이에 앱에서 사진이나 동영상을 촬영할 수 있습니다.


◆ 연락처

허용되는 작업 :
- 연락처 읽기
(READ_CONTACTS)
- 연락처 편집 또는 신규 추가 (WRITE_CONTACTS)
- 계정 목록 액세스
(GET_ACCOUNTS)

위험한 이유 : 주소록의 정보가 통째로 빼돌려질 수 있습니다. 스팸을 대량으로 보내고자 하는 사람이나 사기를 치는 사람에게 주소록의 정보는 매우 매력적입니다. 또한 장치에 설치되는 앱(Google, Facebook, Instagram 등)에서 사용되는 계정 정보에 대한 액세스가 허용됩니다.


◆ 위치 정보

허용되는 작업 :
- 대략적인 위치 정보 액세스 (ACCESS_COARSE_LOCATION). 이 위치는 기지국 및 Wi-Fi 핫스팟의 데이터에 근거한다.
- 정확한 위치 정보 액세스 (ACCESS_FINE_LOCATION). 이 위치 정보는 GPS 데이터를 기반으로 한다.

위험한 이유 : 당신의 위치를 앱이 항상 파악하고 있는 상태입니다. 예를 들어 도둑질을 할려고 생각하는 누군가가, 당신이 집에서 떨어져 있다는 사실을 파악할지도 모릅니다.


◆ 마이크

허용되는 작업 :
- 마이크에서 음성 녹음
(RECORD_AUDIO)

위험한 이유 : 스마트폰 주변의 모든 소리를 앱이 녹음 가능합니다. 스마트폰에서 말할 때 뿐만 아니라, 하루종일 스마트폰 주변에서 펼쳐지는 대화내용을 모두 녹음 가능합니다.


◆ 전화

허용되는 작업 :
- 단말기의 상태 확인
(READ_PHONE_STATE). 앱은 당신의 전화번호, 현재 사용하고 있는 휴대전화 네트워크의 정보 및 통화 상태 등을 파악할 수 있습니다.
- 전화 발신
(CALL_PHONE)
- 통화 목록 읽기
(READ_CALL_LOG)
- 통화 목록의 변경
(WRITE_CALL_LOG)
- 음성 메일 추가
(ADD_VOICEMAIL)
- VoIP를 사용
(USE_SIP)
- 통화의 가공
(PROCESS_OUTGOING_CALLS). 앱은 발신자 확인, 통화 종료, 다른 번호로 전환 등을 할 수 있습니다.

위험한 이유 : 전화 권한을 부여할 경우, 앱은 음성 통신에 관련된 거의 모든 작업을 수행할 수 있습니다. 언제 누구와 통화했는지를 파악할 수 있을 뿐만 아니라 어디서든 전화를 걸 수 있으며, 사용자 부담의 유료 전화도 걸 수 있습니다.


◆ 바디 센서

허용되는 작업 :
- 심박수 모니터 등 특정 센서에서 취득한 상태 데이터에 액세스
(BODY_SENSORS)

위험한 이유 : (스마트폰에 내장된 가속도 센서가 아닌) 바디 센서와 액세서리를 사용하는 경우, 앱이 사용자의 몸 상태에 대한 데이터를 얻을 수 있습니다.


◆ SMS

허용되는 작업 :
- SMS 메시지 전송
(SEND_SMS)
- 저장된 SMS 메시지를 읽음
(READ_SMS)
- SMS 메시지의 취득
(RECEIVE_SMS)
- WAP 푸시 메시지를 검색 (RECEIVE_WAP_PUSH)
- 받은 MMS 메시지의 취득
(RECEIVE_MMS)

위험한 이유 : 앱은 수신된 SMS 메시지를 취득, 읽기, 전송이 가능합니다. 예를 들어, 어딘가의 누군가가 이 권한을 사용하여 당신이 필요하지도 않은 유료 서비스에 당신을 등록시킬 수 있습니다.


◆ 스토리지

허용되는 작업 :
- SD카드 및 기타 스토리지 읽기 (READ_EXTERNAL_STORAGE)
- 스토리지 또는 SD카드에 데이터 저장 (WRITE_EXTERNAL_STORAGE)

위험한 이유 : 스마트폰에 저장된 파일의 읽기, 수정, 삭제가 이뤄질 가능성이 있습니다.


앱 권한의 설정 방법


앱의 권한 요구에 의심스러운 점이 있다면 설치하지 마십시오. 그리고 권한을 부여할 때마다 신중하게 판단하십시오. 예를 들어, 사진처리 앱이 위치 정보를 요구하는 것은 부자연스럽습니다. 마찬가지로 지도 앱이나 네비게이션 앱은 GPS 데이터는 필요하지만, 연락처 목록이나 SMS 메시지에 액세스할 필요는 없습니다.

Android 6 이상에서는 앱이 Dangerous 카테고리의 권한을 필요로 하는 경우 매번 이용자에게 동의를 요구하도록 되어 있습니다. 물론 이러한 권한이 정말 필요한 경우에는 오류 메시지가 표시되고 앱이 제대로 작동하지 않을 것입니다.

덧붙여 허용된 권한을 확인하고 변경할 수 있습니다.

1) 설정에서 앱을 선택합니다
2) 확인하려는 앱의 이름을 클릭하고 권한을 선택하십시오. 앱에 부여된 권한이 표시됩니다.


◆ 접근성
시각이나 청각 장애인이 앱이나 장치를 조작하기 쉽게 하기 위한 권한입니다. 악성코드는 목적 달성을 위해 이러한 기능을 악용할 수 있습니다.

접근성 권한을 얻은 악성 앱을 통해 데이터(텍스트 입력 등 주요 목적은 암호 입수)를 도청할 수 있습니다. 그뿐만 아니라 Google Play 스토어에서 앱을 구매하는 것도 가능합니다


◆ 기본 SMS 앱
뱅킹 트로이목마(악성코드의 일종)는 기본 SMS 앱이 되길 원합니다. 기본 앱은 SMS 메시지를 읽거나 숨기기가 가능하기 때문입니다. 예를 들어, SMS 메시지를 읽어 인터넷뱅킹의 비밀번호를 입수한 다음, 스마트폰의 소유자 모르게 (SMS 메시지를 숨길 수 있기 때문에) 부정거래를 성립시키는 것이 가능합니다.


◆ 다른 앱에 표시
다른 앱 화면 위에 겹쳐서 표시하는 권한을 얻은 트로이목마는 일반 앱(모바일 뱅킹 앱과 소셜네트워크 앱 등)에 가짜 화면을 표시할 수 있습니다. 트로이목마가 표시한 가짜 화면에 개인정보를 입력해 버려, 입력한 데이터는 범죄자의 손에 넘어가 버립니다.


◆ 장치 관리자
이 권한은 암호 변경, 카메라 잠금, 장치의 모든 데이터를 삭제할 수 있습니다. 악성 앱이 권한을 얻으려고 노리는 경우가 종종 있습니다. 관리자 권한이 있는 앱은 제거하는 것이 어렵기 때문입니다.


◆ 루트 권한
이것은 가장 위험도가 높은 권한입니다. 기본적으로 이러한 권한이 앱에 부여되는 것은 아닙니다. 그러나 악성코드 중에는 시스템의 취약점을 악용하여 루트 권한을 얻으려고 하는 앱도 있습니다. 악성코드가 루트 권한을 획득하게 되면, 어느 보안 대책으로도 당해 낼 도리가 없습니다. 이용자가 어떤 권한을 부여했는지, 거부했는지에 관계없이 악성코드는 루트 권한으로 제멋대로 활동하기 때문입니다.

Android 6에서 출시된 새로운 권한 관리 시스템으로도, 악성코드로부터 완전히 보호하지 않는다는 점입니다. 예를 들어, 트로이목마 Gugi는 다른 앱 화면 위에 겹쳐서 표시할 수 있는 권한을 요청하고, 권한의 부여를 반복적으로 요구하여 이용자를 괴롭힙니다. 권한을 얻은 후에는, 얻고 싶은 모든 권한을 얻을 때까지 다른 앱 화면에 권한 요청을 표시합니다.



정리


많은 권한이 꼭 필요한 앱도 있습니다. 예를 들어 안티바이러스 앱은 시스템을 검사하고, 위험을 감지하고 방어를 취하기 위해 많은 권한을 필요로 합니다.

또한 시스템의 취약점을 악용하는 유형의 악성코드는 아무리 신중하게 대처하여도 막을 수 없는 경우도 있습니다.

출처 참조 번역
徹底解説:Androidアプリの権限
https://blog.kaspersky.co.jp/android-permissions-guide/14490/

徹底解説:Androidアプリの権限

Androidには、アプリが実行できるアクションを設定する権限というシステムがあります。怪しいアプリに強力な権限を与えないよう、権限を適切に設定するようにしましょう。

blog.kaspersky.co.jp

Posted by 말총머리
,