- Видео 19
- Просмотров 19 569
Android Guards
Россия
Добавлен 28 май 2020
Официальный канал сообщества Android Guards.
⚡Срочный анонс! Канал меняет направление. 🙉
⚡Срочный анонс! Канал меняет направление. 🙉
Просмотров: 530
Видео
📚 Pro книги: Android глазами хакера
Просмотров 1,7 тыс.3 года назад
Обзор книги "Android глазами хакера" (Е. Зобнин). Рассказываю о чем книга, стоит ли она вашего внимания и какие плюсы/минусы я для себя вынес. ⁉️ FAQ: github.com/Android-Guards/faq
🎙 Community Podcast #3: Травим баги DAST-ом
Просмотров 4503 года назад
Продолжая тему анализаторов приложений говорим про Dynamic Analysis Security Testing (DAST) или попросту "динамику". А чтобы не говорить ерунды, я решил позвать ребят из компании Stingray, которые как раз пилят такой анализатор. Зачем они вообще за это взялись, с какими проблемами столкнулись, а также можно ли взять MobSF и не париться вы узнаете в этом выпуске. Show notes: 🐟 Система «Cтингрей»...
🕵️♂️ По следам Google I/O 2021: Безопасность и приватность 😎
Просмотров 7243 года назад
На Google I/O 2021 нам прямо со сцены заявили, что теперь "privacy by default" и вообще все будет хорошо. В этом видео я расскажу про плюшки для пользователей, проблемы для разработчиков и покажу немного кода для иллюстрации изменений в Android 12. Полезные ссылки: 📜 "Главная ссылка " по Android 12: developer.android.com/about/versions/12/overview 1️⃣ First preview of Android 12: android-develo...
👨🎓Открытая лекция: Основы информационной безопасности для мобильных разработчиков
Просмотров 1,9 тыс.3 года назад
Лекция прочитана в рамках "Робопрактики" для мобильных разработчиков. Содержание лекции: 1. Основные понятия из мира ИБ 2. Моделирование злоумышленников и угроз 3. Основы криптографии (симметричная, асимметричная, цифовые подписи, сертификаты, хэш-функции, KDF-функции) 4. HTTP vs HTTPS, MITM и SSL Pinning 5. Основные угрозы мобильных приложений Материалы к лекции: 👮♀️RBAC: en.wikipedia.org/wik...
🎙 Community Podcast #2: Сергей Тошин | Bug Bounty, Oversecured и жопочасы
Просмотров 8583 года назад
В этом выпуске общаемся с Сергеем Тошиным - главным русским хакером по версии Google Play Security Rewards Program. Сергей рассказывает о своем опыте участия в bug bountry программах на HackerOne, работе в Positive Technologies и создании собственного стартапа Oversecured. Тайминг: 00:00 Intro 00:51 Приветствие 02:22 Как попал в Android Security 06:50 Как начал участвовать в bug bounty 12:39 На...
🛠 How-To: Биометрическая аутентификация
Просмотров 1,6 тыс.3 года назад
Реализация биометрической аутентификации с помощью библиотеки JetPack: Biometric. Показано два варианта реализации, с шифрованием и без него. В качестве бонуса - красивый обход бага альфа версии библиотеки Biometric. 💬 Чат сообщества: t.me/android_guards 👨🔬 Новости и всякое полезное: t.me/android_guards_today 🏰 Финальная реализация: github.com/Android-Guards/how-to-biometric 📄 Официальная доку...
Как взломать PIN-код | Теория, практика и векторы атаки
Просмотров 9333 года назад
Рассматриваем типичные реализации аутентификации по PIN-коду, ищем в них проблемы и эксплуатируем их. Также разговариваем про то, как выжать максимум из локальной реализации и разбираемся в нюансах серверной аутентификации по PIN-коду. 00:00 Вступление 00:44 Новости про канал и проекты 06:21 Проблемы локальной реализации PIN-кода 11:29 Обходим PIN-код в реальном приложении 27:55 Про серверную р...
🎙 Community Podcast: Павел Васильев | Bluethooth, NFC и Диффи-Хэллман под эллиптическими кривыми
Просмотров 2663 года назад
Обсуждаем внешние криптографические модули для смартфонов и особенности BLE. Выясняем, что может типичный пограничник сделать с вашим телефоном если на нем разблокирован загрузчик, режем test-point-ы у Siemens A60 и призываем всех шифровать SharedPreferences.
Как прикрутить и отломать SSL pinning. CetificatePinner & NSC vs Reverse Engineer
Просмотров 3,6 тыс.3 года назад
Автоматическое откручивание SSL pinning-а не всегда хорошо работает и порой приходится выпиливать его руками, чтобы посмотреть трафик приложения. Напишем приложение с двумя видами пиннинга сертификатов и обфусцируем его (чтобы было интереснее). А потом покажу как с таким приложением будет действовать взломщик. P.S. Где-то на 9й минуте, после запуска эмулятора пропал звук и пришлось вырезать кус...
Хранение ключей API в нативном коде
Просмотров 2 тыс.3 года назад
Рассказываю и показываю как хранить всякую конфиденциальную информацию в нативном коде и почему так делать не надо. 0:00 Intro 0:10 О чем стрим 1:46 Разбор статьи Store API Keys Securely 6:46 Разбор кода приложения с нативной библиотекой 16:10 Анализ библиотеки в Ghidra 25:30 Перехват ключей с помощью Frida 30:46 Подведение итогов, ответы на вопросы
Открытая лекция: Reverse Engineering
Просмотров 5594 года назад
Теоретическая лекция по основам reverse engineering-а для студентов 5-го курса Самарского университета, специальность Информационная безопасность автоматизированных систем. Презентация тут: speakerdeck.com/fi5t/reverse-engineering
Authenticate me. If you can...
Просмотров 5734 года назад
Доклад на GDG Taganrog про то как делать аутентификацию в android-приложениях. Построен на базе одноименной статьи: habr.com/ru/company/redmadrobot/blog/475112/. Звук не очень, увы =(
Лучший !!! Единственный человек которого приятно слушать и все понятно !!!
@AndroidGuards Приветствую! Отличный материал, спасибо за контент. А где выпуск про keyStore? о котором речь 23:05 :)
годнота спасибище
Здравствуйте! Как вы считаете прям совсем зелёному новечку будет интересна данная книга? в программировании я не сильно силён, программировал на python :)
Совсем зеленому я бы не рекомендовал. Попробовать можно, но придется "пробивать стены". Лучше сначала разобраться в Java/Kotlin и Android.
С 1 апреля!)
Мог бы и оглавление для затравки прочитать
А чо не пехепе?
Давай жги
Канал будет менять название? и в телеге? А то как то так и затерять ваш контент можно. А еще, где моя футболка?)
а насколько этот процесс будет отличатся если будем иметь дело с рилизным билдом а не дебажным, и что если это app bundle а не apk?
Здравствуйте, в тайм-коде 1:36:42 упомянаеться модель атаки - melory. Можно пожалуйста указать источник этого термина, поисковик не чего не находит по этому запросу.
Malory это модель активного злоумышленника, который может вмешиваться в канал. Термин введен скорее всего Брюсом Шнайером и упоминается в книге "Прикладная криптография". Список всех моделей можно посмотреть здесь: ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B8%D1%81%D0%B0_%D0%B8_%D0%91%D0%BE%D0%B1
@@AndroidGuards Спасибо за ответ.
Это лекция в универе?) где лабы?)
Прочитал описание…
Красава
Добрый день, у меня вопрос появился, а как сделать так, что после идентификации, переходить на другую странницу приложения, а то у меня получилось слишком странно
Путь с дизассемблером более универсальный: ключи вытащить/пропатчить и тд.
На каком языке программирования приводятся примеры в данной книге?
Java и Kotlin.
@@AndroidGuards спасибо мне как раз на java нужно)
На сейчас можно поставить пароли на приложение в настройках устройства что с ними?
В стоковом android нет такой функции, насколько мне известно. Поэтому подобные механизмы это всегда надстройка от вендора и безопасность каждой конкретной реализации нужно разбирать отдельно.
@@AndroidGuards ну у меня MIUI может в этом дополнении
Спасибо большое за стрим
Добрый день, Артем, хотел Вас поблагодарить за отличный обзор! Книга очень интересная, для себя узнал много нового. Могли бы вы порекомендовать что-то еще интересного и глубого по Андроиду или может в целом по инженерии. Просто в основном книги по Андроиду, это рассказы про апи или для новичков, что не особо интересно. Спасибо!
Вот пара вещей, которые стоит прочитать. Они дадут более глубокое понимание ОС с позиции инфобеза и погрузят в "хакерские техники", знать которые полезно независимо от стороны за которую приходится играть: 1. Android Security Internals: nostarch.com/androidsecurity 2. Android Hacker's Handbook: www.amazon.com/Android-Hackers-Handbook-Joshua-Drake/dp/111860864X
@@AndroidGuards Спасибо!
Книжку "Хакинг" читали? Вроде недавно вышла
А можно ссылку или полное название? Много чего называется "хакинг". Например есть "Хакинг. Искусство эксплойта (2018) Эриксон Д."
Мне действительно нравится ваш контент, Любовь из Индии
Thank you so much! Do you watch these videos with auto-translated subtitles?
@@AndroidGuards Yes
@@gta-ks1mi It sounds bad for me =( I've looked though auto-translated subtitles and found out that the quality of these subtitles is not very good. I'll consider preparing my own English subtitles for videos on this channel.
@@AndroidGuards Thank you so much ,It would be very beneficial for me.Earlier I had to translate the Russian subtitles using Google, I would really appreciate if you would keep english subtitles for your videos,Thank you!!☺️☺️
Спасибо за обзор!
Канал просто кайф, есть ли чат в тг или какая то группа ?
t.me/android_guards - чат t.me/android_guards_today - канал с новостями, анонсами и прочими полезностями
после 15:25 счётчик супер, поломался)) Круто, спасибо. отличная идея делать обзор книг !!
Зато в конце получилось красивое число =) Но да, слова-паразиты даже техника не выдерживает и ломается...
Где ссылка на статью на хабре?)
habr.com/ru/post/541190/ - вот же она :D
круто, спасибо!
9:15 Но ведь это в итоге на пользу приложению, ведь уязвимость после этого исправили, во всяком случае должны были :) По этой же причине в опенсорсе вообще меньше уязвимостей
Нюанс в том, манипуляции с отлучением приложения от рекламы это не совсем уязвимость ;) Там нужно не исправлять, а скорее сильнее запутывать этот код. Чтобы взлом не сводился к простому вырезанию одной строчки кода.
Спасибо за обзор!
Как идея для пентеста опенсорсного приложения - KDE Connect. Это приложение для связи между собой ПК (Linux+KDE) и телефона. В случае успеха, есть вероятность сделать что-нибудь интересное на хост машине)
Звучит интересно. Закинь ссылку сюда пожалуйста. Может руки дойдут.
Круто
Просто гениально просто о не просом. Спасибо за труд!
Дай бог здоровья автору!
Шикарное видео и отличный обзор! Посмотрел с удовольствием!
Лайк, репост, подписка :D
А что за "следующая" лекция про мобильную безопасность упоминается? Она есть в открытом доступе где-нибудь?
"Следующая лекция" также проходила в рамках "робопрактики", ее читал не я и у меня нет полномочий выкладывать ее в открытый доступ. Но если есть интерес, я могу выложить свою, которая примерно двух летней давности.
@@AndroidGuards Интерес есть, если не сложно выложи пожалуйста
@@dmitry-dmitry Нашел ту лекцию которую обещал, посмотрел на нее трезвым взглядом и решил, что она не очень хорошего качества. Воспринимать ее можно было только находясь непосредственно в аудитории. В текущем варианте мне не нравится звук, картинка и динамика повествования. Но про интерес я понял, подумаю, что можно такого же, но лучшего качества сделать.
Порадовало то что гугл начал топить за секур элементы - это отдельная важная история. Гугл потихоньку вводит апи для работы с ними ещё начиная с девятого андроида, но пока что для сертификации устройства под андроид их наличие не являлось обязательным, и де-факто такие чипы стоят только в пикселях, и гуглу это не нравится, потому что они дают огромное количество новых возможностей, но ни один из вендоров не чешется чтобы бежать и распаивать их на платах своих устройств. Я уверен что гугл начинает работу в эту сторону по нескольким причинам: 1. eSIM карты. Они набрали некоторую популярность уже и будут становиться только популярнее в будущем. Все айосы выпущенные за последние пару лет их уже поддерживают, а на стороне андроида пока поддерживает только пиксель и связано это исключительно с тем что для этого нужен внешний чип ну или нативная поддержка в трастзоне на ARM чипах. 2. NFC на телефоне это очень удобно, но в то же время лишено главного преимущества NFC - энергонезависимости. Телефон сел и всё - оплатить уже ничего нельзя. Использование секурэлемента на отдельном чипе вместо основного кристалла позволит творить такие крутые вещи как например оплата покупок или использование проездного даже на полностью разряженном и выключенном устройстве. Т.е. чип сможет работать автономно, запитываясь непосредственно во время прикладывания к терминалу оплаты. Я работал некоторое время с секурити чипами от NXP и на самом деле есть возможности развивать весь этот физический интерфейс даже за пределы обычных сценариев "приложил - оплатил". Насколько мне известно у NXP с гуглом грандиозные планы на совместные проекты, но я не уверен могу ли я о них рассказывать из-за NDA. 3. Аппаратный safetynet. Одна из любимых тем нашего уютного чатика в телеге) Будут выделенные чипы - будет возможность у гугла пробивать любые способы сокрытия рута. Пока мы ещё можем наслаждаться последним временем работы magiskhide, но в будущем скрыть изменения в системе будет уже невозможно, и это в общем-то правильно. 4. Учитывая что в будущем паспорта, водительские права и прочие штуки также смогут переехать на NFC взаимодействие через смартфон, то гугл очень заинтересован начать подгонять вендоров с интеграцией чипов в новые устройства. Эпл вот на недавнем WWDC уже рассказал о какой-то стандартизации и поддержке физических замков которые смогут открываться по NFC, гуглу очень стоит поторопиться. Я лично обожаю всё что связано с безопасностью, информационной и физической, криптографию и все её крутые прикладные возможности. Я уверен за развитием всей этой движухи будет очень интересно наблюдать, хоть я и отдаю себе отчёт в том что это всё максимально будет завязано на систему и скорее всего ограничено для пользователей и разработчиков
Спасибо за отличное видео и вложенный в него труд. Крутой детальный обзор, как раз то что нужно вместо кратких обзоров внешних изменений. Посмотрел с удовольствием. Наброшу несколько своих мыслей по поводу услышанного. По поводу значков камеры и микрофона - я тут скорее отношусь скептически. Считаю что сделано это в основном дабы соответствовать айосу и нынешним модным трендам на приватность. Их появление это безусловно круто и правильно, но ИМХО, пользы от этого не очень много. Во-первых, я думаю что эпоха зловредов которые напрямую смотрят в камеру или слушают в микрофон прошла, а для своих личных целей, типа сбора информации о пользователе, и прослушивания разговоров гугл всё равно оставит лазейки в виде разных системных компонентов которые для "анализов входа в целях улучшения качества обслуживания и прочее" будут получать доступ напрямую из системных гугл сервисов, как и возможность через какие-нибудь глубоко системные штуки заглядывать во фронтальную камеру для грядущего рынка рекламы проверяющей эмоциональную реакцию и внимание. Во-вторых, гугл как и эпл прекрасно осведомлены об особенностях рынка сбора персональных данных, и обе компании являются одними из самых активных его участников. Эпл надувая щёки от важности говорит что "приватность - это айфон" и вводит свои "разрешить/запретить этому приложению вас отслеживать" чтобы получить одобрение аудитории (кстати, готов поспорить, что гугл тоже сделает это в андроид 13). Гугл вводит большие значки камеры и микрофона. Всё это попытки дёшево показать свою заботу о клиентах, на деле запустив в них тентакли ещё глубже. Я считаю что как и в случае с эппл, всё это является лицемерием. И гугл и эпл отлично понимают проблему утечки различных данных и возможностей построения фингерпринтов устройств и конечных пользователей, как именно это делается и что именно для этого необходимо ограничивать (разные несменяемые идентификаторы, доступ к уникальной информации о системе который не закрыт вообще никакими пермишенами и т.д.) и как ограничивать (несколько другой подход к разрешениям, более строгие и гранулированные ограничения, гранулированные ограничения по доступу в сеть, выбор пользователем возможности способа ограничения доступа к информации). И вот в эту сторону как раз не то чтобы много что делается, по крайней мере в лагере андроид, про айос - не в курсе. Это умеют делать для себя энтузиасты, но всё это требует рута и/или модификаций системы и не может стать по настоящему массовым. Я уверен что реальной целью всего спектакля является расталкивание локтями расплодившихся конкурентов по жирному рынку таргетированной рекламы. Гугл и эпл хотят выдавить с рынка крупных игроков вроде фейсбука и стать монополистами на своих платформах, тем более что помешать им фейсбук может чуть менее чем никак. Для нас, конечных пользователей, в этом безусловно есть своя выгода, но о говорить об этом как о революции приватности - как минимум странно. Тема с гибернацией порадовала. Многие приложения садят батарею тем что постоянно стартуют на полученные пуши плюс на разные бродкасты в системе. Здесь похоже пользователь будет сам решать что именно он хочет видеть. Нравится, годно. Если я понял правильно из пары кратких обзоров то private compute core - это такая фича которая будет изолировать некоторые вычисления в отдельном процессе который капитально изолирован от адресного пространства зиготы. Так работает custom chrome tabs в вебвью - через специальный костылёк в системных привелегиях который разрешает именно вебвью запускаться вот в таком окружении полностью отвязанном от других процессов приложений. В вебвью это особенно важно и в вебвью это было обкатано впервые, потому что это самая большая и больная поверхность атаки. С таким механизмом всякие удалённые эксплоиты даже если и смогут проэксплуатировать движок браузера, то всё равно останутся со всех сторон огороженными и неспособными пробиваться куда-то дальше. Как то так я это понял, может быть не до конца, хз. Плюс такие процессы получают полный запрет на возможность хождения в сеть. Прикольно.
Порадовало отключение бэкапов - пусть сейчас это и не так актуально как раньше, т.к. большинство приложений которым есть что скрывать шифрует файлы и префы в песочницах, но всё равно эта проблема висела многие годы и никто с ней ничего не делал. Хоть бы действительно дефолтный false поставили. Вообще, бэкапы они вроде бы как нужны, но наверное не в таком виде как это сделано в андроиде сейчас. Плюс когда добавляется шифрование данных ключами из ТЕЕ вся система усложняется ещё больше, перенос на другие устройства становится невозможен. Я вообще за то чтобы в песочницах не хранились данные которые вот прям обязательно нужно бэкапить. Мне кажется это не так уж сложно организовать в современном мире где все данные - в облаках. Отключение оверлеев - вот это очень правильная тема. Значительная часть современных зловредов крадущих данные под андроид работают на оверлеях и доступах к акцесибилити. Пользователи безусловно сами всегда не задумываясь выдают все эти разрешения приложениям, но то что в системе будет возможность перекрыть часть кислород банковским троянам даже при полной беспечности пользователя - это хорошо. Явная проверка хардварного кейстора - полезно. Раньше для того чтобы получить информацию был какой-то полукостыль KeyInfo.isInsideSecureHardware() который ещё не гарантировал возврат правильного значения. На некоторых устройствах вообще возвращалось всегда true или всегда false, несмотря на то был там аппаратный кейстор или нет. На многих устройствах были ложные возвраты false при первом обращении к этому методу, хотя все последующие возвращали true. В общем, правильно сделали. Про пермишены на блютус - вот давно пора нужно было сделать это. Те кто делал хоть раз приложения работающее с блютусом знает эту боль. Красавчики. Введение Rust в процесс разработки системы очень порадовало. Об этом была новость на хабре некоторое время назад. Только там было упомянуто что они в первую очередь собираются переписывать критичные в плане поверхности атаки штуки, т.е. binder и всё что касается IPC, т.к. именно в это проще всего попытаться пробиться и именно в этом были найдены последние громкие уязвимости. Раст - вообще крутая штука и несмотря на то что все эти изменения больше для производителей устройств и оболочек, будем надеяться что и в обычное NDK прикатится раст, потому что котлин отчасти не стал бы даже близко так популярен если бы гугл не популяризировали его должным образом именно в андроид разработке. То ли ещё будет. Вообще гугл начали использовать санитайзеры и тестирование кода на безопасность автофаззерами и прочими штуками ещё на хроме. Там у них этот процесс отлично налажен. То что подобное катится и в андроид - это хорошо. Потому что мобильные устройства - очень сладкие цели для вирусописателей, а вот пытаться найти что-то после таких инструментов очень сложно. Надо быть в край отмороженным, ну или китайцем. Уведомление на доступ к буферу обмена - тоже очень правильная фича. Как и реализованные в более ранних релизах ограничения на доступ к буферу обмена для приложений. Раньше подобные вещи делали себе задроты накатывая патчи и собирая образы системы самостоятельно, или хукая рантайм через икспозед, а теперь вот это есть в основном андроиде. Я помню как мне в своё время не нравилось всё в том как устроен андроид, как хотелось бросить всё, запереться в комнате, и начать пилить кучу всяких privacy-ориентированных дополнений к системе, потому что то что мы имели из коробки было очень не очень. А вот сейчас с каждым релизом желание взять и запилить свой андроид с преферансом и поэтессами всё больше пропадает, потому что такие вещи появляются в основном коде системы. Это очень хорошо. В целом - мне очень нравится как развивается андроид в плане приватности и секурности в последние релизы. Видно что в гугле действительно стараются избавляться от многих старых, исторических проблем, это круто, но всё таки есть ещё что исправлять
44:57 - а это будет работать только на Android 12 или на всех, если собрать приложение с targetSdkVersion 31?
Если я все понял правильно, то достаточно иметь targetSdkVersion "S" (поменяется на 31 после релиза видимо), т.к. это изменения фреймворка, а не ОС
@@AndroidGuards Спасибо, отличный формат, досмотрел все до конца. Очень четко и по делу всё. Сам вряд-ли бы так смог во всем разобраться, видно что огромная работа проделана. Кучу времени сэкономил этим видео всем, кто кодит под Андроид)
Спасибо! Хороший и полный разбор
Все ссылки в описании под видео. Не пропустите! UPD 14.06.2021: Вышел еще один апдейт после которого стало понятно, почему я не смог запустить некоторые штуки. Их просто небыло на момент записи видео и они их постепенно докатывают. Апдейт тут: android-developers.googleblog.com/2021/06/android-12-beta-2-update.html
Спасибо android guard king
Must have для мобильного разработчика. Люто плюсую!
Супер, спасибо!
Спасибо за раскрытие темы, а где можно Вашу шпаргалку посмотреть?
О какой шпаргалке речь? Напомните пожалуйста =)
@@AndroidGuards на 29 минуте)
@@chertok_fly Речь видимо о "внутреннем документе", который я упоминал. Расшарить его я пока не могу, но если есть осталось непонятным как такую функциональность реализовать, то чуть позже могу раскрыть это подробнее с конкретными примерами кода.
Осталось так же неясным, как всё же можно реализовать безопасно локальную проверку по пин-коду.
@@chertok_fly сделать полностью безопасно локальную аутентификацию по пину на уровне приложения - невозможно. Но можно приблизиться к более-менее внятной реализации. Как это сделать можно прочитать в этой статье: habr.com/ru/company/redmadrobot/blog/475112/ и/или посмотреть видео на канале которое делалось по этой статье: ruclips.net/video/nBki623DQag/видео.html Озвученные идеи реализованы в этой библиотеке: github.com/RedMadRobot/PINkman (как упомнил, рекомендую дождаться вторую версию, там все будет еще лучше)
Спасибо за информацию. Использую версию биометрии 1.1.0 с executor вместо корутин. Там нет крашей, но есть утечка памяти)
С утечкой в целом можно жить, но для ряда приложений может быть неприятно.
Спасибо. Теперь я точно понял :)
Божественно, спасибо!
Смотрел с телевизора и телефона. Очень маленький шрифт. Включай, пожалуйста, Presentation Mode или выставляй размер шрифта в коде побольше. Я на 27" Retina 5K использую 30
По шрифту надо подумать над каким-то разумным балансом да. С другой стороны - я не предполагал, что это кто-то будет смотреть на телевизоре/телефоне =)
Было бы классно увидеть стрим по инструментарию реверс инженеринга (Фрида, как ее установить в VS Code, JD GUI, прочее)
Такие видео есть в планах. Нужен именно стрим или хватит обычного видео?
Я думаю достаточно обычного видео, спасибо!
Решение краша довольно вонючее если честно. А перед тем как показывать гугловый код, в следующий раз делай ограничение 18+, это вообще шок контент.
Оно точно не хуже библиотечного кода ;) При этом чуть более лучшим решением было бы использование callbackFlow. Но, подождем официального фикса.