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

Joined
Aug 17, 2016
Messages
1,788
Reaction score
826
19c39cd80d52821c78ad5.png

В предыдущей части Тестирования но проникновение приложения Андроид – часть 7 мы обсуждали небезопасные внешние и внутренние хранилища и небезопасное общение.



Атака через контент-провайдера:

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



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



Требуемые методы

Query (), Insert (), Update (), Delete (), Get Type (), On Create ()



Т.к. эти методы являются такими же, как база данных, прежде всего, мы должны проверить инъекции через URI.



Чтобы проверить инъекции, мы можем использовать инструменты drozer.

Code:
Запустите scanner.provider.finduris –a
fba302158b9e2aa653e73.png


Code:
Запустите scanner.provider.injection -a

8c54ce9dfa57ebc0f1458.png

Content query –Uri

7f768f189ad66e327cb8a.png

Смягчение – Android

Если ваш контент-провайдер предназначен только для использования вашего приложения, установите его как android: exported = false в манифесте. Если вы намеренно экспортируете контент-провайдер, вы также должны указать один или несколько разрешений для чтения и записи.



Если вы используете контент-провайдер для обмена данными между вашими собственными приложениями, предпочтительнее использовать android: атрибут уровня защиты, установленный для защиты «подписи».



При доступе к контенту-провайдеру используйте параметризованные методы запроса, такие как query (), update () и delete (), чтобы избежать потенциальной SQL инъекции из ненадежных источников.



Небезопасная (слабая) криптография:

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

f4120532fc5a33a74f7c6.png

Декодирование base 64 – декодирование имени пользователя

0d2f4fe28fe3f5670810b.png

Мы получаем код от обратной разработки – алгоритм использования аутентификации.

dd8b7b9adeb5bb2e84857.png

Взлом пароля при помощи AES-Exploit

fa0bb67219ee483aefd2a.png

Смягчение:

Не используйте слабые алгоритмы, такие как MD5 / SHA1. Используйте более безопасные альтернативы, такие как SHA-256 или что-то лучшее.



Генерируйте ключи в автономном режиме и храните конфиденциальные ключи с особой осторожностью. Никогда не передавайте личные ключи по небезопасным каналам.



Убедитесь, что учетные данные инфраструктуры, такие как базы данных или сведения о доступе к очереди MQ, должным образом защищены (через жесткие разрешения и средства файловой системы) или надежно зашифрованы, таким образом, чтобы их было сложно дешифровать локальным или удаленным пользователям.



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



Жестко закодированный пароль в исходном коде:

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



Никогда не рекомендуется жестко кодировать пароль. Мало того, что жесткое кодирование пароля позволяет всем разработчикам проекта просматривать пароль, это также затрудняет устранение проблемы.



Если код уже находится в процессе производства, пароль не может быть изменен без исправления программного обеспечения. Если учетная запись, защищенная паролем, взломана, владельцы системы будут вынуждены выбирать между безопасностью и доступностью.
 
Top