Отстуствует проверка блокировки экрана
Описание
Приложение не проверяет, установлен ли на устройстве надёжный экран блокировки (ПИН-код, пароль, графический ключ или биометрия) до выполнения чувствительных операций — например, генерации ключей, расшифровки токенов или запуска платёжного сценария.
На Android такую проверку можно выполнить через:
val km = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
if (!km.isDeviceSecure) {
// Устройство без PIN/пароля — повышенный риск
}
или isKeyguardSecure
(до API 23). (Android Developers, mas.owasp.org)
OWASP MASVS прямо рекомендует убеждаться, что устройство защищено экраном блокировки перед использованием локального хранилища или KeyStore-ключей. (mas.owasp.org)
Потенциальные последствия
- Неавторизованный доступ к данным — злоумышленник, получив физический доступ к разблокированному устройству без PIN имеет существенно больше возможностей
- Обход биометрии: при использовании KeyStore-ключей с флагом
setUserAuthenticationRequired(true)
аутентификация не сработает, если на устройстве нет защищённого экрана блокировки. - Несоответствие требованиям MASVS-RESILIENCE и политикам банков/финтех-приложений о необходимости device-level security.
- Риск для корпоративных устройств — потерянный телефон без PIN значит мгновенный доступ к внутрикорпоративным данным.
Рекомендации
-
Проверяйте
isDeviceSecure()
/isKeyguardSecure()
и прекращайте работу чувствительных функций либо выводите предупреждение:if (!km.isDeviceSecure) { showLockRequiredDialog() return }
-
Откажитесь от генерации/использования KeyStore-ключей если устройство не защищено; предложите пользователю настроить PIN/Face/Fingerprint.
Дополнительные рекомендации
- Сообщайте пользователю причину ограничения (диалог «Для использования приложения установите PIN или биометрию»).
- На корпоративном уровне применяйте MDM-профили, запрещающие запуск приложения при отсутствии экрана блокировки.
Ссылки
- KeyguardManager —
isDeviceSecure()
(Android Developers) - OWASP MASVS — MASWE-0008: Missing Device Secure Lock Verification (mas.owasp.org)
- MASVS Test 0247 — Проверка защищённой блокировки экрана (mas.owasp.org)
- Android Developers — Secure sensitive activities (
FLAG_SECURE
) (Android Developers) - Medium — Detecting screen-lock state in Android (medium.com)