Android Guards – Telegram
Android Guards
3.8K subscribers
93 photos
1 video
7 files
222 links
Статьи, исследования, полезные ссылки и многое другое из мира безопасности Android платформы и приложений. Только проверенный контент!

YouTube: https://www.youtube.com/c/AndroidGuards

Поблагодарить: https://news.1rj.ru/str/+oMgsdsq2ydY5MjQy
Download Telegram
Вам когда-нибудь было интересно как эволюционировали подходы к обеспечению безопасности в Android? Если да, то вот статья способная хоть немного удовлетворить ваш интерес. Это хороший обзор того, как Google улучшала безопасность и приватность операционной системы начиная с версии 4.4 и до наших дней. Ну и автор — не хрен с горы, а известный в нашем теплом мобильном инфобезе @Mr_R1p. Так что заваривайте свою любимую "принцессу Нури", доширак и наслаждайтесь чтением.

P.S. Статью уже репостили в чат канала, но автор репоста любезно согласился удалить сообщение, чтобы избежать дублирования 😎
Каждый раз когда я говорю "не пишите свою криптографию, у вас нет для этого достаточного количества знаний", вы мне возможно не верите и думаете: ну уж я то разбираюсь, даже половину "прикладной криптографии" прочитал. В таком случае у меня для вас есть статья, где очень круто показано, что даже специалисты ошибаются. В статье речь идет о слабых алгоритмах генерации случайных чисел, которые применялись в парольном менеджере от Лаборатории Касперского. Читается на одном дыхании (почти) и наглядно демонстрирует как находят уязвимости в ГПСЧ.

⚠️ Осторожно, все что вы прочитаете дальше в этом сообщении — теория заговоров и так не бывает.

А еще злые языки говорят, что в некоторые криптографические алгоритмы специально вносятся уязвимости. При чем порой настолько хитро, что нужно обладать очень глубокими знаниями в математике и криптографии чтобы эти уязвимости найти. А вот кто вносит эти уязвимости и зачем — я вам не скажу 😉 Статью читайте. Нечего про всякие глупости думать.
🔥1
Попалась мне тут книжка — Android глазами хакера. И решил я ее почитать и составить свое мнение. Делал заметки по ходу чтения и решил, что неплохо бы с кем-нибудь ими поделиться. Для тех, кому вечно "некогда", вот главная мысль — Книга отлично подойдет для тех, кто только начинает или хочет начать погружаться в мир android инфобеза

Для всех остальных есть такая ссылка — https://youtu.be/urgbx0QmHxs
Появилась новая инфа по safety section в GooglePlay, о которой я как-то писал. Теперь на это можно посмотреть в картинках и начать готовиться к ее появлению.
Открыть ее для заполнения в консоли разработчика обещают в октябре. Чуть больше подробностей тут.
Когда я нахожу в списке пакетов приложения net.sqlcipher, то сразу чувствую дух приключений. Это же люди заморочились, решили сделать зашифрованную базу данных и чтобы все было безопасно и хорошо. В такие моменты всегда интересно, что же они придумали с хранением ключей шифрования. Обычно там ничего интересного или всякая "комнатная криптография" типа константы с именем автора закодированной в base64, но на этот раз я нашел кое что забавное.

Самый простой способ начать раскручивать алгоритм — поискать метод net.sqlcipher.database.getReadableDatabase. В который и передается пароль на открытие БД. Если вам повезло и туда передается не статическая строка "mysecretpassword", то начинайте искать артефакты 😉 В моем случае, дорога приключений привела меня в класс с совершенно ничего не говорящим названием DatabasePasswordManager, который содержал такой код:

static SecretKey generatePassword() {
return new SecretKeySpec(UUID.randomUUID().toString().replaceAll("-", "").getBytes(StandardCharsets.UTF_8), "AES");
}

Ну хоть не имя автора и то ладно. А дальше сгенерированный ключ попадал в файл:

static void writeDatabasePassword(Context context, SecretKey secretKey, File file) {
....
byte[] wrap = keyWrapperFactory.createInstance(context, "db").wrap(secretKey);
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(wrap);
fileOutputStream.close();
return;
}


Который сохранялся в песочнице приложения. Шах и мат =)

Как стоило бы решать такую задачу? Я вижу три способа:

1. Не решать ее вообще. Зачем вам шифровать всю базу данных? Что там такого содержится? Если там куча конфиденциально инфы, то лучше бы это вынести на сервер.
2. Шифровать только конкретные данные. Тут хорошо помогает генерация ключей в keystore и обычные операции шифрования конкретных значений, которые потом можно сохранять в БД.
3. Размазать алгоритм генерации пароля по всему приложению с заходом в нативные либы, использовать куски подписи приложения и всякое такое прочее. Потом осознать, что пароль все равно получат с помощью хука на методе getReadableDatabase и написать защиту от фриды, xposed и... ну в общем вы поняли 😉
Создатель Magisk-а опубликовал статью вносящую ясность в то, что будет происходить с проектом дальше. Если коротко, то дела такие:

