연구원들은 Google Play 스토어의 많은 Android 앱이 사용자 데이터를 수집하기 위해 Android의 권한 모델을 우회하는 방법을 가지고 있음을 발견했습니다.
사용자의 인식에도 불구하고 Android는 실제로 모바일 OS로서 매우 안전합니다. 우리는 일반적으로 가장 약한 링크가 사용자라는 전제를 받아들입니다. 무엇을 설치하고 어떤 권한을 부여하는지 관찰하는 한 무단 액세스 및 데이터 배포로부터 안전해야 합니다. Android 앱이 귀하의 위치에 액세스하는 것을 거부하면 해당 앱은 귀하가 현재 어디에 있는지, 어디에 있었는지 알아낼 수 있는 방법이 없어야 합니다. 그러나 ICSI(International Computer Science Institute)의 연구원에 따르면 일부 앱 개발자는 Android의 권한 모델을 우회하는 방법을 찾아냈습니다.
에 따르면 씨넷, 이 연구는 지난달에 발표되었습니다. 개인 정보 보호 정책 지난 9월 Google과 FTC에 책임 있게 공개된 후입니다. 비록 FTC 웹사이트에 게재된 논문 팀이 분석에서 표시한 정확한 앱을 나열하지 않습니다(자세한 내용은 나중에 Usenix 보안 컨퍼런스 다음 달) 분석 방법과 앱이 Android의 권한 모델을 우회하는 방법에 대한 세부 정보를 제공합니다. 그만한 가치가 있기 때문에 Google은 보안 및 개인 정보 보호가 Google을 변화시킨다고 말합니다. Android Q에 도입되었습니다. 이러한 우회 방법을 종료할 예정이므로 이 백서는 Android 10에서 수행한 일부 플랫폼 변경에 대한 Google의 정당성에 대한 귀중한 통찰력을 제공합니다. 뛰어 들어 봅시다.
1000개가 넘는 앱이 Android의 권한 모델을 우회한 방법
연구원들은 두 가지 보안 우회 기술인 사이드 채널과 비밀 채널을 구별합니다. 사이드 채널 기술에는 보안 메커니즘에서 다루지 않는 방식으로 특정 정보에 액세스하는 작업이 포함됩니다. 예를 들어 Android Pie에 MAC 주소 무작위화가 도입되기 전까지 앱은 MAC 주소를 사용하여 기기의 위치를 추적할 수 있었습니다. 비밀 채널 기술에는 유효한 액세스 권한이 있는 한 서비스에서 그렇지 않은 서비스로 데이터를 전송하기 위해 협력하는 두 서비스가 포함됩니다. 예를 들어 위치 액세스 권한이 부여된 앱은 액세스 권한이 부여되지 않은 앱과 해당 데이터를 공유할 수 있습니다.
ICSI 팀은 미국 Google Play 스토어에서 가장 인기 있는 Android 앱 88,113개를 분석하여 1,000개 이상의 앱과 타사 라이브러리를 발견했습니다. Android의 보안 조치를 우회하기 위해 사이드 채널 및/또는 비밀 채널을 사용하여 사용자의 위치 데이터와 영구 식별자에 액세스할 수 있습니다. 장치. 팀이 분석할 88,113개 앱의 새 버전을 찾기 위해 정기적으로 Play 스토어를 스크래핑했기 때문에 전체 데이터 세트는 252,864개의 APK로 구성되었습니다. 그들은 처음에 각 앱의 동작을 테스트했습니다. 구글 넥서스 5X Android 6.0.1 Marshmallow를 실행했지만 나중에 결과를 다시 테스트했습니다. 구글 픽셀 2 Android Pie를 실행하여 공개 당시의 최신 릴리스를 기준으로 조사 결과가 여전히 유효하다는 것을 증명했습니다.
이 데이터 세트를 사용하여 팀은 동적 및 정적 분석을 사용하여 Android 권한 모델의 우회를 감지하는 방법을 개발했습니다. 즉, 팀은 앱의 런타임 동작을 감사(동적 분석)하거나 코드에서 잠재적으로 악의적인 동작(정적)을 검사하여 앱 동작을 연구했습니다. 분석.) 물론 악성 앱 개발자는 코드 난독화 및 동적 코드 로딩을 사용하여 정적 분석을 더 어렵게 만들거나 TLS를 사용하여 이러한 기술을 알고 있습니다. 가상화된 환경에서 앱이 실행되는 시기를 감지하기 위해 가로채기를 수행하므로 ICSI 팀은 정적 및 동적 분석(하이브리드 분석)을 혼합하여 사용했습니다. 테스트. 그 결과, 팀은 필요한 권한이 없는 앱에 의해 다음 데이터가 스크랩되고 있음을 발견했습니다.
- IMEI: IMEI는 고유하고 지속적인 식별자이므로 온라인 서비스에서 개별 장치를 추적할 수 있도록 스크랩하는 데 유용합니다. 팀은 다음과 같은 사실을 발견했습니다. 연어 그리고 바이두 SDK는 IMEI를 읽기 위해 비밀 채널을 사용하고 있었습니다. IMEI에 대한 합법적인 액세스 권한이 있는 앱은 합법적인 액세스 권한이 없는 다른 앱이 IMEI를 읽을 수 있도록 기기의 IMEI가 포함된 외부 저장소에 숨겨진 파일을 저장했습니다. 이러한 방식으로 Baidu의 SDK를 사용하는 것으로 확인된 앱에는 디즈니의 홍콩 및 상하이 테마파크 앱, 삼성 헬스, 삼성 브라우저가 포함됩니다.
- 네트워크 MAC 주소: 네트워크 MAC 주소는 고유 식별자이기도 하며 일반적으로 ACCESS_NETWORK_STATE 권한으로 보호됩니다. 연구원에 따르면 앱은 C++ 네이티브 코드를 사용하여 "보호되지 않은 UNIX 시스템 호출을 호출"했습니다. 팀은 Unity SDK를 사용하여 앱을 여는 42개의 앱을 식별했습니다. MAC 주소를 얻기 위한 네트워크 소켓 및 ioctl. 그러나 12,408개 앱 중 748개에 ACCESS_NETWORK_STATE가 부족하면서 문제의 코드가 포함되어 있음을 지적했습니다. 허가.
- 라우터 MAC 주소: ACCESS_WIFI_STATE 권한은 BSSID를 보호하지만 /proc/net/arp에서 ARP 캐시를 읽으면 앱이 권한 없이 해당 데이터를 얻을 수 있습니다. 연구원은 다음을 확인했습니다. 오픈X 이 사이드 채널 기술을 사용하는 SDK입니다.
- 지리적 위치: 연구원들은 Shutterfly 앱이 사진의 EXIF 메타데이터 위치 태그에 액세스하고 있음을 발견했습니다. 필요한 것은 READ_EXTERNAL_STORAGE 권한뿐입니다.
Android Q에서는 이제 Google에서 IMEI를 읽으려면 앱에 READ_PRIVILEGED_PHONE_STATE 권한이 있어야 합니다. 이제 Android Q를 실행하는 기기는 기본적으로 무작위 MAC 주소를 전송합니다. 마지막으로 안드로이드 Q 범위 지정 저장소 변경 사항으로 인해 앱이 사진에서 위치 데이터를 읽는 기능이 완화됩니다. 따라서 이러한 우려는 최신 Android 릴리스에서 해결되었지만 우리 모두 알고 있듯이 꽤 오래 걸려 최신 업데이트가 전파되도록 합니다.
결론
전반적으로 이 연구는 일부 앱이 권한을 통해 보호되어야 하는 데이터에 액세스하는 방법에 대한 명확한 시각을 제공합니다. 이번 연구에서는 구글이 '위험한' 권한이라고 부르는 것, 특히 블루투스, 연락처, SMS와 같은 권한을 건너뛰는 것의 하위 집합만 조사했습니다. 이 보고서에 대한 자세한 내용을 보려면 다음을 읽어 보시기 바랍니다. FTC에 제출된 서류.