forumСоздать тему

В моем мобильном приложении есть пароли, токены, API-ключи — можно ли его реверс-инжинирить?

KKemal S***Участник
Должность
Полевой торговый представитель
Отрасль
Машиностроение
Тип организации
компания с двумя филиалами
Дата регистрации
июнь 2023 г.
Сообщение
62
#1

Реверс-инжиниринг моего Android APK занимает 5 минут. Декомпиляторы (ApkTool, Frida) показывают пароли и токены. Как это защитить?

Понял что нельзя хардкодить API-ключи. Но динамическое получение с сервера тоже нагружает сервер. Есть ли золотая середина?

Есть ли такой же риск в iOS-приложениях? Можно ли читать данные приложения на джейлбрейкнутых устройствах?

DDoki ekibiКоманда Doki
Должность
Официальный аккаунт
Отрасль
Информационная безопасность и цифровые технологии
Тип организации
Doki
Дата регистрации
март 2023 г.
Сообщение
310
Самый полезный#2

Безопасность мобильных приложений: риск реверс-инжиниринга (Android APK/iOS IPA легко декомпилируются). Стратегии защиты: 1) Хранение чувствительных данных: Keychain (iOS), KeyStore (Android), зашифрованные SharedPreferences, 2) Обфускация (ProGuard для Android, SwiftShield для iOS), 3) API-ключи: хранение на сервере (никогда не встраивать), certificate pinning (валидация идентичности сервера), динамическое обновление токенов (короткоживущие токены, выдаваемые сервером), 4) Детект root/jailbreak (API-запрос падает при обнаружении, но не гарантирует 100%), 5) Защита во время выполнения (виртуализация кода: сложно/дорого, низкая рентабельность для малого бизнеса), 6) Сетевая безопасность: TLS 1.2+, certificate pinning (защита от MITM), 7) Анти-инструментация против Frida (сложно, игра в кошки-мышки). Практический совет: держите API-ключ на сервере, приложение → запрос к серверу → сервер возвращает аутентифицированный токен, токен кэшируется на клиенте (время жизни: 1-24 часа). Хранение данных: чувствительные данные = шифровать (библиотека Android Encrypter, iOS Keychain), нечувствительные = SharedPreferences/UserDefaults. Риск джейлбрейка: доступ к данным возможен (права root), митигация = шифрование + certificate pinning (ограничивает векторы атаки). Риск на iOS ниже (закрытая экосистема), на Android выше (открытая, рутовать легко). Пентест: сканирование уязвимостей инструментами (Burp Suite mobile, чек-лист OWASP Mobile Top 10).

YYavuz A***УчастникУчастник сообщества
Дата регистрации
нояб. 2022 г.
Сообщение
139
#3

не хардкодь api key. держи на сервере запрашивай токен из приложения. используй certificate pinning (для защиты от MITM). в общем используй keystore/keychain для чувствительных данных. обфусцируй apk через proguard. добавь проверку root/jailbreak...

EEsra O***Участник
Должность
Директор по качеству
Отрасль
Сельское хозяйство
Тип организации
команда из 8 человек
Дата регистрации
май 2023 г.
Сообщение
84
#4

Мобильная безопасность: 1) AndroidKeyStore: KeyStore.getInstance('AndroidKeyStore'), генерация ключей с шифрованием, 2) iOS Keychain: SecItemAdd() для безопасного хранения, 3) Аутентификация API: обновление OAuth-токенов (истекают через 1 час, выдаются сервером), 4) Certificate pinning (TrustKit для iOS, Network Security Configuration для Android), 5) Обфускация (правила ProGuard: защищать API-классы, остальное путать), 6) Проверки в рантайме (RootBeer для Android, DTTJailbreakDetection для iOS), 7) Защита от Frida (детект хуков: валидация сигнатур API-функций). Иерархия хранения: Общее (нет), Локальное (шифрованное), Keychain/Keystore (аппаратная защита, если есть). Инструменты пентеста: Burp Suite (мобильный прокси), Frida (интерактивная инструментация), декомпилятор APK (apktool, dex2jar), отладчики (gdb на Android, lldb на iOS).

UUğur V***УчастникУчастник сообщества
Дата регистрации
авг. 2023 г.
Сообщение
282
#5

не хардкодь API-ключи, держи на сервере. логин в приложении → сервер шлет токен → клиент кэширует. токен протухает за 1-4 часа. используй Keystore/Keychain для хранения данных. обфусцируй чрез ProGuard. добавь проверку на jailbreak/root если обнаружено — закрывай апп...

UUğur Y***Ветеран
Должность
Руководитель клиники
Отрасль
Кейтеринг
Тип организации
среднее предприятие
Дата регистрации
март 2023 г.
Сообщение
253
#6

