Операционная система Android

Общий обзор проблемы безопасности ОС Android. Развитие индустрии по борьбе с вредоносным и мошенническим ПО. Разработка Системы ранжирования уровней опасности Android приложений. Выбор производителя и типа СУБД. Тестирование программного обеспечения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 13.02.2016
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • Раздел 1. Общий обзор проблемы безопасности ОС Android. Постановка задачи на дипломное проектирование
    • 1.1 Развитие индустрии по борьбе с вредоносным и мошенническим ПО
    • 1.2 Описание предметной области
    • 1.3 Постановка задачи на дипломное проектирование, требования к системе
    • 1.4 Входные и выходные данные
    • 1.5 Система безопасности операционной системы Android
    • 1.6 Способы преодоления безопасности защиты ОС Android
    • 1.7 Типы опасных объектов
    • 1.8 Структура Android приложений
    • 1.9 Анализ существующих систем определения уровня опасности
    • Выводы
  • Раздел 2. Проектирование системы
    • 2.1 Анализ и выбор языка программирования для проектирования Системы
    • 2.2 Разработка Системы ранжирования уровней опасности Android приложений
    • 2.2.1 Программные средства разработки
    • 2.2.2 Аппаратная среда разработки
    • 2.2.3 Алгоритм функционирования Системы
    • 2.2.4 Выбор производителя и типа СУБД. Проектирование структуры базы данных
    • 2.2.5 Механизм ранжирования приложений по метаданным и по исполняемому коду
    • 2.2.6 Интерфейс пользователя
    • 2.2.7 Схема работы модулей системы
    • Выводы
  • Раздел 3. Оценка эффективности принятых решений
    • 3.1 Выбор и обоснование оценок эффективности
    • 3.2 Выбор и обоснование методики тестирования
    • 3.3 Тестирование разработанного программного обеспечения
    • 3.3.1 Требования к Системе
    • 3.3.2 Средства тестирования
    • 3.3.3 Результаты тестирования системы
    • 3.4 Оценка и результатов
    • 3.7 Надежность разрабатываемой системы
    • Выводы
  • Заключение
  • Список литературы
    • Приложение 1. Руководство пользователя
    • Приложение 2. Распечатка текстов программных модулей

Введение

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

По данным IDC, квартал от квартала доля использования операционной системы Android только растёт и в конце 2012 года достигает 75%

На Рисунке 1 представлена картина динамики роста доли проданных устройств на базе платформы Android за последние два года.

Рисунок 1. Доля Android на фоне других мобильных операционных систем

Подавляющее большинство устройств на ОС Android составляют смартфоны. Являясь большей частью компактным персональным компьютером, смартфон дополнен функциональностью мобильного телефона.

Смартфоны отличаются от обычных мобильных телефонов наличием операционной системы Android. Данная платформа позволяет любому разработчику создать приложение и начать его продавать в специальном магазине приложений Google Play. Так как «из коробки» устройства на базе Android содержат объективный минимум предустановленных приложений, то использование магазина и сторонних разработчиков приложений вместе с их разработками позволяет по достоинству раскрыть возможности операционной системы Android.

Следует заметить, что в борьбе за покупателя производители смартфонов всё больше и больше снижают себестоимость устройств. Благодаря этому смартфон можно приобрести по бросовой цене и подарить его сыну или бабушке.

Цифры статистики подтверждают тот факт, что смартфоны на ОС Android есть в каждой семье и у детей и у родителей.

Производители электроники внедряют мобильные операционные системы в бытовые устройства -- холодильники, стиральные машины. Разработку «умной техники», способной передавать данные и команды через интернет, ведут уже более 30 компаний. Пока они отдают предпочтение операционной системе Android, которая доступнее платформ Microsoft и Apple.

Производители отдают предпочтение Android из-за отсутствия платы за использование и простоту внедрения платформы. Первые смартфоны на базе Android поступили в продажу в 2008 году, и в третьем квартале 2012 года их доля на рынке составила 72%, подсчитали в Gartner.

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

1) Вывести устройства в сеть Internet

2) Воспользоваться возможностями магазина приложений Google Play

3) Воспользоваться возможностями электронных платежей и Internet-банкинга

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

Поэтому, проблема защиты для Android устройств является очень серьезной и актуальной.

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

Раздел 1. Общий обзор проблемы безопасности ОС Android. Постановка задачи на дипломное проектирование

1.1 Развитие индустрии по борьбе с вредоносным и мошенническим ПО

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

Евгений Касперский, генеральный директор и один из учредителей «Лаборатории Касперского».

