Новость из категории: Информация

Роботы ошибаются: ищем баги в приложениях для Android

Содержание:
1. Введение (Вы читаете данный раздел);
2. Пара слов о безопасности и инструменты для анализа;
3. Динамический анализ;
4. Какие бывают уязвимости;
5. SQLite-inj в приложении.
Роботы ошибаются: ищем баги в приложениях для Android

Новые ошибки в веб-сервисах, приложениях и операционных системах — все это уже так привычно и знакомо. Подобные новости мы читаем каждый день. Но что странно: если взять мобильное направление, то здесь царит тишина. И если иногда проскакивают новости об уязвимостях в самих ОС, то никакого багтрака по мобильным приложениям нет. Почему?

Введение

Почта, календарь, список контактов, менеджер паролей, сотни фотографий — все это хранится у нас на телефоне. Смартфон становится своеобразным ключиком ко всему: многие сервисы привязывают номер телефона для возможности восстановления пароля. При этом мы по какой-то необъяснимой причине на подсознательном уровне считаем, что все содержимое смартфона априори находится в безопасности. Худшее, что может произойти, в глазах обычного обывателя — это потеря или кража девайса. Однако на этом список угроз не заканчивается.



Мобильные приложения по сути своей мало чем отличаются от обычных. И глупо было бы говорить о том, что они более безопасны. Напротив, мобильные разработчики не сильно запариваются насчет безопасности, расставляя приоритеты в сторону функциональности и юзабилити. Программисты здесь еще не научены горьким опытом и пока мало задумываются о безопасности — главное, чтобы все хорошо работало и пользователи скачивали/покупали приложения. Поэтому нет ничего странного, что в огромном количестве приложений (в том числе банковских) кроются уязвимости — и выявляются они чаще всего простейшим анализом. Неудивительно, что безопасность мобильных приложений вызывает все больший интерес как среди злоумышленников, так и среди исследователей. Хороший пример: компания «Яндекс» в конце 2012 года добавила в конкурс «Охота за ошибками», помимо вебсервисов, свои приложения для iOS и Android. В нашей программе сегодня — разобраться с основными типами уязвимостей в мобильных приложениях для мобильной платформы Android. Но прежде — освоим матчасть.

Android-приложение изнутри

Операционная система Android устроена таким образом, что каждое приложение запускается под специальной виртуальной машиной Dalvik. Ее отличительная особенность — низкое энергопотребление, что хорошо подходит для ARM-устройств. Программы для Android пишутся на Java (с использованием внешних библиотек на других языках благодаря расширению NDK), однако стандартный байт-код не используется. Вместо этого Dalvik использует свой формат — dex. Обычные class-файлы конвертируются в dex с помощью утилиты dx, входящей в Android SDK.

Приложения для Android распространяются в виде APK-файлов, которые являются исполняемыми ZIP-архивами. Внутри архива используется простая структура файлов:
• Директория META-INF:
  • MANIFEST.MF — файл-манифест;
  • CERT.RSA — сертификат;
  • CERT.SF—хеши файлов и ресурсов;
• Директория res — ресурсы, не содержащиеся в resource.arsc;
• Директория assets — дополнительные файлы;
• AndroidManifest.xml — дополнительный файл-манифест;
• classes.dex—скомпилированный файл для Dalvik;
• resources.arsc — перекомпилированные ресурсы;
• lib — не всегда есть, содержит библиотеки.
С точки зрения исследователя интерес представляют два файла — classes. dex и AndroidManifest.xml. Декомпилировав classes.dex, можно получить исходный код приложения. А в файле AndroidManifest.xml хранится информация о настройках данного приложения, например доступные ему провайдеры (разрешение на чтение, отправку SMS и так далее).

Таким образом, алгоритм реверсинга большинства приложений для Android выглядит плюс-минус одинаково:
1. Распаковать APK-архив.
2. Конвертировать с помощью утилиты dex2jar файл classes.dex в classes.jar.
3. Открыть classes.jar в Java-декомпиляторе, например JD-GUI.



Ваша первоочередная задача - покупка холодильного оборудования промышленного назначения, так что поиском багов в Android Вам совершенно некогда заниматься. И в связи с этим я хочу порекомендовать Вам сайт www.insolar.com.ua (http://www.insolar.com.ua/). Только здесь Вы сможете приобрести данное оборудование высочайшего класса по самой низкой цене!

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх