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 и iOS и разберемся в типовых инструментах мобильного пентестера. Также выясним как войти в эту профессию с нуля или прийти из соседней области, как развиваться после входа и как выйти на пенсию имея в гараже Ламборгини, а не долги по ипотеке.

Гости выпуска: Николай (Positive Technologies) и Андрей (независимый эксперт)

https://www.youtube.com/watch?v=BbygfeMZGj4
Google сделал удобную страничку с security best practices по разным разделам:

- шифрование
- определение небезопасной среды выполнения
- аутентификация и биометрия
- обмен данными

плюс есть разделы по смежным темам. Выглядит неплохо.

#4developers #google

https://developer.android.com/security?linkId=97069982
Еще одно “намеренно уязвимое” android-приложение для любителей что-нибудь поковырять на выходных. Содержит следующие задания:

- Debug Me
- File Access
- Strings
- Resources
- Shares and Prefs
- DB Leak
- Export
- Decode
- Smali Injection

Для решения задач понадобятся: FRIDA, ADB, apktool и dex2jar (или что-то другое на ваш выбор).

https://github.com/abhi-r3v0/EVABS
Бывает ситуация, когда новая версия приложения, которое вы исследуете, вдруг перестает работать как раньше. Появляются какие-то новые методы защиты, меняются механизмы подписи запросов или происходят еще какие-нибудь нежелательные вещи. Для того, чтобы узнать что же изменилось, нужно взять предыдущую версию и текущую, распаковать, посмотреть diff... Но есть способ лучше: Diffuse. Эта утилита осуществляет описанный выше процесс, но делает это одной командой, да еще и показывает довольно полезный результат сравнения. Поддерживаются apk, aab, aar и jar файлы.

#4developers, #reverse_engineering

https://github.com/JakeWharton/diffuse
Всем привет! Мне часто задают разные вопросы касающиеся безопасности android-приложений и операционной системы. И я не уникален в этом. Наверняка многим из тех, кто это читает, задают еще больше вопросов. Кого-то это возможно даже раздражает. Но все мы были когда-то новичками и задавали вопросы, если было кому их задавать 😉 Я хочу сделать стрим где буду отвечать на вопросы новичков максимально честно, подробно и терпеливо (ну тут как пойдет...). У меня есть свой личный рейтинг таких вопросов, но я хочу предварительно еще собрать вопросы, которые волнуют лично вас или может быть те, на которые вы устали отвечать. По ссылке найдете форму куда их можно будет написать. Даты стрима пока не публикую, но это произойдет в какое-то ближайшее время. Опрос, конечно же, полностью анонимный. Мне не нужны ваши данные =)

https://docs.google.com/forms/d/e/1FAIpQLSdpqPvU2wfCwgICllKEdd5-YOIjaQhbFSa_2DzCEqg7DLZBYQ/viewform
Благодарю всех, кто накидал вопросов. Выглядит так, что контента у нас немножко есть и можно сделать стрим. Пока планирую его на следующую пятницу, 18 сентября на 19:00 по MSK. Вопросы можно будет также задавать на самом стриме.

https://www.youtube.com/watch?v=zeU2wlcj_Bw
Через 20 минут стартую стрим с вопросами новичков. Запасайтесь чаем или чем-то покрепче и присоединяйтесь.
Казалось бы, еще одна статья про биометрическую аутентификацию в Android... Но нет. В этой даются полезные пояснения по новым классам аутентификации, которые появились в Android 11.

#4developers #biometric

https://proandroiddev.com/biometrics-in-android-50424de8d0e
Стартую новую рубрику "Чердачок Брюса Шнайера" в ней буду писать всякое про криптографию и пробовать приземлять это на Android-реальность.

Выпуск №1 "Самые базовые понятия"

В криптографии, как в и любой другой области знаний есть свой язык и даже свой жаргон. Не зная его, порой тяжело понимать разные важные концепции, которые можно встретить в статьях и докладах. Сегодня поговорим про самые базовые понятия, которые для кого-то могут показаться очевидными, но без них невозможно двигаться дальше.

Криптография обычно оперирует двумя сторонами - "отправитель" и "получатель" которые передают друг-другу "сообщения". Чуть позже мы дадим имена этим безликим сторонам. При этом, обе стороны хотят обеспечить секретность своих сообщений и быть уверенными, что "перехватчик" не сможет их прочитать.

Сообщения принято называть открытым текстом(plaintext), а процесс маскировки сообщения называют шифрованием(encryption). Зашифрованное сообщение называется шифротекст(ciphertext), а процесс преобразования шифротекста обратно в открытый текст называеся расшифровкой(decryption)