Слои безопасности мобильного приложения: Сеть (TLS 1.2+, certificate pinning), API (токенная аутентификация, OAuth, короткое время жизни), Хранение (шифрованный keystore) Код (обфускация защита от модификации), Рантайм (детект jailbreak/root). Модель угроз: физический доступ (рутованное устройство, дебаггер) сетевой доступ (перехват через прокси — блокируется cert pinning), анализ кода (реверс-инжиниринг — усложняется обфускацией). OWASP Mobile Top 10: небезопасная передача (предотвращай TLS bypass) небезопасное хранение (шифрование в keystore), небезопасная аутентификация (лучшие практики OAuth), слабая криптография (AES-256), инъекции на клиенте (валидация ввода).

JJülide A***Участник
Должность
Главный бухгалтер
Отрасль
Ювелирные изделия
Тип организации
компания из 20 человек
Дата регистрации
май 2024 г.
Сообщение
103

Doki · Сканирование уязвимостей · 2026

#7

Давайте немного раскрою техническую сторону. короче без измерений мы всегда приходим к одному и тому же.

Интересно, есть ли те кто делает иначе.

GGamze E***УчастникУчастник сообщества
Дата регистрации
май 2022 г.
Сообщение
248
#8

У нас так же.

SSena B***УчастникУчастник сообщества
Дата регистрации
июль 2024 г.
Сообщение
353
#9

Я бы не торопился. Без измерений мы всегда приходим к одному и тому же.

На этом всё извините, если затянул.

YYiğit D***Эксперт
Должность
Финансовый директор
Отрасль
Медицинские услуги
Тип организации
сеть магазинов
Дата регистрации
дек. 2023 г.
Сообщение
176
#10

Мои сомнения развеялись, спасибо.

AAv. Kemal U***Эксперт
Должность
Юрист · IT
Тип организации
Компания на 300 человек
Дата регистрации
сент. 2023 г.
Сообщение
168
#11

Здесь есть ловушка, не могу промолчать. Если разрешение и объем тестирования не зафиксированы письменно, тест не начинать.

Не полагайтесь на одну меру защиты; действуйте слоями.

GGürkan K***Участник
Должность
Планирование производства
Отрасль
Упаковка
Тип организации
стартап на ранней стадии
Дата регистрации
май 2024 г.
Сообщение
109

Doki · Тест на проникновение · 2026

#12

Хочу задать вопрос. Когда пытаешься изменить всё сразу ничего не приживается.

Надеюсь, это будет полезно.

CCem B***УчастникУчастник сообщества
Дата регистрации
сент. 2023 г.
Сообщение
50
#13

У меня та же ситуация, поэтому и спрашиваю. Если разрешение и объем тестирования не зафиксированы письменно тест не начинать.

OOrhan D***Эксперт
Должность
Продавец-консультант
Отрасль
ИТ-услуги
Тип организации
стартап на ранней стадии
Дата регистрации
нояб. 2024 г.
Сообщение
228
#14

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

FFeyza K***Участник
Должность
Стажер
Отрасль
Кейтеринг
Тип организации
производство
Дата регистрации
нояб. 2024 г.
Сообщение
2
#15

Сохранил. Чем сложнее отменить решение тем медленнее его принимайте.

Ошибка сделанная на стороне безопасность мобильных приложений, обычно исправима но дорого.

SSimgeУчастник
Должность
Организатор мероприятий
Дата регистрации
май 2024 г.
Сообщение
88

Doki · Настройка управления логами · 2025

#16

Не знал об этом.

ZZübeyde B***Эксперт
Должность
Графический дизайнер
Отрасль
Сельское хозяйство
Тип организации
индивидуальный предприниматель
Дата регистрации
окт. 2024 г.
Сообщение
128
#17

Мне тоже интересно. Большая часть потерь времени копится на задачах, ожидающих согласования.

Если напишете результат здесь, это поможет и другим.

LLale Ç***Новый участник
Должность
Специалист технической поддержки
Отрасль
Туризм
Тип организации
сеть магазинов
Дата регистрации
июнь 2026 г.
Сообщение
161
#18

Вопрос будет немного наивным, извините заранее. Доступность резервной копии в той же сети и под той же учетной записью делает ее частью цели атаки.

Изменение платежных данных никогда не подтверждается через тот же канал. Я бы пошел этим путем.

EElif Z***Эксперт
Должность
Планирование производства
Отрасль
стекло
Тип организации
среднее предприятие
Дата регистрации
февр. 2023 г.
Сообщение
164
#19

Взял на заметку, спасибо. Если делаете впервые, начните с малого, масштабирование потом.

Исправьте, если я ошибаюсь.

HHavva G***УчастникУчастник сообщества
Дата регистрации
февр. 2023 г.
Сообщение
384
#20

Эта тема в архиве. Изменение платежных данных никогда не подтверждается через тот же канал.

Исправьте, если я ошибаюсь.

Написать ответ