접근성은 사용자에게 필수적입니다. 위험은 이유 없이 접근 권한을 부여하고 이를 악용하는 데서 생깁니다.
악성코드는 항상 메시지 암호화를 깨야 하는 것은 아닙니다. 기기가 표시나 입력을 위해 처리하는 데이터에 접근할 수 있다면 암호화 전이나 복호화 후의 내용을 볼 수 있습니다. 접근성 기능과 오버레이 창의 악용이 두 가지 예이지만, 작동 방식은 서로 다릅니다.
또한 Accessibility나 플로팅 창이 있는 모든 앱이 악성코드는 아닙니다. 화면 읽기 프로그램과 보조 도구는 많은 사용자에게 필수적입니다. 목표는 접근 권한을 알고 부여하고 악용을 줄이는 것이지, 접근성 기능을 없애는 것이 아닙니다.
혼동하면 안 되는 세 가지 위협
| 방식 | 공격자는 무엇을 하나요? | 무엇을 단정하면 안 되나요? |
|---|---|---|
| 가짜 창 또는 양식 | 실제 앱과 비슷한 인터페이스에 정보를 입력하도록 유도합니다 | 모든 Overlay가 아래 창의 텍스트를 자동으로 읽는 것은 아닙니다 |
| 클릭 탈취 또는 Tapjacking | 사용자가 다른 컨트롤을 누르도록 속입니다 | 투명한 레이어가 있다고 모든 키 입력이 기록되는 것은 아닙니다 |
| Accessibility 서비스 악용 | 서비스에 허용된 기능을 사용해 관찰하거나 작업을 수행합니다 | 모든 버전에서 모든 뷰에 대한 접근이 같은 것은 아닙니다 |
공식 Tapjacking 가이드는 인터페이스가 완전히 가려진 경우와 부분적으로 가려진 경우를 구분합니다. 창 유형, Android 버전, 앱 설정이 결과에 영향을 줍니다.
Accessibility는 어떻게 민감한 데이터에 접근하나요?
접근성 서비스는 자신의 기능 범위 안에서 인터페이스 정보를 받거나 사용자를 대신해 작업할 수 있습니다. 악성 서비스는 같은 기능을 악용할 수 있습니다. 따라서 명확한 이유가 없는 앱에 이를 활성화하는 것은 가벼운 결정이 아닙니다.
하지만 “모든 서비스가 모든 앱의 모든 텍스트를 읽을 수 있다”는 주장은 지나치게 절대적입니다. 뷰 구조, 데이터 제공 방식, 운영체제 제한이 중요합니다. Android는 민감한 뷰를 위해 accessibilityDataSensitive 같은 기능을 제공합니다. 사용 방식과 동작은 대상 버전에서 시험해야 합니다. 악성 서비스로부터 데이터를 보호하는 방법에 대한 Google의 설명.
FLAG_SECURE가 하는 일과 하지 못하는 일은 무엇인가요?
FLAG_SECURE는 스크린샷과 안전하지 않은 출력 장치에 내용을 표시하는 것을 제한하는 데 사용됩니다. 이 플래그만으로 접근성의 접근 규칙, 가짜 양식 또는 텍스트를 추출하는 모든 방법을 통제하지는 못합니다. 다른 기기로 화면을 촬영하는 것도 별개의 문제입니다.
Android는 오버레이 창을 줄이기 위해 앱에 HIDE_OVERLAY_WINDOWS 같은 다른 도구도 제공합니다. 호환성, 버전 제한, 접근성 기능이 필요한 사용자에게 미치는 영향을 확인하지 않고 어느 것이든 “스파이 방지 버튼”이라고 소개해서는 안 됩니다. 민감한 액티비티 보호 가이드.
접근 권한을 확인하는 사용자 체크리스트
- 기기 설정에서 접근성, 다른 앱 위에 표시, 알림 접근 권한이 있는 앱을 각각 확인하세요. 설정 경로의 이름은 제조사와 버전에 따라 다릅니다.
- 각 항목에 대해 어떤 구체적인 기능이 그 접근을 필요로 하는지 물어보세요. 신뢰할 수 있는 화면 읽기 프로그램의 접근과 낯선 손전등 앱의 접근은 같지 않습니다.
- 알 수 없는 파일을 설치한 직후 접근 활성화를 재촉한다면 추가 확인이 필요하다는 신호로 보세요. 권한을 요청한다는 사실만으로 악성코드임이 증명되지는 않습니다.
- 로그인 화면의 모습이 의심스럽다면 민감한 정보를 입력하지 마세요. 평소 사용하던 방식으로 앱을 열고 주소나 설치 출처를 확인하세요.
- 불필요한 접근 권한을 취소한 뒤 필요한 보조 도구가 작동하는지 시험하세요. 보안 때문에 소유자가 기기를 사용할 수 없게 되어서는 안 됩니다.
비밀번호나 세션이 이미 노출되었을 가능성이 있다면 권한 취소만으로는 충분하지 않습니다. 신뢰할 수 있는 기기에서 활성 세션과 계정 복구 수단을 확인하고 위험에 노출된 비밀번호를 바꾸세요.
개발자는 무엇을 시험해야 하나요?
로그인 화면, 작업 확인 화면, 민감한 정보를 표시하는 화면을 각각 평가하세요. 가려진 터치와 부분 가림을 시험해야 하며, 스크린샷 시험만으로는 충분하지 않습니다. 그런 다음 실제 화면 읽기 프로그램과 보조 도구로 같은 흐름을 확인하여 보안 방어가 정당한 접근을 막지 않도록 하세요.
시험 보고서에는 Android와 앱의 버전, 서비스 유형, 권한, 실제로 볼 수 있었던 데이터를 기록하세요. 제한적인 시험으로 모든 기기에 대한 결론을 내릴 수는 없습니다.
메신저 암호화의 경계
Livara 위협 모델은 감염되었거나 잠금이 해제된 기기를 내용 보호 보장 범위에서 제외합니다. 따라서 알고리즘 이름이나 키 교환의 포스트 양자 특성이 모든 사용자 인터페이스 악용을 방어하는 것은 아닙니다. 메시지 경로 보호, 기기의 건전성, 권한 통제를 서로 다른 세 가지 점검으로 다루세요.