Хозяйке на заметку: В соответствии со стандартом ISO 7498-2 в англоязычных текстах используются термины enchiper вместо encrypt и decipher вместо decrypt. Видимо, это объясняется тем, что в некоторых культурах термины encrypt и decrypt ассоциируются со словом crypt(склеп).

#ЧБШ
​​Чердачок Брюса Шнайера. Выпуск №2 "Основы криптографии"

Искусство и наука сокрытия сообщений называется криптографией (cryptography), а специалисты по криптографии называются криптографами (cryptographers). Их естественными "врагами" в дикой природе являются криптоаналитики (cryptoanalysts), которые занимаются искусством и наукой взлома шифротекстов - криптоанализом (cryptoanalysis). Отрасль математики, охватывающая криптографию и криптоанализ, называется криптологией (cryptology), а людей, которые ей занимаются - криптологами (cryptologist). Т.е. без хорошей математической подготовки тут никуда. Чтобы ты там себе на напридумывал %username%.

В криптографических формулах, открытый текст принято обозначать буквой M (message) или P (plaintext). Он может быть чем угодно, но в конечном итоге все сводится к набору битов. Шифротекст принято обозначать буквой C (chipertext), который тоже представляет из себя двоичные данные. Функцию шифрования обозначают буквой E, а функцию расшифровки буквой D. Таким образом, в математической форме основные формулы криптографии выглядят вот так:
E(M) = C - шифрование

D(С) = M - расшифровка

При этом должно выполняться следующее равенство:

D(E(M)) = M

Если уже на этом моменте тебе стало ничего не понятно, то самое время сделать вывод, что с криптографией тебе не по пути, потому что дальше будет сложнее 🤤

#ЧБШ
Многие из вас уже знают, что Google недавно представил две новые концепции хранения данных в Android в рамках библиотеки DataStore. Библиотека представляет из себя два хранилища: Preferences DataStore и Proto DataStore. Первое это привычные и понятные всем SharedPreferences, но немного поумневшие и типобезопасные. А вот второе уже гораздо интереснее. как следует из названия это хранилище работает со схемами ProtoBuf и обещает нам много интересного. Единственное, чего оно не обещает из коробки это шифрования данных. Это довольно странно в 2020-м году и при условии, что у Google уже есть все нужные компоненты для реализации. Ну нет так нет. Я написал эту интеграцию сам и хочу поделиться ей с вами. Там никакого космоса, просто Tink встроенный в proto-сериализатор данных. Код можно слить с GitHub-а и поиграться с ним.

https://github.com/Fi5t/secured-datastore

#4developers #cryptography
Google создает новую команду безопасности Android. Ее задачей будет искать уявимости в “особо важных” приложениях из Play Store.

Под особо важными имеются в виду приложения для отслеживания контактов COVID-19, приложения связанные с выборами и т.п.

Кто-нибудь хочет сменить работу? 😉

#google

https://xakep.ru/2020/10/02/special-android-security-team/
Вот и настал тот день, чтобы сказать "И вот этот день настал!". Пока нас потихоньку накрывает второй волной сами знаете чего (🦠) и мы опять переходим на удаленную работу, есть идея провести это время с пользой. Хочу провести online митап по безопасности android-приложений, операционной системы и смежным темам. Конечно же без вашего участия ничего не получиться, поэтому с сегодняшнего дня открываю CFP. Если у вас есть интересный релевантный опыт, то буду рад включить вас в программу митапа.

Если вы новичок в вопросах выступлений на коференциях, то я и программный коммитет поможем вам определитья с темой и направлением доклада, а также подготовиться к самому докладу.

Для тех, кто не любит Google формы - пишите мне в личку. Ваша нелюбовь к Google еще не повод не выступать на митапе 😉

https://forms.gle/nNVZBemesFsFmwvSA
Вышел Tink 1.5.0 c security фиксом для Java и Android касающимся проблем с целостностью шифротекста. Серьезность этой баги невысокая, но сама суть интересная - она позволяет злоумышленнику создавать немного измененный шифротекст, который все еще расшифровывается до того же открытого текста. Это возможно из-за особенностей работы с Unicode в Java.

#4developers #cryptography #tink

https://github.com/advisories/GHSA-g5vf-v6wf-7w2r
Провел тут небольшой воркшоп для начинающих исследователей безопасности приложений на конференции Google DevFest 2020. Наконец-то подъехала запись, поэтому решил поделиться материалами с вами.

