Тестирование на проникновение приложения Андроид – часть 7

Joined
Aug 17, 2016
Messages
1,788
Reaction score
826
14c60f88bb397f182a9d6.png

В предыдущей части тестирование на проникновенние приложения Андроид - часть 6 мы рассматривали тот вопрос, в котором уязвимости были классифицированы в TOP 10.



Небезопасный вход - ADB Logcat:

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



Андроид Logcat позволяет вам:

  • Просматривать, фильтровать и собирать все журналы приложений
  • Просматривать, фильтровать и собирать все системные журналы, такие как события инструмента по сбору ненужных данных
Найти все неожиданные возникшие ошибки



Иногда при входе в приложение в журналах можно найти эти учетные данные.



Смягчение: adb logcat -c” (это очищает журнал.) Но убедитесь во время кодировки приложения, чтобы ваши личные данные не появлялись в журнале.



Небезопасное внешнее и внутреннее хранилище

Как мы уже знаем, все данные приложения в устройстве могут быть обнаружены в /data/data directory, а все приложения (apk files) в устройстве можно найти в /data/data directory.



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



Внутреннее хранилище

Внутреннее хранилище - это еще один способ хранения данных в приложениях Android. Разработчики могут хранить данные в приложениях Android локально различными способами.



Примеры

Общие предпочтения, файлы, кэш, базы данных SQLite, lib, файлы журналов, двоичные хранилища данных, хранилища файлов cookie и т.д.



Общие предпочтения (Shared preferences)

“Общие Предпочтения” позволяют разработчику сохранять и извлекать постоянные пары ключ-значение примитивных типов данных, таких как Booleans, float, ints, longs и strings.Общие предпочтения создаются в приложениях Android, используя класс Общие предпочтения (Shared preferences).



Базы данных Sq-lite

Базы данных Sq-lite представляют собой легкие файловые базы данных. Обычно они имеют расширение «.db» или «.sq-lite». Aндроид обеспечивает полную поддержку баз данных Sq-lite. Базы данных, которые мы создаем в приложении, будут доступны любому классу приложения. Другие приложения не могут получить к ним доступ.

f36bd5a32136b34157985.png

c37b8be8976ef0afba7e8.png

Внешнее хранилище

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

426bb0306f27bf9d301fd.png

Смягчение:

  • Для локального хранилища API администрация приложений Aндроид может быть использована для принудительного шифрования в локальных файлах хранилища «установка шифрования хранилища»
  • Убедитесь, что любые свойства общих предпочтений NOT_MODE_WORLD_READABLE, если это явно не требуется для обмена информацией между приложениями
Для хранения SD CARD может быть достигнута безопасность через библиотеку ‘javax.crypto’.



Небезопасное общение

Отсутствие проверки сертификата: приложение Aндроид не может проверить идентичность сертификата. Большинство приложений игнорируют предупреждения и принимают любой самоподписанный сертификат. Некоторые приложения вместо этого передают трафик через HTTP-соединение.



Общение со слабым хэндшейком: приложение и сервер выполняют хэндшейк SSL/TLS, но используют небезопасный набор шифров, который уязвим для атак MITM. Таким образом, любой злоумышленник может легко расшифровать это соединение.



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

a61792786d9edc0b90a3c.png

Смягчение:

  • Используйте сертификаты, подписанные доверенным провайдером CA, и считайте сертификат, прикрепленный к приложениям, ориентированным на безопасность.
  • Применяйте SSL/TLS для транспортировки каналов, которые будут использовать мобильное приложение для передачи конфиденциальной информации, токенов сеанса или других конфиденциальных данных в интерфейсный API или веб-службу.
  • Устанавливайте только безопасное соединение после проверки подлинности сервера конечной точки с использованием доверенных сертификатов в ключевой цепи.
 
Top