Число вредоносного и потенциально опасного ПО постоянно растёт и владельцы устройств на базе ОС Android уже не могут использовать свой смартфон без защитного ПО. За последние пару лет число Антивирусных компаний, которые выпустили свои решения для мобильной платформы Android увеличилось в 5 раз. Теперь в число этих компаний помимо таких больших корпорации как Symantec, McAfee, TrendMicro входят и мало известные производители, такие как Aegis, AhnLab.

Не осталась и в стороне компания «Лаборатория Касперского»

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

1.2 Описание предметной области

В данной работе идёт речь о приложениях, то есть программном обеспечении, созданном для запуска исключительно в среде операционной системы Android. Так как сама система обладает рядом особенностей и ограничений разработка приложений для неё весьма специфична - например, нельзя воспользоваться той или иной функции ОС не запросив у пользователя разрешения на такую активность.

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

Многие ведущие Антивирусные компании, предполагая что печальная ситуация с операционной системой семейства Microsoft Windows может перекочевать и на мобильные операционные системы, выпустили Антивирусные решения и под мобильные ОС в том числе и для Android OS.

В свою очередь вирусописатели, оценив колоссальный рост числа устройств с мобильной ОС Android начали создавать вредоносные приложения. Примером такого приложений может служить семейство Trojan-SMS. Приложения этого класса без ведома пользователя отсылают короткие SMS сообщения на номера со специальной тарифной сеткой. Одно такое короткое сообщение может лишить пользователя от 50 до 300 рублей.

В мою зону ответственности как Старшего вирусного аналитика «Лаборатории» Касперского входит анализ и детектирование приложений такого рода.

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

1.3 Постановка задачи на дипломное проектирование, требования к системе

Целью настоящей дипломной работы улучшить общую защиту ОС Android при условии установки приложения из стороннего (отличного от Google Play) источника при этом предоставить пользователю адекватную картину уровня опасности устанавливаемого приложения.

Требования к системе:

· определение уровня опасности по метаданным приложения

· определение уровня опасности по исполняемому файлу, формата DEX.

· сбор и хранение результатов ранжирования уровней опасности

· графическое отображение результатов на экран пользователя

· сохранение результатов в файл для дальнейшей постобработки

Для достижения поставленной цели необходимо решение следующих задач

· понять структуру безопасности ОС Android

· понять подходы к преодолению системы безопасности,

· изучить типы опасных объектов,

· проанализировать структуру установочного пакета приложения,

· выявить те области пакета, которые содержат информацию о приложении. На основе этой информации будет вестись определение уровня опасности.

· выбрать на каком языке программирования необходимо проектировать Систему,

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

1.4 Входные и выходные данные

Входные данные: На вход системе подаётся установочный пакет приложения для ОС Android. Данный пакет имеет специфическую структуру: формат пакета - архив типа ZIP, состоит как минимум из двух файлов: classes.dex и AndroidManifest.xml.

Если при работе системы в неё будет загружен установочный пакет иного формата, то система должна сообщить об ошибке.

Формат файла classes.dex бинарный, для его обработки необходимо разработать специальный статический анализатор.

Выходные данные: Результатом работы системы должен файл отчета содержащий следующие поля:

· Название анализируемого файла

· Имя установочного пакета

· Хеш-сумма MD5, посчитанная от установочного пакета

· Числовое значение уровня опасности приложения с обозначенной рядом шкалой и словесным описанием уровня.

· Список словестных описаний полученного уровня.

Данные так же дублируются на дисплей пользователя в виде отдельного окна интерфейса Системы.

1.5 Система безопасности операционной системы Android

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

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

Существуют два основных источника для приложений:

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

Приложения, установленные пользователем: Android предоставляет открытую среду разработки и поддержки любого стороннего приложения. Google Play предлагает пользователям сотни тысяч приложений.

Google предоставляет набор облачных сервисов, которые доступны на любом совместимом устройстве Android. Основными услугами являются:

Google Play: Google Play представляет собой набор сервисов, которые позволяют пользователям находить, устанавливать и покупать приложения из своего устройства Android. Google Play делает путь создания приложений легким для разработчиков, чтобы достичь Android пользователей и потенциальных клиентов. Google Play также предоставляет средства анализа, проверки сертификатов о выдаче лицензии, приложение для сканирования безопасности и другие службы безопасности.

Архитектура системы безопасности Android:

Android стремится быть самой безопасной и пригодной для использования операционной системой для мобильных платформ. Это достигается путём динамического изменения целей традиционных элементов управления операционной в сторону системы безопасности, такими целями являются:

· Защитить данные пользователя

· Защита системных ресурсов (в том числе сети)

· Обеспечить изоляцию приложений

Для достижения этих целей, Android предоставляет следующие ключевые функции безопасности:

· Надежная система безопасности на уровне операционной системы через Linux ядро