#workshop #4beginners

https://github.com/Fi5t/workshop-devfest-2020
Чердачок Брюса Шнайера. Выпуск №3 “Алгоритмы и ключи”

Криптографический алгоритм (cryptographic algoritm), который также называется шифром (cipher), — это математическая функция, используемая для шифрования и расшифровки. Если безопасность алгоритма обеспечивается засекречиванием самого алгоритма, то он называется ограниченным (restricted). Такие алгоритмы уже давно не применяются. Причина вполне очевидна: если участник группы использующей этот алгоритм покидает группу, то группа вынуждена переходить на новый алгоритм.

Эту и другие проблемы ограниченных алгоритмов современная криптография решает с помощью ключей (keys), который обозначают буквой K. Ключ может быть любым значением выбранным из множества. Множество возможных значений ключа называют пространством ключей (keyspace). Этот ключ используется и при шифровании, и при расшифровке. В формулах он выглядит как индекс K у функций шифрования/расшифровки:

Ek(M) = C

Dk(С) = M

При этом должно выполняться следующее равенство:

Dk(Ek(M)) = M

В некоторых алгоритмах при шифровании и расшифровке используются разные ключи. В этом случае выполняются такие соотношения:

Ek1(M) = C

Dk2(C) = M

Dk2(Ek1(M)) = M

Безопасность этих алгоритмов полностью основана на ключе, а не на деталях. Это означает, что алгоритм можно опубликовать и проанализировать. Программные продукты, использующие этот алгоритм могут становиться массовыми. Не имеет значения, что злоумышленник знает ваш алгоритм: если ему не известен конкретный ключ, то он не может читать ваши сообщения.

Полезно ввести еще одно понятие - криптосистема (crytosystem). Это алгоритм и все возможные открытые тексты, шифротексты и ключи.

#ЧБШ
Всем привет!

29.10.2020 буду записываться в подкасте @android_broadcast, где планируем поговорить о безопасности Android приложений (о чем же еще…). В рамках выпуска попробуем составить “руководство по безопасности” для android-разработчиков. Упор сделаем на “бесплатную реализацию”, т.е. своими силами. Но также затронем вопросы постороннего вмешательства в построение безопасной разработки =)
Примерный список тем для обсуждения выглядит так:
- Основные ошибки, которые допускают разработчики
- SAST
- Как убедиться в безопасности своего приложения
- Практики безопасной разработки
- Как защитить приложение если первый этаж опять затопило деньгами и надо куда-то их деть

https://www.youtube.com/watch?v=x_COvmEIyko
Чего только порой не встретишь. Вот например калькулятор, который умеет прятать ваши фотографии в защищенном хранилище. На проверку, ну конечно же, оказался полным шлаком с DES шифрованием и статическим ключом "12345678" зашитым в коде. По ссылке найдете краткий разбор этого чуда. Отличная вещь, чтобы начать рабочую неделю с улыбки

https://github.com/Magpol/decrypt-calculatorPlusApk
​​Чердачок Брюса Шнайера. Выпуск №4 “Симметричная криптография”

Существуют два основных типа алгоритмов, основанных на использовании ключей: симметричные алгоритмы и алгоритмы и алгоритмы с открытым ключом.

Симметричные алгоритмы (symmetric algorithms) иногда называют условными (conventional). Это алгоритмы, в которых ключ шифрования может быть вычислен по ключи расшифровки, и наоборот. В большинстве симметричных алгоритмов ключи шифрования и расшифровки совпадают. Эти алгоритмы, также называемые алгоритмами с секретным ключом (secret-key algorithms) или алгоритмами с единственным ключом (signle-key algorithms), требуют, чтобы отправитель и получатель согласовали ключ до начала передачи секретных сообщений. Безопасность симметричного алгоритма зависит от ключа. Шифрование и расшифровка с использованием симметричного алгоритма записывается так:

Ek(M) = C,

Dk(C) = M.

Симметричные алгоритмы подразделяют на две категории. Одни алгоритмы обрабатывают открытый текст побитово (иногда побайтово). Они называются потоковыми алгоритмами (stream algorithms) или потоковыми шифрами (stream ciphers). Другие обрабатывают биты открытого текста по группам. Группы битов называются блоками (blocks), а алгоритмы — блочными алгоритмами (block algorithms) или блочными шифрами (block ciphers). В современных компьютерных алгоритмах типичный размер блока составляет 64 бита — достаточно большое значение, чтобы предотвратить анализ, и в то же время достаточно небольшое для удобной работы.

#ЧБШ