Если есть пиннинг, то его нужно снимать чтобы отловить эту ошибку. Впрочем, если речь идет о тестировании QA командой, то это легко ловится на QA сборках с отключенным пиннингом. Просто запускаем приложение и смотрим улетают ли какие-то запросы на сервер до фактической аутентификации по пин-коду/биометрии.
Да. И официальная документация это подтверждает. Да и в целом receiver нужен фактически для внутреннего пользования, чтобы получать сообщения от виджета. Экспортировать этот receiver для всех остальных не требуется. О чем также говорит официльная документация:
The <receiver> element requires the android:name attribute, which specifies the AppWidgetProvider used by the widget. The component should not be exported unless a separate process needs to broadcast to your AppWidgetProvider, which is usually not the case.
Все верно, receiver действительно не экспортирован и отправлять ему широковещательные сообщения нельзя. Но смысл эксплуатации этой уязвимости не в том, чтобы атаковать непосредственно receiver через механизм IPC (для чего как раз нужно иметь android:exported="true"), а в том, что приложение не осуществляет должного контроля аутентификации при взаимодействии с виджетом.
Все так. Я как раз попытался поднять эту тему в выпуске, что дескать есть биолог, у него есть компьютер, биолог изучает какие-нибудь азы питона и все. Зачем под это целое название придумали? Но Юра все объяснил.
Да, мы замахнулись сразу на нескольких монстров. В результате, действительно, больше прошлись по верхам. Но мне кажется, что в рамках подкаста практически невозможно досконально разобрать ни одну из озвученных тем. Нужно рисовать, показывать слайды, брать паузу «на подумать». Поэтому в итоге постарались вложиться в шоу-ноуты, чтобы у слушателей было достаточно материала для дальнейшего изучения.
В качестве философских размышлений — статья вполне хороша. Но если бы Вы представили больше каких-то чисто практических советов, то было бы сильно лучше. Например утверждение о том, что на архитектуру можно писать тесты. Я бы посмотрел на ваши примеры и инструменты потверждающие это высказывание.
Это распространенная в среде программистов шутка. Конечно же вы правы и не стоит добавлять абстракции ради абстракций. Да и порой для решениях проблем их добавлять не стоит. Нужно остановиться, подумать и все взвесить.
Если есть пиннинг, то его нужно снимать чтобы отловить эту ошибку. Впрочем, если речь идет о тестировании QA командой, то это легко ловится на QA сборках с отключенным пиннингом. Просто запускаем приложение и смотрим улетают ли какие-то запросы на сервер до фактической аутентификации по пин-коду/биометрии.
Да. И официальная документация это подтверждает. Да и в целом receiver нужен фактически для внутреннего пользования, чтобы получать сообщения от виджета. Экспортировать этот receiver для всех остальных не требуется. О чем также говорит официльная документация:
Все верно, receiver действительно не экспортирован и отправлять ему широковещательные сообщения нельзя. Но смысл эксплуатации этой уязвимости не в том, чтобы атаковать непосредственно receiver через механизм IPC (для чего как раз нужно иметь
android:exported="true"
), а в том, что приложение не осуществляет должного контроля аутентификации при взаимодействии с виджетом.Фактически так и есть когда речь идет о Frida. Это инструмент для runtime хуков на нужные методы.
Все так. Я как раз попытался поднять эту тему в выпуске, что дескать есть биолог, у него есть компьютер, биолог изучает какие-нибудь азы питона и все. Зачем под это целое название придумали? Но Юра все объяснил.
Благодарю, за обратную связь!
Кулаков Артем, руководитель отдела Android-разработки в компании Redmadrobot