· Обязательная изоляция всех приложений в специальной программной среде (песочнице)

· Безопасные связи между процессами

· Приложение должно быть подписанным сертификатом разработчика

· Разрешение на использование тех и или иных функций должно подтверждаться пользователем.

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

Каждый компонент предполагает, что нижние компоненты были надежно защищены. За исключением небольшого количества кода Android OS мало что запущено с правами администратора. Все, что выше кода ядра Linux, ограничено изолированной программной средой.

Рисунок 2. Программный стек ОС Android

Система безопасности приложений на основе запрашиваемых разрешений.

Все приложения на Android работают в изолированной программной среде (песочнице). По умолчанию приложение Android может получить доступ только к ограниченному кругу системных ресурсов. Система сама управляет доступом к ресурсам, которые могут быть использоваться неправильно или злонамеренно, а так же могли бы негативно повлиять на пользователей, сети, или данные на устройстве.

Эти ограничения применяются в различных формах. Некоторые возможности ограничены преднамеренно путем исключения прямых интерфейсов к чувствительной функциональности устройства (например, не существуют прямых API функций для непосредственного использования SIM карты). В некоторых случаях разделение ролей обеспечивает меры безопасности на ряду с разделением хранимых данных приложения. В других случаях, чувствительные интерфейсы, предназначенные для использования доверенными приложениями, защищены через особый механизм безопасности известный как «разрешения».

В список защищенных разрешениями API функций входят:

· функции камеры

· Данные о местоположении (GPS)

· Функции Bluetooth

· Функции телефонии

· SMS / MMS функции

· Функции Сеть / передачи данных

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

После принятия разрешений и установкой приложения, принятые разрешения действуют пока приложение установлено в системе. Чтобы избежать путаницы пользователей, система не уведомит пользователя заново о предоставленных разрешениях, так же не будет уведомлений о приложениях, которые входят в ядро операционной системы или в комплекте по OEM. Разрешения будут удалены, если приложение будет удалено, так что последующая переустановка будет снова приведёт к отображение запроса разрешений.

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

В случае если приложение пытается использовать защищенную функцию, которая не была объявлена ??в манифесте приложения, то такое поведение классифицируется как исключительное и выводится сообщение об ошибке. Проверки разрешения на доступ к защищённым API введены в действие на низком уровне, чтобы предотвратить обход. Пример доступа к защищенным API представлен на Рисунке 3:

Разрешения во время установки приложения

Разрешения уже установленного приложения

Рисунок 3. Пример отображения разрешений на доступ к защищённым API

Некоторые API функции объединены в особые группы:

API Функции, чувствительные к цене

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

· Телефония

· SMS / MMS

· Сеть / Internet данные

· Билинг внутри приложений

· NFC доступ

В Android 4.2 добавляется дополнительный контроль по использованию SMS. Android предоставит уведомление если приложение пытается отправить SMS на короткий номер, который используется для доступа к ПРЕМИУМ сервисам, которые могут привести к дополнительной оплате. Пользователь может выбрать, следует ли разрешить приложению отправлять сообщение или заблокировать его.

Доступ к SIM карте

Низкоуровневый доступ к SIM-карта не доступен для сторонних приложений. ОС обрабатывает все связи с SIM-картой, в том числе доступом к личной информации (контактам) в памяти на SIM-карте. Приложение также не может получить доступ к AT командам модема, так как они управляются исключительно их слоя радио интерфейса (RIL). RIL не предоставляет высокоуровневого доступа к этим командам.

Персональная информация

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

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

Рисунок 4. Взаимодействие приложения с пользовательскими данными.

1.6 Способы преодоления безопасности защиты ОС Android

В большинстве случае для того чтобы совершить то или иное злонамеренное действие с использованием устройства на базе ОС Android необходимо проникнуть на само устройство(не считая атак Man-In-the-Middle), существует две основные тактики проникновения:

· социальная инженерия - использования влияния контента на психику;

· заражение чистого приложения, грязной составляющей.

Часто эти способы используются одновременно. При этом так же часто используются специальные меры по противодействию антивирусным программам.

Социальная инженерия

В данном случае речь идёт о психической атаке на пользователя - создать все условия (обмануть жертву) для того чтобы пользователь совершил необходимые действия.

Суть атаки заключается в создании специальных ресурсов - клонов (например, клонов легальных интернет магазинов) на которых распространяется программное обеспечение для Android. Из-за того что система позволяет ставить приложения из сторонних источников установить с ресурса-клона вредоносное ПО не составит труда. Для того чтобы заставить пользователя попасть на это ресурс существуют специальные рассылки. Наиболее распространённым случаем является получаемое пользователем короткое SMS сообщение вида «Привет. Я разместила свои фото тут http://XXXX». Практика показывает что 90% получивших такое сообщение обязательно запустят файл на установку.

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

Но в силу особенности ОС Android пользователю, при установке приложения из стороннего источника (любой источник отличный от магазина приложений Google Play является сторонним), необходимо отключить часть системы безопасности ОС таким образом позволив проложить приложению процесс установки.

На Рисунке 5 представлено место в настройках ОС которое пользователю предложить активировать, в противном случае приложение из сторонних источников не установится.

Рисунок 5. Подтверждение установки приложения из стороннего источника.

Внедрение вредоносного кода

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

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

Затем приложение выкладывается в магазин под тем же именем, тем самым обходится проблемы недоверия пользователя. Затем пользователь ставит приложение, не принимая во внимания запрошенные разрешения. Таким образом работает два механизма одновременно.

1.7 Типы опасных объектов

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

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

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

В исследовании было задействовано около ста тысяч приложений с Google Play, среди которых было выявлено порядка 100 наиболее часто используемых «рекламных» библиотек. Пристальное изучение этих элементов выявило их потенциальную опасность, которая проявлялась в загрузке непроверенного программного кода из сети, передаче пользовательских данных на удаленные сервера и других подозрительных действиях.

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

Вызывает подозрения и способ определения «рекламщиками» местоположения пользователя. К примеру, библиотека Sosceo изучает статистику звонков пользователя и загружает данные в сеть, Mobus изучает SMS-сообщения для определения центра обслуживания.

По сведениям исследовательского центра Juniper MTC вредоносного ПО для мобильных устройств в 2011 г. стало больше на 155% по сравнению с предыдущим годом. А в I квартале 2012 г. произошел взрывной скачок вредоносного ПО для мобильных платформ, в основном, для Android. Отчасти это можно связать с улучшением технологии обнаружения вредоносного кода (показать все, что скрыто), но нельзя отрицать и объективный рост количества самих вирусов под мобильные платформы.

Как распределяются вирусы по мобильным платформам? «Лаборатория Касперского» обнаружила около 38 тыс. вредоносных программ для мобильных платформ. Из них 92,74% приходятся на Android, 5,86% -- на J2ME, 1,18% -- на Symbian и 0,22% -- на остальные платформы (включая Windows Mobile, Blackberry и iOS)».

Только за последние несколько месяцев рост угроз для ОС Android составил 65%. При этом 30% вредоносных программ для Android распространяется через официальный интернет-магазин приложений Google Play. Среди злонамеренного ПО, проникающего на мобильные устройства, зафиксировано 37% троянских программ, передающихся с помощью SMS- и MMS-сообщений, а также 60% вирусов, способных устанавливать удаленный контроль над мобильным устройством.

Почему именно платформа Android так привлекает создателей вирусов? Можно выделить три основных причины.

Во-первых, Android -- операционная система, которая применяется в устройствах разных производителей. Она пластична, удобна, и с каждым годом количество устройств на ней растет. В 2012 году по данным исследователей в мире насчитывается 500 миллионов пользователей этой мобильной платформы. Разумеется, такая массовость не может не привлечь злоумышленников.

Во-вторых, Android позволяет загружать приложения из сторонних источников. Наиболее популярные источники приложений - официальные магазины Google Play, Amazon App Store и Samsung Apps. Но ничего не мешает пользователю скачать приложение из любого источника или даже установить пришедшее по почте. Это открывает большой простор для мошеннических действий.

В-третьих, Google только недавно ужесточил правила и контроль за центром приложений Google Play (Andriod market). До этого (и по сей день) там можно было встретить массу вредоносных приложений.

Производители антивирусов давно в курсе проблем мобильной платформы Android. Под нее выпущено множество как платных, так и бесплатных антивирусных продуктов. Как правило, это мобильные версии от признанных борцов с компьютерными вирусами. Платные продукты, например, Dr.Web Light, Kaspersky Mobile Security Lite, бесплатные - avast! Mobile Security, «AVG Бесплатный антивирус».

К сожалению, антивирусные программы не защитят пользователя в двух случая. Как известно, разработчики вирусов не присылают образцы своей «продукции» разработчикам антивирусов. Поэтому антивирусное ПО всегда на шаг отстает от объекта борьбы. Шанс «словить» свеженаписанный вирус невелик, но есть.

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

Сайты-ловушки существовали и до расцвета мобильного интернета. Еще свежи в памяти аудионаркотики, тесты, результаты которых Вы якобы получите, отправив SMS. Новые разновидности такого интернет-развода по-прежнему регулярно встречаются, становясь все более тонкими и изощренными. В последнее время часто встречаются поддельные сайты по поиску работы.

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

