Фокус на безопасность мобильных приложений
Всем привет!
Давно ничего не писал, аж целых два месяца)) Но взял себя в руки и теперь и канал оживает, будут всегда свежие посты и новости и на Хабр вышла новая статья.
Статья не совсем техническая, она посвящена особенностям мобильных приложений, которые часто упускают из вида и забывают при построении процесса безопасной разработки. Да и просто при планировании мероприятий по анализу защищенности ресурсов мобилки всегда отодвигают "на потом". Возможно это связано с тем, что не все до конца понимают нюансы при релизе мобилок и всех векторов атак. И что устранение уязвимости в мобилке это немного не тоже самое, что устранение в серверной части.
Можно считать, что это некоторое логическое продолжение статьи "Мифы о безопасности мобильных приложений", только затрагивает она не заблуждения о мобилках, а их особенности.
Я постарался изложить свои мысли по этому поводу, надеюсь это поможет кому-то по новому взглянуть на мобильные приложения, и запланировать мероприятия по регулярному анализу их защищенности (ну а мы поможем). Ну или просто посмотреть на взгляд со стороны, как это воспринимаем мы, по свою сторону баррикад, возможно я просто чего-то не понимаю, поэтому пожалуйста, не стесняйтесь писать комментарии.
Приятного чтения, надеюсь, вам понравится!
#android #ios #mobile #habr
Всем привет!
Давно ничего не писал, аж целых два месяца)) Но взял себя в руки и теперь и канал оживает, будут всегда свежие посты и новости и на Хабр вышла новая статья.
Статья не совсем техническая, она посвящена особенностям мобильных приложений, которые часто упускают из вида и забывают при построении процесса безопасной разработки. Да и просто при планировании мероприятий по анализу защищенности ресурсов мобилки всегда отодвигают "на потом". Возможно это связано с тем, что не все до конца понимают нюансы при релизе мобилок и всех векторов атак. И что устранение уязвимости в мобилке это немного не тоже самое, что устранение в серверной части.
Можно считать, что это некоторое логическое продолжение статьи "Мифы о безопасности мобильных приложений", только затрагивает она не заблуждения о мобилках, а их особенности.
Я постарался изложить свои мысли по этому поводу, надеюсь это поможет кому-то по новому взглянуть на мобильные приложения, и запланировать мероприятия по регулярному анализу их защищенности (ну а мы поможем). Ну или просто посмотреть на взгляд со стороны, как это воспринимаем мы, по свою сторону баррикад, возможно я просто чего-то не понимаю, поэтому пожалуйста, не стесняйтесь писать комментарии.
Приятного чтения, надеюсь, вам понравится!
#android #ios #mobile #habr
Хабр
Фокус на безопасность мобильных приложений
Всем привет! На связи Юрий Шабалин, генеральный директор «Стингрей Технолоджиз». Недавно я проводил вебинар для новых сотрудников компании, в котором рассказывал про проблемы...
И снова Path Traversal в Android-приложениях
Теперь под атакой Path Traversal оказались такие популярные приложения, как файл менеджер от Сяоми и WPS Office. Многие из нас пользуются ими или хотя бы слышали про них. При этом в Сяоми удалось выполнить произвольный код через замену .so файла.
Суть все также, что и раньше, отправляем в Intent путь к внутреннему файлу через ../../
Статья очень подробно рассказывает про этот тип атаки, объясняет причины и дает рекомендации, как не допустить такого в дальнейшем. Очень советую тем, кто хочет побольше узнать об этом типе уязвимостей.
При этом, ребята из Microsoft (те, кто обнаружил проблемы), подошли основательно, написав еще и в Google, благодаря чему появилась еще одна статья в документации (знакомо, правда @OxFi5t?).
Но скольких проблем можно было бы избежать, если использовать правильную санитизацию и валидацию.
Помните, что ваше приложение исполняется во враждебной и недоверенной среде, которую вы не можете контролировать. Написание приложения с этой аксиомой в голове поможет избежать многих ошибок!
Будьте в безопасности и хорошего кодинга :)
#android #pathtraversal #xiaomo
Теперь под атакой Path Traversal оказались такие популярные приложения, как файл менеджер от Сяоми и WPS Office. Многие из нас пользуются ими или хотя бы слышали про них. При этом в Сяоми удалось выполнить произвольный код через замену .so файла.
Суть все также, что и раньше, отправляем в Intent путь к внутреннему файлу через ../../
Статья очень подробно рассказывает про этот тип атаки, объясняет причины и дает рекомендации, как не допустить такого в дальнейшем. Очень советую тем, кто хочет побольше узнать об этом типе уязвимостей.
При этом, ребята из Microsoft (те, кто обнаружил проблемы), подошли основательно, написав еще и в Google, благодаря чему появилась еще одна статья в документации (знакомо, правда @OxFi5t?).
Но скольких проблем можно было бы избежать, если использовать правильную санитизацию и валидацию.
Помните, что ваше приложение исполняется во враждебной и недоверенной среде, которую вы не можете контролировать. Написание приложения с этой аксиомой в голове поможет избежать многих ошибок!
Будьте в безопасности и хорошего кодинга :)
#android #pathtraversal #xiaomo
Microsoft Security Blog
“Dirty stream” attack: Discovering and mitigating a common vulnerability pattern in Android apps | Microsoft Security Blog
Microsoft discovered a vulnerability pattern in multiple popular Android applications that could enable a malicious application to overwrite files in the vulnerable application’s internal data storage directory, which could lead to arbitrary code execution…
Детект эмулятора и обход этих проверок
Всем привет!
Возможно эти статьи уже были в канале, но точно когда-то давным давно и это неточно :)
Автор перенес из личного блога три статьи по способам обнаружения работы на эмуляторе и способы обхода этих проверок:
- часть первая, про проверки
- вторая про отключение проверок через пересборку
- третья про тоже самое, что и вторая :)
Не сказать, что прям очень подробно, но для старта и понимания, как можно проверить запуск на эмуляторе и как потенциально будут обходить, очень полезно.
#emulator #bypass #android
Всем привет!
Возможно эти статьи уже были в канале, но точно когда-то давным давно и это неточно :)
Автор перенес из личного блога три статьи по способам обнаружения работы на эмуляторе и способы обхода этих проверок:
- часть первая, про проверки
- вторая про отключение проверок через пересборку
- третья про тоже самое, что и вторая :)
Не сказать, что прям очень подробно, но для старта и понимания, как можно проверить запуск на эмуляторе и как потенциально будут обходить, очень полезно.
#emulator #bypass #android
Medium
Bypassing Android Anti Emulation part I
TLDR:
Использование Nuclei для поиска секретов в мобильных приложениях
Всем привет!
Честно говоря, смотря на заголовок статьи я ожидал что-то крутое с трафиком, автоматическую генерацию темплейтов для Nuclei и т.д.
Но реальность меня немного озадачила, статья про использование Nuclei для поиска паттернов в коде. Для Android это поиск ключей FCM, для iOS это поиск некорректно настроенного AppTransport Security. Я, конечно знал, что этот инструмент можно использовать для работы с кодом, но выглядит как оверкил. Тот же grep справился бы быстрее и привычнее.
Возможно, это будет полезно тем, кто и так использует Nuclei для работы и хотел бы получать все данные из единого источника и в одном формате. А может просто узнать чуть больше про возможности этого правда интересного инструмента.
Еще нашел рядышком репозиторий с правилами для поиска ключей. Их там, кстати, довольно много.
В любом случае, приятного чтения :)
#nuclei #android #ios
Всем привет!
Честно говоря, смотря на заголовок статьи я ожидал что-то крутое с трафиком, автоматическую генерацию темплейтов для Nuclei и т.д.
Но реальность меня немного озадачила, статья про использование Nuclei для поиска паттернов в коде. Для Android это поиск ключей FCM, для iOS это поиск некорректно настроенного AppTransport Security. Я, конечно знал, что этот инструмент можно использовать для работы с кодом, но выглядит как оверкил. Тот же grep справился бы быстрее и привычнее.
Возможно, это будет полезно тем, кто и так использует Nuclei для работы и хотел бы получать все данные из единого источника и в одном формате. А может просто узнать чуть больше про возможности этого правда интересного инструмента.
Еще нашел рядышком репозиторий с правилами для поиска ключей. Их там, кстати, довольно много.
В любом случае, приятного чтения :)
#nuclei #android #ios
Medium
How to Improve Your Android & iOS Static Analysis with Nuclei!
TL;DR: In this post, we will cover how to statically analyze Android and iOS applications using Nuclei. We’ll start:
Интересный инструмент для изменения ресурсов
Интересный инструмент APKEditor, никогда с ним ранее не сталкивался. Хорошо умеет изменять ресурсы внутри APK, собирать из нескольких split один standalone и прикольная штука с защитой ресурсов от дальнейшей модификации.
Инструмент активно дорабатывается и коммиты еще идут (23 апреля, 1 мая, 11 мая), так что есть надежда, что инструмент еще поживет какое-то время, а может даже будет развиваться!
В любом случае, может быть полезным, если нужно что-то быстренько поправить только в ресурсах.
Если кто-то его использует, отпишитесь, как оно, пожалуйста?
#android #smali #APK #tools
Интересный инструмент APKEditor, никогда с ним ранее не сталкивался. Хорошо умеет изменять ресурсы внутри APK, собирать из нескольких split один standalone и прикольная штука с защитой ресурсов от дальнейшей модификации.
Инструмент активно дорабатывается и коммиты еще идут (23 апреля, 1 мая, 11 мая), так что есть надежда, что инструмент еще поживет какое-то время, а может даже будет развиваться!
В любом случае, может быть полезным, если нужно что-то быстренько поправить только в ресурсах.
Если кто-то его использует, отпишитесь, как оно, пожалуйста?
#android #smali #APK #tools
GitHub
APKEditor/README.md at master · REAndroid/APKEditor
Powerful android apk editor - aapt/aapt2 independent - REAndroid/APKEditor
Использование Frida - функция memory.scan()
Крайне занятная статья, которая рассказывает, как и зачем можно применять функции поиска в памяти через Frida.
В статье эта функция используется для поиска захардкожкнного пинкода в нативной либе и замене значения по адресу на нужное.
Я никогда раньше не использовал такой подход, весьма интересная функция, думаю, что в ряде случаев может пригодиться.
Может и вы найдете это интересным :)
#frida #memory #scan #android
Крайне занятная статья, которая рассказывает, как и зачем можно применять функции поиска в памяти через Frida.
В статье эта функция используется для поиска захардкожкнного пинкода в нативной либе и замене значения по адресу на нужное.
Я никогда раньше не использовал такой подход, весьма интересная функция, думаю, что в ряде случаев может пригодиться.
Может и вы найдете это интересным :)
#frida #memory #scan #android
8kSec - 8kSec is a cybersecurity research & training company. We provide high-quality training & consulting services.
Advanced Frida Usage Part 9 – Memory Scanning in Android - 8kSec
In part-9 of Advanced Frida Usage, learn about API provided by frida called Memory.scan() which can help you to scan bytes from memory & help you to patch them.
Анализ и патч DEX-файлов
Как правило модификация приложений происходит через распаковку Android-приложения до smali-кода (например, через apktool), изменение и потом запаковку обратно.
В статье используют немного другой подход, работу напрямую с dex-файлами при помощи инструмента dexmod
Весьма необычный подход, даже не знаю, для чего его лучше использовать. Ну, в статье приводится интересный пример, конечно, когда внутри dex-файла заменяют обфусуированные значения обычными, что упрощает анализ, но все равно похоже на частный случай.
Тем не менее статья интересна теоретической частью про структуру dex-файлов и способах их анализа.
В любом случае, весьма интересно было изучить.
Приятного чтения!
#dex #android #patch
Как правило модификация приложений происходит через распаковку Android-приложения до smali-кода (например, через apktool), изменение и потом запаковку обратно.
В статье используют немного другой подход, работу напрямую с dex-файлами при помощи инструмента dexmod
Весьма необычный подход, даже не знаю, для чего его лучше использовать. Ну, в статье приводится интересный пример, конечно, когда внутри dex-файла заменяют обфусуированные значения обычными, что упрощает анализ, но все равно похоже на частный случай.
Тем не менее статья интересна теоретической частью про структуру dex-файлов и способах их анализа.
В любом случае, весьма интересно было изучить.
Приятного чтения!
#dex #android #patch
Google Cloud Blog
Delving into Dalvik: A Look Into DEX Files | Google Cloud Blog
Insight into the Dalvik Executable file format, how it is constructed, and how it can be altered to make analysis easier.
Инъекции кода в Android без использования ptrace
Детальная, подробная, техническая статья про проект, который позволяет инжектить код в процессы на Android без использования ptrace.
Очень круто описан и сам процесс, как заинжектить код, как технически это возможно и рассказ автора про свой путь написания.
На мой взгляд, это конечно, не полноценный и готовый проект, но очень интересный посыл и, возможно способ обойти некоторые изощренные проверки :) ну и в целом крайне познавательно понимать, как именно все это работает изнутри, хотя и все-таки достаточно сложно.
Радует большое количество отсылок к различным статьям, так что вдумчивое чтение не на один час 😅
Приятного изучения!
#android #ptrace #libinjection
Детальная, подробная, техническая статья про проект, который позволяет инжектить код в процессы на Android без использования ptrace.
Очень круто описан и сам процесс, как заинжектить код, как технически это возможно и рассказ автора про свой путь написания.
На мой взгляд, это конечно, не полноценный и готовый проект, но очень интересный посыл и, возможно способ обойти некоторые изощренные проверки :) ну и в целом крайне познавательно понимать, как именно все это работает изнутри, хотя и все-таки достаточно сложно.
Радует большое количество отсылок к различным статьям, так что вдумчивое чтение не на один час 😅
Приятного изучения!
#android #ptrace #libinjection
erfur's bits and pieces
Code injection on Android without ptrace
Еще один сканер Android-приложений
Достаточно часто встречаю различные инструменты для анализа приложений. Какие-то из них прям интересные, некоторые совсем простенькие.
Ко второй категории относится проект APKDeepLens. Это весьма несложный парсер декомпилированного кода. Несмотря на достаточно красивое описание в репозитории, при анализе его кода становится понятно, что он только парсит манифест, выдёргивает URL из приложения, ищет секреты по регуляркам.
Неплохой для старта, легко кастомизируется и можно добавить свои наработки, если они у вас есть.
Так что, если кто искал проект для кастомизации, это самое то :)
#android #analysis
Достаточно часто встречаю различные инструменты для анализа приложений. Какие-то из них прям интересные, некоторые совсем простенькие.
Ко второй категории относится проект APKDeepLens. Это весьма несложный парсер декомпилированного кода. Несмотря на достаточно красивое описание в репозитории, при анализе его кода становится понятно, что он только парсит манифест, выдёргивает URL из приложения, ищет секреты по регуляркам.
Неплохой для старта, легко кастомизируется и можно добавить свои наработки, если они у вас есть.
Так что, если кто искал проект для кастомизации, это самое то :)
#android #analysis
GitHub
GitHub - d78ui98/APKDeepLens: Android security insights in full spectrum.
Android security insights in full spectrum. Contribute to d78ui98/APKDeepLens development by creating an account on GitHub.
Очень классная статья про системные приложения в Android
Статья очень понятно объясняет классификацию и привилегии приложений Android. Если кратко, то на самом деле есть пять основных групп приложений:
- недоверенные приложения
- предустановленные приложения
- привилегированные приложения
- приложения с подписью платформы
- приложения с системным UID.
Каждая категория имеет свои специфические разрешения и правила в SELinux, которые определяют их возможности.
Очень рекомендую почитать!
#android #apps #permissions
Статья очень понятно объясняет классификацию и привилегии приложений Android. Если кратко, то на самом деле есть пять основных групп приложений:
- недоверенные приложения
- предустановленные приложения
- привилегированные приложения
- приложения с подписью платформы
- приложения с системным UID.
Каждая категория имеет свои специфические разрешения и правила в SELinux, которые определяют их возможности.
Очень рекомендую почитать!
#android #apps #permissions
Meta Red Team X
The many meanings of “system app” in modern Android
Not all Android apps are created equal. The Settings app on an Android device, for example, can change numerous things that no “normal” app can, regardless of how many permissions that app requests. Apps with special privileges like Settings are often called…
Как вызвать Java из C++ в Android.
Всем привет!
Я несколько раз перечитал статью, но так и не понял прикола, зачем это делать-то и кому это нужно?
Статья описывает, как создать и использовать экземпляры JVM (Java Virtual Machine) в приложениях на Android, написанных на C/C++.
Автор объясняет, как интегрировать JVM в приложения с использованием JNI (Java Native Interface), чтобы вызывать Java-методы из нативного кода.
Я понимаю из Java вызывать натив, но зачем наоборот? Еще больше запутать логику?
Интересный подход, но пока непонятно 😅
#android #native #c++
Всем привет!
Я несколько раз перечитал статью, но так и не понял прикола, зачем это делать-то и кому это нужно?
Статья описывает, как создать и использовать экземпляры JVM (Java Virtual Machine) в приложениях на Android, написанных на C/C++.
Автор объясняет, как интегрировать JVM в приложения с использованием JNI (Java Native Interface), чтобы вызывать Java-методы из нативного кода.
Я понимаю из Java вызывать натив, но зачем наоборот? Еще больше запутать логику?
Интересный подход, но пока непонятно 😅
#android #native #c++
Medium
Creating and using JVM instances in Android C/C++ applications
Considering the reader’s interest in this post, it’s reasonable to assume a certain level of familiarity with JNI and its usage. For those…
Статья для начинающих свой путь в Android
Всем привет!
Статейка для тех, кто только начинает свое знакомство с Android и хотел бы попробовать свои силы на нескольких CTF, чтобы понять какого это.
В статье описаны шаги для настройки окружения:
- Создание эмулятора
- Настройка Burpsuite
- Установка Frida
- Решение двух задачек с HackTheBox
В целом ничего особо примечательного, но как базовая точка для самого популярного вопроса «Как снять пиннинг» подойдет. Конечно, далеко не на всех приложениях эти шаги и этот скрипт сработают, но тем не менее, для старта неплохо.
Ну а дальше только снимать пиннинг и другие вещи с более сложных и не учебных приложений.
Добро пожаловать в мир безопасности мобилок»
#android #frida #ctf #burp
Всем привет!
Статейка для тех, кто только начинает свое знакомство с Android и хотел бы попробовать свои силы на нескольких CTF, чтобы понять какого это.
В статье описаны шаги для настройки окружения:
- Создание эмулятора
- Настройка Burpsuite
- Установка Frida
- Решение двух задачек с HackTheBox
В целом ничего особо примечательного, но как базовая точка для самого популярного вопроса «Как снять пиннинг» подойдет. Конечно, далеко не на всех приложениях эти шаги и этот скрипт сработают, но тем не менее, для старта неплохо.
Ну а дальше только снимать пиннинг и другие вещи с более сложных и не учебных приложений.
Добро пожаловать в мир безопасности мобилок»
#android #frida #ctf #burp