[BlackHat Asia 2020] Hey Google, Activate Spyware! – When Google Assistant Uses a Vulnerability as a Feature 분석
두비니
·2021. 5. 19. 16:52
발표명 : Hey Google, Activate Spyware! – When Google Assistant Uses a Vulnerability as a Feature
단어 정리
취약점 구현 과정
0. 배경 지식
::권한(Permission)에 대하여::
안드로이드 어플리케이션의 경우, 모든 권한에 대해서 사용자의 허락을 받아야 한다고 developer.android.com에 명시되어있음.
따라서 보통 안드로이드 앱은 다음과 같은 과정을 거침
- 권한 선언
2. 어플 내에 권한 확인
3. 유저에게 권한 허락
1. 취약점 발견
구글의 카메라 액티비티들을 살펴본 결과, exported 액티비티가 있다는 것을 확인할 수 있었다.
이 exported 액티비티는 implicit intents에 열려있다는 점에서 매우 위험하다. implicit intents의 사용 자체를 위해서는 당연히 필요한 부분이지만, 접근하는 과정에서 검증하는 과정이 전혀 없었기 때문에 이를 악용할 수 있다.
다음은 구글 카메라 어플리케이션 내에 exported 내역이 포함된 액티비티이다.
com.google.android.apps.camera.legacy.app.activity.main.CameraActivity
com.android.camera.CameraLauncher
com.android.camera.CameraActivy
com.android.camera.activity.CaptureActivy
com.android.camera.VideoCamera
com.android.camera.CameraImageActivity
com.android.camera.CameraVideoShortcuActivity
com.android.camera.CameraDepLinkActivity
com.android.camera.SecureCameraActivity
com.google.android.apps.camera.legacy.app.setings.CameraSetingsActivity
com.google.android.apps.camera.legacy.app.refocus.ViewrActivity
com.google.android.apps.camera.photobooth.activity.PhotbothActivity
com.google.android.lbraries.social.license.LicenseMenuActivity
그리고 다음 액티비티들은 다음과 같은 클래스들로 연결되었다.
com.google.android.apps.camera.legacy.app.activity.main.CameraActivity
com.google.android.apps.camera.legacy.app.activity.CaptureActivity
com.google.android.apps.camera.legacy.app.activity.CameraImageActivity
com.google.android.apps.camera.legacy.app.activity.CameraDeepLinkActivity
com.google.android.apps.camera.legacy.app.activity.SecureCameraActivity
com.google.android.apps.camera.legacy.app.settings.CameraSetingsActivity
com.google.android.apps.camera.legacy.app.refocus.ViewerActivity
com.google.android.apps.camera.photoboth.activity.PhotbothActivity
com.google.android.libraries.social.license.LicenseMenuActivity
그리고 다음과 같은 Action을 취할 수 있다.
android.media.action.IMAGE_CAPTURE //캡쳐
android.media.action.IMAGE_CAPTURE_SECURE
android.media.action.STIL_IMAGE_CAMERA //카메라
android.media.action.STIL_IMAGE_CAMERA_SECURE
android.media.action.VIDEO_CAPTURE //영상 캡처
android.media.action.VIDEO_CAMERA //영상 카메라
추가적으로 분석해 봤을 때, 다음과 같은 점을 알아 낼 수 있었다.
android.media.action.VIDEO_CAMERA
가 카메라를 실행시키고 즉시 녹화를 시작한다.
android.intent.extra.USE_FRONT_CAMERA
는 전면카메라를 실행시킨다.(없는 경우 후면카메라)
android.intent.extra.TIMER_DURATION_SECONDS
의 경우에는 최소 3초 이후에 사진을 찍을 수 있도록 하는 기능이다.
2. 취약점 실현
이렇게 발견한 취약점을 가지고는 다음과 같이 활용할 수 있다.
- 권한이 전혀 없는 rogue application 생성
- google assistant 호출을 통해 카메라 실행
결론 : 카메라 관련 권한을 포함한 모든 권한이 없지만, 원할 때 영상/사진 촬영 가능
<< 실제 Checkmarx사에서 만든 rogue app
3. 취약점 활용
이 취약점을 가지고, 실제로 악용이 되면 어떤식일까에 대해서 더 연구함.
우선 몇가지 방해사항이 있었음
- 카메라가 실행이 되면 화면이 바뀌기 때문에
- 카메라에서 사진/영상촬영을 할 때 소리가 발생
- 셔터 소리에 관련하여셔터소리를 한번에 뮤트시키는 방법은 존재하지 않았음. 그러나,
adjustStreamVolume
함수의ADJUST_LOWER
플래그를 사용할 경우, 볼륨이 0이 될때까지 조정할 수 있었음. - 그리고 이건 의도하지 않았던 부분이라고 판단되어 구글 팀에 문의했고, 이 부분에 대해서 CVE를 인정받음.
- 화면 상황에 대하여Proximity Sensor를 사용할 경우, 책상 위에 핸드폰을 뒤집어 놓거나, 주머니 안에 넣어놓거나, 핸드폰을 사용하지 않을 때를 알 수 있기 때문에 이를 악용할 수 있다는 것을 알아냈음.
4. 추가 권한 획득 및 시나리오 작성
연구팀은 여기서 그치지 않고, 단순히 카메라를 실행시키는 것 뿐이 아니라 다른 권한도 획득이 가능한지 연구하였다.
- 저장공간 권한 가장 먼저 저장공간에 대한 탐구를 하였다. 2015년의 조사에 따르면 반 이상의 어플리케이션이 저장공간에 대한 권한을 묻는 것으로 나타났다. 그리고 대부분의 사람들이 이 권한을 큰 고민 없이 허용하기 때문에, 이를 활용하였다.
- 위치 권한Google Maps에서 Location tags가 켜져있는 상황이라면, 이 정보 또한 google assistant를 통해서 얻어낼 수 있었다고 한다.이 권한이 특히나 더 위험한 이유는, 특정 시간마다 위치를 수집할 경우, 피해자의 이동 경로 모두 수집할 수 있기 때문이다.
Checkmarx사는 추가로 획득할 수 있었던 권한들을 종합하여 악성 날씨 앱을 개발하였습니다.
그 결과 google assistant를 사용한 스크립트를 통해서 카메라는 물론, 현재 기기가 위치하고 있는 위치정보까지 얻어낼 수 있었습니다.
따라서 이 취약점은 구글에서 CVE로 인정을 받았고, 이에 대해서 수정하겠다고 밝혔습니다.
'보안동향' 카테고리의 다른 글
클라우드 컴퓨팅 패러다임 및 보안이슈 분석 (0) | 2023.09.19 |
---|---|
[Review] Gartner Top Strategic Technology Trends for 2021 (0) | 2021.07.07 |
Uploaded by Notion2Tistory v1.1.0