Услуги такого рода предоставляются с помощью так называемых «коротких номеров». Стоимость SMS на такие номера задается компанией, предоставляющей услуги по ним. Поэтому следующий шаг, на который операторов связи толкнула волна недовольства обманутых пользователей, стало упорядочивание пользования короткими номерами и информирования о стоимости таких услуг.

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

100% защиты от этого пока не существует. Меры борьбы здесь скорее организационные -- не ходить по сомнительным ссылкам, не устанавливать приложения из непроверенных источников. Отключить возможность ухода в «минус» и не иметь чрезмерно большого количества денег на счете. Регулярно проверять подписки своего телефона и отключать ненужные.

Таким образом, можно выделить несколько типов опасных объектов

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

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

Так же следует отметить что Антивирусные компании знают не о всех опасных объектах существующих в реальности.

1.8 Структура Android приложений

Следует начать с того что все приложения для ОС Android распространяются в виде инсталляционных пакетов - файлов с расширением APK.

APK (Android Package) -- формат архивных исполняемых файлов-приложений для Android.

Каждое приложение Android скомпилировано и упаковано в один файл, который включает в себя весь код приложения (.DEX файлы), ресурсы, активы и файл manifest. Файл приложения может иметь любое имя, но расширение должно быть .APK. Например: myAppFile.apk.

Файлы с данным расширением хранятся в магазине Google Play, и загружаются с его помощью в смартфон для их использования, либо устанавливаются пользователем вручную на устройстве.

Файлы этого формата не шифруются, являются подмножеством формата архива ZIP.

Каждый .APK файл -- это сжатый архив для исполнения в DalvikVM (виртуальная машина), который может быть установлен не только на операционной системе Android.

APK файл как архив обычно содержит следующие директории:

· META-INF :

§ MANIFEST.MF: манифест файл

§ CERT.RSA: сертификат приложения

§ CERT.SF: список ресурсов и их SHA1 хеш-сумма например на Рисунке 6:

· Signature-Version: 1.0

· Created-By: 1.0 (Android)

· SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=

· ...

· Name: res/layout/exchange_component_back_bottom.xml

· SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=

· ...

· Name: res/drawable-hdpi/icon.png

· SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=

Рисунок 6. Структура файла со списком ресурсов и их хеш-сумм.

· Директория lib: содержит скомпилированный исполняемый код адаптированный под различные типы процессоров, обычно разделена на следующие директории:

Ш armeabi: код только для ARM процессоров

Ш armeabi-v7a: код для для процессоров ARMv7 и ниже только.

Ш x86: скомпилированный код только для архитектуры x86

Ш mips: скомпилированный код только для архитектуры MIPS

· Директория res: директория содержит файлы ресурсы не вошедшие в файл resources.arsc(см. ниже)

· Директория assets: содержит активы которые могут получены с помощью AssetManager

· Файл AndroidManifest.xml: дополнительный манифест файл, описывающий версию приложения, разрешения, используемые библиотеки. Как правило это файл идёт в формате binary XML, это формат файлов можно привести к читаемому виду с помощью сторонних утилит таких как AXMLPrinter2, apktool, или Androguard.

· Файл classes.dex: исполняемый файл виртуальной машины Dalvik, полученный путём преобразования скомпилированных JAVA классов с помощью утилиты DX. Утилита входит в состав Android SDK.

· Файл resources.arsc: файл содержит пре-компилированные ресурсы, например в виде бинарных XML файлов.

Из всего выше обозначенного в данной работе при анализе уровня опасности будут использоваться только два файла это AndroidManifest.xml и classes.dex. Ни их структуре остановимся более подробно.

AndroidManifest.xml

Данный файл, как уже говорилось ранее, содержит информацию о приложении, в том числе список требуемых разрешений приложения. В том числе на основе этих данных можно ранжировать уровень опасности приложения. Обратимся как его структуре: в первую очередь необходимо отметить что в установочном пакете androidmanifest.xml имеет бинарный вид, то есть преобразованный xml, хотя в оригинальном состоянии этот файл имеет структуру, обозначенную на Рисунке 7:

Рисунок 7. Подтверждение установки приложения из стороннего источника.

Следует отметить, что нас особенно интересуют поля обозначенные <uses-permission android:name=””/>. Эти полня показывают системе какие разрешения хочет получить приложения для своей работы. На их основе можно выставлять уровень опасности приложению.

В Таблице 1 приведены некоторые разрешения которые представляют наибольшую опасность :

Таблица 1. Описание некоторых опасных разрешений в ОС Android.

ACCESS_COARSE_LOCATION

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

ACCESS_FINE_LOCATION