- MagiskHide — все. У автора теперь есть доступ ко всему коду гугла поэтому такие штуки вызывают конфликт интересов.
- Репозиторий модулей — все. Автор устал заниматься модерацией.
- Ведется работа на Zygisk — части Magisk будут запускаться в Zygote.
Frida book.pdf
3.9 MB
Перевернул сегодня календарь, а там...

Какие-то добрые люди надергали из документации всяких полезностей по Frida и сделали из них удобную PDF-ку, которая будет очень полезна новичкам. Хотя, джедаям тоже будет на что посмотреть.

Что внутри:
- Краткая история фриды
- Установка и базовые компоненты
- Примеры решения задач: обход рута, поиск секретов, обход авторизации. В этом же разделе есть инфа про r2frida (джедаи тут?)
- Примеры инструментов базирующихся на фриде
- Коллекции скриптов
- Референсы на основании которых это все собиралось. Можно юзать как список для дальнейшего изучения.
#frida
Довольно оперативно выложили материалы с прошедшей недавно Zero Nights 2021. По нашей теме там был только один доклад от Дмитрия Терёшина(@dtereshin) про проблемы SSDLC. В рамках доклада Дмитрий рассказал о внезапно появляющихся багах в релизных сборках и о том как их сбивать на подлете. А еще он презентовал свой тул CheckKarlMarx, который выглядит как ваша обычная грепалка на питоне, только с отчетами 😉

📹 Видео
👨🏻‍🏫 Слайды
👮 CheckKarlMarx
Решил немного разбавить посты про андройдно-мобильный инфобез постом на более широкую тему. В блоге Positive Technologies (запрещенная в США организация) вышла статья, с подборкой полезных ресурсов где можно почитать (а то и причаститься) про пентесты мобилок и веба, про реверс ВПО и про техники применяемые APT командами. Справедливости ради, стоит сказать, что подобную подборку, но на более узкую тему - reverse engineering я видел от компании Digital Security. Мне вообще нравится тренд, когда люди из индустрии и даже целые компании не закапывают знания внутри своего офиса, а делятся ими с сообществом. Хотелось бы видеть такие подборки чаще и было бы совсем хорошо если бы они на 90% состояли из материалов людей работающих в этих компаниях ;) Всем приятного чтения.
Довелось мне тут в очередной раз разворачивать с нуля пентестерское окружение на Android. А раз с нуля, значит надо сделать все правильно и красиво, поэтому решил закинуть сертификат для mitm-а в системные. В результате получился мини-гайд, который наверняка кому-то пригодится. Конечно есть и другие способы, с ремаунтом системного раздела и прочими приключениями. Но мне было как-то не до них :D
https://telegra.ph/Kak-sdelat-sertifikat-sistemnym-10-01
Ну что, любители бинарного анализа, которых почему-то занесло в android, для вас есть задачка.
Ребята из Delivery Club похоже решили потестировать свои наработки по защите приложений и оформили это в виде челленджа, за решение которого обещают пригласить в приватную bug bounty программу и дать скидку в $1000 на следующий заказ ;)

От вас потребуется всего лишь расковырять вот это приложение, найти RCE на бэкэнде с которым оно работает и написать об этом отчет. Насколько я могу судить, внутри вас ждет нативная либа с LLVM обфускацией, так что скучно не будет.

Чуть больше подробностей найдете в статье на хабре. Не забывайте спать и вовремя принимать пищу. Доброй охоты!
👍1
Пока не имею достаточно времени, чтобы записывать свой подкаст - приходится ходить по чужим ;) На этот раз сходил в SDCast к Константину Буркалеву. Поговорили про безопасность мобилок, поругали "вайтишников" и в очередной раз сошлись во мнении, что разработчикам неплохо бы разбираться в безопасности. В общем если кто-то искал, чем занять себя на ковидных каникулах, то послушайте подкаст. От себя могу еще порекомендвать выпуск с Ares-ом (автор Intercepter-NG), он вышел довольно интересным.

