Содержание статьи
- Инструменты
- Почитать
- Отключение защиты от запуска в эмуляторе
- Уязвимости экрана блокировки iOS и способы их митигации
- (Не)безопасность приложений, использующих ADB Workaround
- Разработчику
- Запуск Java-кода с привилегиями shell
- Более лучшая обфускация
- Inline-функции Kotlin
- 15 инструментов, необходимых любому Android-разработчику
- Полезные клавиатурные комбинации Android Studio
- 31 день с Kotlin
- Инструменты
- Библиотеки
Инструменты
- SnoopSnitch — приложение для проверки прошивки телефона на установленные и пропущенные патчи безопасности;
- uitkyk — простой скрипт Frida, помогающий обнаружить малварь путем анализа хранящихся в стеке объектов и перехвата функций запуска шелл-команд;
- AndHook — еще один DBI-фреймворк для Android, подобный Cydia Substrate и Xposed;
- androidre — образ Docker с набором утилит для анализа Android-приложений: Apktool, jadx, APKiD, Radare2, Frida и другие;
- iCloudBrutter — брутфорсер паролей Apple ID;
- QARK — инструмент для автоматизированного поиска уязвимостей многих типов в Android-приложениях; в некоторых случаях QARK может генерировать готовый эксплоит или набор команд ADB для эксплуатации уязвимости;
- droidstatx — утилита, генерирующая майнд мап с информацией о приложении и его возможных уязвимостях;
- avd-root — скрипт для рутинга эмулятора Android;
- bfinject — утилита для внедрения библиотек в любые iOS-приложения; требует iOS 11.0–11.1.2 с джейлбрейком;
- bfdecrypt — утилита для дешифровки iOS-приложений; требует iOS 11.0–11.1.2 с джейлбрейком.
Почитать
Отключение защиты от запуска в эмуляторе
Bypassing Android Anti-Emulation, Part (I), Part (II) — серия из двух статей, посвященных взлому защиты от запуска в эмуляторе. Первая часть вводная, рассказывает об устройстве приложения для Android и о том, как работает система защиты от запуска в эмуляторе. Вторая часть практическая и рассказывает, как декомпилировать приложение и отключить защиту.
Интересные моменты:
- Практически все механизмы защиты от запуска в эмуляторе основаны на чтении системных переменных и поиске в них определенных строк. Например,
Build.FINGERPRINT.startsWith("generic")
,Build.MODEL.contains("google_sdk")
,Build.BRAND.startsWith("generic")
. - Процесс отключения защиты от запуска в эмуляторе в целом почти не отличается от процесса взлома легитимного приложения. Декомпилируем приложение с помощью jadx или любого другого декомпилятора, находим код проверки на эмулятор (он часто располагается в функциях с именами типа
carrierNameFromTelephonyManager()
,isEmulator()
илиsmellsLikeAnEmulator()
), затем дизассемблируем приложение с помощью apktool, находим тот же вызов функции в коде smali и вырезаем его. В случае применения ProGuard или другого обфускатора это будет сделать сложнее (читаемые имена превратятся в нечто вроде "ab"), но все же достаточно легко.
Уязвимости экрана блокировки iOS и способы их митигации
http://blog.dinosec.com/2014/09/bypassing-ios-lock-screens.html — список всех уязвимостей экрана блокировки iOS, найденных с версии iOS 5 по текущую. Список включает в себя ссылки на описание уязвимостей, а также видеодемонстрации их эксплуатации.
Суммарные данные:
- iOS 5.x — 4 уязвимости;
- iOS 6.x — 8 уязвимостей;
- iOS 7.x — 12 уязвимостей;
- iOS 8.x — 11 уязвимостей;
- iOS 9.x — 6 уязвимостей;
- iOS 10.x — 10 уязвимостей;
- iOS 11.x — 5 уязвимостей.
Советы, как обезопасить себя от взлома через экран блокировки:
- отключи Siri на экране блокировки: Settings → Passcode → Siri (or Voice Dial) → Allow access when locked;
- отключи Passbook на экране блокировки: Settings → Passcode → Passbook → Allow access when locked;
- отключи Control Center на экране блокировки: Settings → Control Center → Access on Lock Screen;
- отключи панель уведомлений на экране блокировки: Settings → Passcode → Allow access when locked;
- отключи показ пропущенных звонков на экране блокировки: Settings → Notifications → Phone → Show on Lock Screen;
- отключи показ СМС на экране блокировки: Settings → Notifications → Messages → Show Previews;
- отключи блокировку/разблокировку с помощью чехла: Settings → General → Lock/Unlock;
- отключи камеру на экране блокировки: Settings → General → Camera;
- установи цифро-буквенный пароль.
(Не)безопасность приложений, использующих ADB Workaround
Analysing Use of High Privileges in Android Applications — исследование, посвященное безопасности приложений, использующих так называемый ADB Workaround для получения более высоких привилегий в системе без root.
Суть в следующем. В Android, кроме так называемых normal и dangerous полномочий, доступных любым приложениям (вторые только с согласия пользователя), существуют также полномочия уровня system и signature, которые позволяют приложениям устанавливать и удалять любой софт, делать скриншоты и скринкасты, бэкап и многие другие вещи, запрещенные обычным приложениям.
Полномочия уровня system доступны только приложениям, поставляемым вместе с прошивкой (каталог /system/priv-app
), полномочия signature — приложениям, подписанным ключом самой прошивки (то есть тем, который разработала компания — производитель смартфона).
Но есть один трюк, позволяющий получить полномочия уровня signature даже приложениям, не подписанным ключом прошивки. Дело в том, что полномочия signature получает любой процесс, запущенный с помощью команды adb shell
. Некоторые разработчики пользуются этим трюком и встраивают в свои приложения специальные прокси, которые затем просят запустить пользователя с помощью ADB или скрипта. Прокси получает команды от приложения и выполняет привилегированные операции.
Исследователи проанализировали код и поведение нескольких приложений, использующих этот метод, и выяснили, что они могут представлять серьезную опасность для их пользователей. Несмотря на то что большинство приложений используют пароль при подключении к прокси, обычно этот пароль либо зашит в само приложение, либо генерируется динамически, но сохраняется в доступный для чтения файл.
В теории злоумышленник может создать троян, который будет эксплуатировать эту уязвимость, подключаться к прокси и с его помощью делать снимки экрана или записывать скринкасты. И все это без получения каких-либо прав в системе.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»