Приложение сможет получить доступ к точному местоположению от места расположения источников, таких как GPS, вышек сотовой связи и Wi-Fi.

CALL_PHONE

Приложение сможет инициировать телефонный звонок, минуя пользовательский интерфейс Dialer для пользователя.

CAMERA

Приложение сможет сделать снимок встроенной камерой

DELETE_PACKAGES

Позволяет приложению удалять пакеты.

DEVICE_POWER

Позволяет приложению отключить питание устройства

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

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

classes.dex

Данный файл носит в себе основной функционал приложения, содержит байт-код, понятный виртуальной машине Dalvik. Имеет следующую внутреннюю структуру, представленную в Таблице 2:

Таблица 2. Структура Dex файла.

header

Заголовок файла

string_ids

Список идентификаторов строк, эти идентификаторы содержат информацию о всех строка в файле, независимо от их типа.

type_ids

Список индетификаторов типов

proto_ids

Список идентификаторов прототипов

field_ids

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

method_ids

Список всех идентификаторов всех методов.

class_defs

Список определений классов

data

Секция данных

link_data

Информация о статически слинкованных файлах.

На самом деле это файл, содержащий в себе программный код для виртуальной машины Dalvik. Приложения для Android пишутся на языке Java, но после компиляции кода в .class-файлы, вызывается утилита dx, которая транслирует их в один файл classes.dex, являющийся основной составляющей APK файла. Общий алгоритм формирования dex представлен на Рисунке 8.

Рисунок 8. Механизм формирования файла classes.dex.

Следует отметить, что функционирование данного файла абсолютно связано с использованием API операционной системы. При этом исходный код приложения написан на объектно-ориентированном языке программирования JAVA. И является своего рода компиляцией в компиляции. Как следствие состоит из большего числа строк, содержащих имена методов API, имена различных констант. Вся эта информация может явным образом служить для понимания функционала приложения и как следствие ранжирования его уровня опасности, опираясь на использованные наборы API функций.

Так нужно понимать, что файл имеет четкую устоявшуюся структуру, которая позволяет получить из файла путём статического анализа необходимую информацию для понимания функционала. Для этого необходимо разобрать формат файла и научится извлекать строки, имена методов.

1.9 Анализ существующих систем определения уровня опасности

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

Существуют системы, которые способны продемонстрировать уровень опасности. Одна из них сервис VirusTotal.com.

Рисунок 9. Система VIRUSTOTAL, способная ранжировать уровень опасности.

Основная функция которого - предоставление вердикта о детектировании загружаемого объекта многочисленными Антивирусными компаниями. Так же с недавнего времени ресурс начал предоставлять информацию по структуре установочного пакета Android приложения, детальную информацию по метаданным пакета, а так же результаты выполнения всего приложения в песочнице.

Всего этого более чем достаточно чтобы выставить уровень опасности по любому Android приложению. Имея при этом огромный багаж вредоносных приложений virustotal.com мог бы осуществлять ранжирование уровня опасности. Но по каким то причинам этого не делает.

Данный ресурс ограничивается сложным для пользователя «ИТОГО», из которого не ясно способно ли приложение причинить ущерб пользователю.

Существует так же другая система - APKSCAN

Рисунок 9. Архитектура системы APKSCAN.

Данная система схожа с VIRUSTOTAL. Отличия заключаются в том, что у данной системы есть разного рода интерфейсы вовне. Например, эта системы может предоставлять результаты анализа приложения непосредственно в магазин приложений Google Play, который, на основе этих данных, может предупреждать пользователя об уровне опасности.

При этом наблюдается та же проблема что и с Virustotal: APKSCAN не хочет выступать центром экспертизы по уровням опасности причиной тому может быть их бизнес модель или же простое отсутствие системы ранжирования.

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

Пример таких песочниц

