Небезопасное хранение и обмен данными
Распространённые недостатки
«Небезопасное хранение и обмен данными» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.
Две классические уязвимости
Две наиболее распространённые уязвимости мобильных приложений — это небезопасное хранение данных и небезопасная коммуникация. Они входят в OWASP Mobile Top 10.
Обе возникают из-за того, что разработчики слишком сильно доверяют устройству и плохо защищают данные.
Где приложения хранят данные
Приложения хранят данные в /data/data/<package>/:
- SharedPreferences: файлы XML с парами «ключ — значение».
- базы данных SQLite.
- Внутренние и внешние файлы.
Специалисты по тестированию безопасности проверяют каждый из этих источников на наличие секретов, хранящихся в открытом виде.
/data/data/com.app/shared_prefs/prefs.xmlСекреты в открытом виде
Распространённая уязвимость — хранение паролей, токенов или PII в открытом виде в SharedPreferences или базе данных.
На устройстве с RootCheck, через резервную копию или с помощью Objection злоумышленник может прочитать их напрямую. Конфиденциальные данные следует шифровать или хранить в защищённом аппаратном хранилище.
<string name="auth_token">eyJhbGci...plaintext...</string>Риски внешнего хранилища
Данные, записанные во внешнее хранилище (область SD-карты), в старых версиях Android доступны для чтения всем, а также любому приложению с разрешением на работу с хранилищем.
Сохранение там конфиденциальных файлов делает их доступными для других приложений. Записи журнала, сохраняемые на диске, создают аналогичную утечку.
Правильный способ хранения секретов
К защищённым вариантам относятся Android Keystore (ключи хранятся в аппаратном хранилище и никогда не передаются приложению) и EncryptedSharedPreferences.
Keystore может выполнять криптографические операции, не раскрывая ключ, что гораздо безопаснее, чем зашитый в коде ключ.
Небезопасная коммуникация
Небезопасная коммуникация означает, что данные передаются без надлежащей защиты. Худший вариант — незашифрованный HTTP, при котором любой участник сети может прочитать или изменить трафик.
Для всего конфиденциального трафика необходимо использовать HTTPS/TLS.
http://api.app.com/login # cleartext, credentials exposedПерехват трафика
Чтобы изучить трафик, направьте устройство через прокси для перехвата, например Burp Suite. Установите сертификат CA Burp на устройство, чтобы можно было читать HTTPS.
Это позволяет увидеть конечные точки API, параметры и любые конфиденциальные данные, передаваемые по сети.
Закрепление сертификата
Качественно разработанные приложения используют закрепление сертификата, чтобы отклонять любые сертификаты, кроме собственного, блокируя работу обычного прокси.
Как Вы уже узнали, обход закрепления SSL с помощью Frida отключает эту защиту, позволяя перехватывать трафик и оценивать фактическую безопасность API.
Слабый TLS и проверка сертификатов
Даже при использовании HTTPS встречаются такие недостатки, как доверие ко всем сертификатам, принятие просроченных сертификатов или отключение проверки имени узла — часто это добавляют, чтобы упростить разработку.
Из-за этого злоумышленник может провести атаку «человек посередине», несмотря на наличие TLS.
Резервные копии и журналы
Ещё две причины утечек:
android:allowBackup="true"позволяет любому, у кого есть доступ к устройству, извлечь данные приложения черезadb backup.- Подробный вывод logcat может содержать токены или PII.
В рабочей среде и то и другое следует отключать или очищать.
adb backup -f data.ab com.appБуфер обмена и снимки экрана
Две часто упускаемые из виду утечки: копирование конфиденциальных данных в буфер обмена (в старых версиях Android его содержимое доступно другим приложениям) и системный снимок экрана, создаваемый при сворачивании приложения.
Банковские приложения предотвращают это с помощью флага окна FLAG_SECURE, который блокирует снимки экрана и предварительный просмотр в переключателе задач.
Быстрая проверка
Вспомните, где в Android безопаснее всего хранить криптографические ключи.
Итоги
Теперь Вы понимаете, что такое небезопасное хранение данных и коммуникации:
- Приложения допускают утечки секретов в открытом виде через SharedPreferences, базы данных, внешнее хранилище и журналы.
- Храните секреты в Android Keystore или EncryptedSharedPreferences.
- Небезопасные коммуникации варьируются от незашифрованного HTTP до слабой проверки TLS; для перехвата используйте Burp.
- Обходите закрепление сертификата с помощью Frida; отключайте allowBackup и очищайте журналы.
Вы завершили курс по тестированию безопасности мобильных приложений.
Часто задаваемые вопросы
Урок «Небезопасное хранение и обмен данными» бесплатный?
Да — полный текст урока «Небезопасное хранение и обмен данными» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.
Чему я научусь в уроке «Небезопасное хранение и обмен данными»?
Распространённые недостатки Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?
Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Небезопасное хранение и обмен данными»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?
Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Структура приложений Android
- Статический анализ APK
- Динамический анализ с Frida
- Небезопасное хранение и обмен данными