Тестирование на проникновение приложений для Android - часть 1

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

Тестирование безопасности Android чаще используется службами безопасности для проверки уязвимостей в приложениях Android. После веб-приложений больше внимания следует уделить тестированию на проникновение мобильных приложений. Давайте начнем с некоторых основ.



Основная структура устройства Android

05fc35662f07f79c9bd91.png

Ядро Linux

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



  • Пользовательская модель разрешений
  • Изоляция процесса
  • Расширяемый механизм для безопасного IPC
  • Возможность удаления ненужных и потенциально незащищенных частей ядра


Уровень абстракции оборудования просто предоставляет приложениям прямой доступ к аппаратным ресурсам.



Bluetooth, аудио, радио и т.д.

2a308507189a4014de6c7.png

В верхней части Hardware Abstraction Layer находится слой, который содержит некоторые из наиболее важных и полезных библиотек.



Ниже приведен список полезных библиотек, таких как:

Surface Manager: управляет окнами и экранами

Media Framework: Это позволяет использовать различные типы кодеков для воспроизведения и записи различных носителей

SQLite: это облегченная версия SQL, которая используется для управления базой данных

WebKit: это средство для работы браузера

OpenGL: используется для передачи 2D и 3D контента на экран соответственно, библиотеки в Android написаны на C и C ++



Виртуальная машина Dalvik, специально разработанная Android Open Source Project (Проект Android по разработке программного обеспечения с открытым исходным кодом) для выполнения приложений, написанных для Android. Каждое приложение, работающее на Android-устройстве, имеет собственную виртуальную машину Dalvik.



Android Runtime (ART) является альтернативой Виртуальной Машине Dalvik, выпущенной с Android 4.4 в качестве экспериментальной версии, в Android Lollipop (5.0) он может полностью заменить Виртуальную Машину Dalvik.



Значительное изменение в ART связано с досрочной компиляцией (ahead-of-time (AOT)) и сборкой ненужных данных. В досрочной (AOT) компиляции приложения для Android будут скомпилированы, когда пользователь установит их на своем устройстве, тогда как в Dalvik используется компиляция точно в нужный момент (Just-in-time(JIT)), в которой байт-код компилируется, когда пользователь запускает приложение.



Переход к последней является обычным делом. Начиная с версии Android 4.4, имеется также еще один способ работы под названием Android Runtime (ART), и пользователь может переключаться между средами DVM и ART Runtime.



Фреймворк приложения

Уровень Фреймворка приложения предоставляет множество услуг более высокого уровня для приложений класса Java. Разработчикам приложений разрешено использовать эти службы в своих приложениях.

22871b27c20e5b19daeca.png

Фреймворк приложения включает следующие ключевые службы



Менеджер активности - жизненный цикл приложения и стек управляются менеджером активности



Провайдер контента (Content Provider)
Компонент провайдера контента поставляет данные от одного приложения к другому по запросу.



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



Через провайдера контента другие приложения могут запрашивать или даже изменять данные (если это позволяет поставщик контента).



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



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



Менеджер уведомлений - Позволяет приложениям отображать оповещения и уведомления пользователю.



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



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



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



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



Приложения
Приложения находятся на вершине стека программ Android. Они включают как «родные» приложения, обеспечиваемые конкретной реализацией Android (например, веб-браузер и приложения электронной почты), так и приложения третьей стороны, установленные пользователем после покупки устройства. Типичные области применения: камера, будильник, часы, калькулятор, контакты, календарь, медиаплеер и т. д.
 
Top