👨‍🔬Выпуск со мной
🥷Выпуск с Ares-ом
В блоге Oversecured вышла довольно неплохая статья по типичным багам встречающимся в приложениях использующих WebView. В статье найдете примеры обхода валидации URL, XSS-ки, атаки на JavaScript интерфейсы и немного рекомендаций как это этого всего защититься.
От себя добавлю, что регулярные обновления компонента AndroidWebView тоже неплохо помогают в защите, т.к. трюки, которые работали на старых версиях в новых уже требуют гораздо более сложных условий эксплуатации или же становятся вовсе непреминимыми.
https://blog.oversecured.com/Android-security-checklist-webview/
Закончился Android Dev Summit, а значит появилось несколько видео по "нашей теме", которые можно посмотреть.
1. Best practices for making your app private by design - если внимательно смотрели Google I/O и мой обзор после, то ничего интересного в этом видео вы не найдете. Кроме более конкретных примеров кода, которые так или иначе можно добыть из документации.
2. Android Memory Safety Tools - а это уже для любителей самописных нативных библиотек в приложениях. Рассказывают о тулах, которые могут быть полезны разработчикам таких решений: HWASan, GWP-ASan и Arm MTE. Если не пишите нативный код руками, то не тратьте время.
3. The most interesting (and unexpected) submissions to the Android Security Bulletin - вы еще не читаете ежемесячные бюллетени безопасности? После этого видео начнете =) Заманивают в свою багбаунти и сулят 100 килобаксов за обход экрана блокировки и рассказывают про несколько интересных CVE-шек.
4. Introducing Play Integrity API: Protect your apps and games - в очередной раз рассказали про Integrity API, который похоже будет единым фасадом над SafetyNet (можем ли мы доверять устройству?) и Google Play Licensing (можем ли мы доверять приложению?). А это означает, что думать о квотах, фолбэках на девайсах без гуглосервисов и еще куче вещей все равно придется. Ну и конечно же это нельзя просто взять и попробовать прямо сейчас. Надо заполнить форму и объяснить гуглу зачем оно вам надо....
Существует очень много IoT устройств на базе Android. И я не открою Америку, если скажу, что с безопасностью там так себе. И дело тут даже не в старых версиях android, а в самом железе и низкоуровневых программных компонентах которые над ними. Недавно вышла отличная статья про взлом TV приставки на базе Android 9, которая отлично демонстрирует известный принцип: "Если не можешь что-то взломать, то попробуй спуститься ниже по модели ISO/OSI".
https://habr.com/ru/company/bastion/blog/587108/ (кажется хабр снова торт! :D)
Delivery Club опубликовали решение задачи, которую я публиковал некоторое время назад. Ощущение искусственности самой задачи, которое у многих возникло - полностью подтвердилось =) Но это ничуть не умаляет заслуг человека, который эту задачу решил и написал репорт (он и приведен в статье).
Лично у меня, после прочтения репорта, возникло ощущение того, что эта задача - демо-версия вот этого челленджа. Рекомендую прочитать write-up-ы к нему, они довольно интересны.
Интересный доклад с прошедшего недавно митапа OWASP Melbourne, в котором рассказывается история человека пытающегося обойти экран блокировки путем подбора пин-кода. tl;dr - обошел с помощью NetHunter-а, OTG кабеля и самописного скрипта для брутфорса. Скрипт забирайте здесь.
Доклад совершенно ненапряжный и его можно посмотреть просто по фану. Там показано довольно много способов решения этой задачи и не исключено, что те, котрые не сработали у него - сработают у вас.
Способы такие:
1. Попробовать руками первые 20 вариантов из списка DataGenetics Research
2. Проверить комбинации важных дат (дни рождения, дни свадьбы, последние 4 цифры номера телефона, слова вроде LOVE,FUCK,etc... в T9 варианте)
3. Использовать Find My Device от Google
4. Использовать Find My Mobile от Samsung (или аналоги от других вендоров)
5. CVE-2015-3860 - крэш экрана блокировки на Samsung. Можно поискать аналоги у других вендоров
6. Использовать ADB чтобы удалить файл с пин-кодом/паттерном /data/system/gesture.key
7. Воспользоваться вот этим списком из еще 7ми способов с форума XDA
8. Попробовать специальные утилиты и устройства для мобильной криминалистики (forensic tools): Cellebrite, Oxygen, XRY, GrayKey, Octoplus, Odin + TWRP
9. Поискать публичные эксплойты
10. Использовать USB Rubber Ducky или аналоги (опционально спаять свой)
999. Выполнить сброс к заводским настройкам

Happy hacking 😎
👍1🔥1
⚠️ Эксперимент с Telegraph-ом признан неудачным и больше я туда писать не буду.

Систематизировал для себя (и немного для других) информацию по биометическим системам аутентификации. В результате получилось три части:

- Часть 1: Как работают системы биометрической аутентификации
- Часть 2: Как устроена биометрия в Android
- Часть 3: Атаки на биометрические системы

Это не какая-то уникальная информация, а просто мой способ читать документацию и работать с источниками по заданной теме.