Статья опубликована в рамках: Научного журнала «Студенческий» № 21(149)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
АНАЛИЗ И ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ ANDROID ПРИЛОЖЕНИЙ
ANALYSIS AND SECURITY OF ANDROID APPLICATIONS
Shadrin Filipp
student, Institute of Fundamental Education, Ural Federal University,
Russia, Yekaterinburg
Tatarov Dmitriy
student, Faculty of Secure Information, University of Information Technology, Mechanics and Optics,
Russia, Saint-Petersburg
Kalinin Vadim
Independent researcher,
Russia, Saint-Petersburg
АННОТАЦИЯ
Бурный рост технологий привёл к массовому применению мобильных устройств. Пользователи всё больше времени проводят за мобильными устройствами. Вслед за этим, происходит внедрение информационных технологий в различные сферы жизни человека. Это повиляло на смещение фокуса злоумышленников – хакеры сместили внимание с инфраструктуры сервисов на мобильные приложения, расположенные на устройствах клиентов, с целью похищения данных или денежных средств со счетов. Успех таких атак напрямую зависит от уровня безопасности приложения. Все эти факторы подводят нас к мысли о том, что существует реальная необходимость не только в оценке текущего состояния информационной безопасности наиболее распространённых операционных систем, а также, в систематизации основных угроз и уязвимостей для мобильных приложений.
ABSTRACT
The explosive growth of technology has led to the massive use of mobile devices. Users spend more and more time on mobile devices. Following this, there is the introduction of information technology in the field of human life. This led to a shift in the focus of attackers - hackers shifted their attention from the infrastructure of services to mobile applications located on clients' devices in order to steal data or money from accounts. The success of such attacks directly depends on the security level of the application. All these factors lead us to the idea that there is a system not only in the system of the current state of information security, the most common system security, but also in the system of the main threats and vulnerabilities for mobile applications.
Ключевые слова: анализ безопасности; мобильная разработка; Android; безопасность приложения.
Keywords: security assessment; mobile development; Android; application security.
Чтобы приступить к исследованию кода в Android приложениях, необходимо выполнить декомпиляцию приложения. Декомпиляция – это процесс воссоздания исходного кода с помощью специальной программы, под названием декомпилятор.
Приложение имеет выделенную для него область памяти. Кроме того, оно работает в изолированной среде. Различные приложения могут взаимодействовать как между собой, так и с операционной системой. Для взаимодействия с ОС Android в некоторых случаях приложению необходимо запрашивать специальные разрешения [1], которые должен подтвердить пользователь.
Android проекты компилируются в специальный файл с расширением .apk (сокращение от Android Package). Это разновидность формата JAR. Apk файл представляет собой архив, внутри которого находятся исполняемые и конфигурационные файлы, а также, ресурсы приложения. Одним из ресурсов в apk файле является файл AndroidManifest.xml.
Этот файл содержит в себе основную информацию о приложении, хранит необходимые для работы приложения разрешения [1], которые нужно запросить у операционной системы, а также, выполняет следующий список задач:
- описывает компоненты приложения (Services, Broadcasts, Content Providers);
- содержит список библиотек, необходимых для работы приложения;
- объявляет минимальный уровень API Android, на котором может быть запущено приложение;
- объявляет имя пакета (Java package) приложения, которое будет уникально идентифицировать его на устройстве.
В качестве способов защиты в данной статье будут рассмотрены три темы:
- обфускация исходного кода приложения;
- использование криптографических преобразований в коде;
- отсутствие вызовов системного отладчика кода.
Обфускация (obfuscation) – это приведение исходного текста или исполняемого кода программы к виду, сохраняющему функциональность, но затрудняющую анализ, понимание алгоритмов работы и модификацию при декомпиляции [2]. То есть, основное назначение обфускации – запутывание человека, исследующего декомпилированный код приложения. Так как приложение для ОС Android устанавливается на устройство, становится очень просто получить исходный код приложения в декомпилированном виде. Если анализом исходного кода будет заниматься злоумышленник, ему не составит труда в довольно короткие сроки изучить его, найдя уязвимости в логике работы приложения, обнаружить местоположение проверок на безопасность кода и так далее. Таким образом, к обфускации прибегают для запутывания злоумышленника, если тот прибегнет к анализу исходного кода приложения. Дополнительным плюсом применения обфускации можно назвать уменьшение размера приложения.
В приложении в качестве ключа шифрования можно использовать строку, получаемую от пользователя, например - пин-код. Так как для расшифровки возникает необходимость локального хранения ключа, данный пин-код должен проходить дополнительный этап криптографических преобразований, чтобы избежать хранения в открытом виде. В обычных условиях, тяжело получить информацию, хранимую на устройстве пользователя, санкционированным способом, однако, при наличии root прав на устройстве, любую информацию со смартфона становится очень легко получить. Таким образом, шифрование является дополнительным шагом защиты, ведь, в случае получения доступа к зашифрованному пин-коду, злоумышленник не сможет им сразу воспользоваться, ему будет необходимо сперва расшифровать полученную строку.
Системный логгер – это программа журналирования событий, происходящих в системе или приложении [3]. Ей очень удобно пользоваться разработчикам для отладки приложения на этапе разработки, например, для вывода сетевых запросов и ответов, которые обрабатывает приложение, или для визуализации других данных. Однако, получить доступ к системному журналу устройства довольно легко, для этого даже не нужны root права. Достаточно просто подключить устройство к компьютеру и запустить специальную утилиту под названием ADB – Android Debug Bridge [4]. Таким образом, стоит вырезать из приложения все вызовы системного отладчика на этапе сборки релизной версии приложения.
Рассмотренные способы защиты являются очень эффективными с точки зрения обеспечения безопасности, при этом, они очень просты в реализации. Это значит, что разработчикам Android приложений стоит воспользоваться ими при создании своего продукта.
Список литературы:
- Android Permissions - [электронный ресурс] – Режим доступа. – URL: https://developer.android.com/guide/topics/permissions/overview
- Общая безопасность приложений - [электронный ресурс] – Режим доступа. – URL: https://tproger.ru/articles/application-security/
- Системный отладчик - [электронный ресурс] – Режим доступа. – URL: https://studfile.net/preview/7229413/
- 4pda ADB - [электронный ресурс] – Режим доступа. – URL: https://4pda.ru/forum/index.php?showtopic=383300
Оставить комментарий