Droidbox (https://code.google.com/p/droidbox/)

Рисунок 10. Работа приложения в песочнице DROIDBOX.

Рисунок 11. Ранжирование уровней опасности в песочнице.

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

Так же существует модуль к антивирусному решению компании LOOKOUT под названием PRIVACY ADVISOR. Его логика работы основана только на статическом анализе AndroidManifest.xml и в целом не даёт репрезентативной картины опасности того или иного установленного на устройстве приложения. Но логика работы данного компонента наиболее проста и правдива с точки зрения анализа приложения. Пример работы компонента представлен на Рисунке 12:

Рисунок 12. Lookout Privacy Advisor - пример работы.

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

Исходя из вышесказанного, в общей схеме обеспечения безопасности ОС Android не хватает интерактивной работы с пользователем. Доведения до пользователя всех рисков связанных с установкой приложения. Особенно это касается случаев когда приложения устанавливаться из сторонних источников.

Выводы

Операционная система Android нуждается в дополнительной защите. Защиту можно обеспечить различными путями:

· Использовать антивирусное ПО

· Внимательно просматривать требуемые разрешения, при установке приложений (что обычно игнорируется)

· Использовать только официальные источники приложений(то же не панацея так как и на официальных источниках есть опасные объекты)

· Воспользоваться сторонними разработками, такими как в данном дипломном проекте.

В заключение следует отметить очевидные недостатки существующих программных продуктов:

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

· Не достаточно только статического анализа AndroidManifest.xml необходимо также заглянуть внутрь самого исполняемого файла приложения. Таким образом достигается полнота картины уровня опасности.

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

Раздел 2. Проектирование системы

2.1 Анализ и выбор языка программирования для проектирования Системы

На сегодняшний день среди высоко уровневых языков программирования с объектно-ориентированной моделью проектирования, используемых для разработки программного обеспечения можно выделить следующие: С++, С#, Java. Рассмотрим каждый из них подробнее.

Язык программирования С++

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

Но следует учитывать, что язык C++ предполагает некоторые требования к разработке ПО. Основные требования: необходимость следить за памятью, выделяемыми ресурсами, закрытию сессий. Если все ограничения соблюдены то, программное обеспечение, полученное в результате проектирования на этом языке будет максимально оптимизированным с точки зрения производительности.

Язык программирования С#

C# (си-шарп) - объектно-ориентированный язык программирования, разработанный корпорацией Microsoft как один из языков для работы с библиотекой .NET Framework. Удобство языка заключается в том, что типы данных, встроенных в язык являются классами. Это позволяет создавать сложные типы данных, таким образом упрощая написание кода. Сами библиотека .NET Framework обладает колоссальными возможностями и полностью исключает избыточный код. Благодаря тому, что конструкция языка предполагает полный контроль над ресурсами системы нет необходимости в контроле за памятью и указателях. Таким образом написание программы - чрезвычайно простой процесс как правило не требующий больших ресурсов. Неоспоримым преимуществом языка является интегрированная среда разработки Visual Studio. Которая так же способствует детальной проработке кода, а так обеспечивает сильнейшую проверку кода на ошибки.

Язык программирования Java

Java является языком программирования общего назначения, который специально разработан, чтобы иметь как можно меньше зависимостей от имплементаций. Он позволяет разработчикам приложений один раз написать приложение. В данном случае речь идёт о полной кроссплатформенности полученного кода. Java-приложения, как правило, скомпилированные в байт-код (файл class), который может работать на виртуальной машине Java независимо от архитектуры системы. По состоянию на 2012 год, Java является одним из самых популярных языков программирования, особенно для WEB-приложений. Java первоначально был разработан Джеймсом Гослинг в Sun Microsystems (которая затем объединилась с Oracle) и выпущен в 1995 году. Язык Java использовался в качестве одного из основных языков программирования в Sun Microsystems долгие годы. Большую часть синтаксиса Java получил от С и C++ поэтому разработчики не испытывали особых проблем при миграции на этот язык программирования

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

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

Сравнительный анализ и выбор языка программирования

При разработке программного обеспечения, заявленного в теме дипломного проекта, разработчику придется иметь дело со статическими методами анализа файлов, обращениями к базам данных, в условиях операционной системы Microsoft Windows. Платформа Java способствует быстрому написанию кода, однако, время выполнения основных операций в программе, разработанной с помощью этого языка может стать недопустимо большим. Язык С# также предоставляет разработчику удобство разработки, в виду сильной объектно-ориентированной основы языка, за счет того что необходимые для реализации библиотеки уже встроены в библиотеки языка и позволяют наиболее быстро и плотно интегрировать части проектируемой системы. Язык С++, менее удобен для программиста, по причине заметного увеличения времени написания программы, однако полученное приложение с большой долей вероятности будет работать очень быстро. Таким образом в данном дипломном проекте разработка будет вестись на языке C#.

2.2 Разработка Системы ранжирования уровней опасности Android приложений

2.2.1 Программные средства разработки

При разработке и отладке Системы, заявленной в теме дипломного проекта, потребуется задействовать следующие программные средства:

· Операционная система - Microsoft Windows 7;

· Среда разработки - Microsoft Visual Studio 2010 Express;

2.2.2 Аппаратная среда разработки

При разработке ПО Системы, заявленной в теме дипломного проекта, были задействованы следующие рабочая станция следующей конфигурации:

ПЭВМ типа IBM PC;

процессор: Intel Core i7 CPU 2630QM 2 ГГц;

Оперативная память: 6 Гб;

Жесткий диск: 600 Гб.

Сетевой адаптер - Realtek RTL8169/8110 Family Gigabit Ethernet;

Клавиатура, Мышь.

2.2.3 Алгоритм функционирования Системы

На Рисунке 13 представлена блок-схема алгоритма функционирования разрабатываемой системы.

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

Программная реализация Обработчика включает в себя следующие логические модули.

Модуль обработки метаданных. Представляет собой программную реализацию обработки файла AndroidManifest.xml и ранжирования опасности приложения по этому файлу. Основные функции модуля обработки метаданных см. в Приложении 2.

Модуль обработки исполняемого кода. Представляет собой программную реализацию обработки файла classes.dex и ранжирования опасности приложения по этому файлу. Основные функции модуля обработки исполняемого кода см. в Приложении 2.

Модуль взаимодействия с базой данных. Представляет собой программную реализацию организации взаимодействия между Обработчиком и Базой данных. Основные функции модуля взаимодействия см. в Приложении 2.

Модуль распаковки. Представляет собой программную реализацию механизма распаковки архивов типа ZIP. Данный модуль необходим для извлечения данных из установочного файла APK. Основные функции модуля распаковки см. в Приложении 2.

Модуль взаимодействия с пользователем. Представляет собой программную реализацию организации взаимодействия между пользователем и внутренними данными Системы. Модуль существует только для отображения результатов работы системы пользователю.

Рисунок 13. Блок-схема функционирования системы

2.2.4 Выбор производителя и типа СУБД. Проектирование структуры базы данных

Для реализации Системы требуется организовать хранение данных о тех приложениях, которые уже были обработаны в системе. Это необходимо для того чтобы обеспечить оперативное предоставление результатов ранжирования в том случае если запись запрашиваемого приложения уже содержится в системе.

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

Таки образом структурная схема базы данных будет выглядеть, как показано на Рисунке 14.

На Рисунке 14 отображены таблицы со следующими именами:

· APP_Ranking - основная таблицы соответствия ранжированного уровня опасности приложения MD5 хеш-сумме от установочного файла.

· APP_Permissions - таблица соответствие конкретных разрешений используемых в приложении к MD5 хеш-сумме от приложения.

· Perm_descr - таблица соответствия идентификатора (порядковый номер разрешения в шестнадцатеричном виде) разрешения его описанию, которое будет предоставлено пользователю.

· ExeMethods - список соответствия найденных опасных методов к MD5 хеш-сумме от приложения


Подобные документы

  • Первое устройство, работающее под управлением Android. Приложения под операционную систему Android. Формат установочных пакетов. Разработка приложений на языке Java. Шаблоны основных пакетов и компонентов Android. Сборка приложений, основанная на Gradle.

    курсовая работа [492,0 K], добавлен 08.02.2016

  • Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.

    курсовая работа [167,8 K], добавлен 18.01.2017

  • Архитектура операционной системы Android. Инструменты Android-разработчика. Установка Java Development Kit, Eclipse IDE, Android SDK. Настройка Android Development Tools. Разработка программы для работы с документами и для осуществления оперативной связи.

    курсовая работа [2,0 M], добавлен 19.10.2014

  • Разработка открытой мобильной платформы Android. Первое устройство, работающее под управлением Android. Магазин приложений "Google Play". Полноценные программы навигации, редакторы офисных документов и синхронизационные утилиты. Рост вирусной активности.

    презентация [58,8 K], добавлен 29.10.2014

  • Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.

    дипломная работа [1,6 M], добавлен 08.07.2015

  • Структура Android-приложений. Особенности игрового движка. Алгоритмизация и программирование. Список игровых состояний. Настройка, отладка и тестирование программы. Разработка руководства пользователя. Тестирование инсталляции и отображения элементов.

    дипломная работа [4,5 M], добавлен 19.01.2017

  • Место и роль различных изданий в современном обществе. Основные требования к подготовке электронных учебных изданий. Разработка приложений. Операционная система Android. Выбор программного обеспечения. Пакеты для обработки растровой и векторной графики.

    отчет по практике [1,6 M], добавлен 26.05.2014

  • Обзор существующих популярных программ для просмотра погоды на ОС Android. Операционные системы современных смартфонов. Ключевые особенности Android, технология Java. Разработка программной части, выбор языка, описание алгоритма, ее логической структуры.

    курсовая работа [911,5 K], добавлен 16.04.2014

  • Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.

    дипломная работа [2,7 M], добавлен 03.04.2015

  • Общая характеристика системы Android, обзор его аналогов. Необходимые компоненты для начала работы в Android. Настройка конфигураций Ubuntu. Написание script-ов, упрощающих генерацию Linux. Отладка и тестирование программы на плате i.MX53 фирмы freescale.

    курсовая работа [1,1 M], добавлен 12.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.