Анализ android ios windows

Статический анализ мобильных приложений

Одним из этапов тестирования мобильного приложения — это статический анализ. Статический анализ приложения — это анализ приложения без выполнения каких либо функций приложения. Наиболее удобным для меня из open source фреймворков есть MobSF. Кому интересно, добро пожаловать под кат.

MobSF выполняет статический анализ приложений: Android, Apple iOS и Windows Phone и динамический анализ: только приложения для Android. Как проводить динамический анализ расскажу в следующей статье посвящённой MobSF. Более подробное описание и мануал по установке можно прочитать по ссылке.

После установки MobSF — выполним следующий батничек для запуска сервера (писал для себя, поэтому диск D).

Дальше нужно перейтипо адресу http[:]//127.0.0.1:8000 и открывается главная страница(Рис. 1). Здесь функционала не много:

  • загрузка файла;
  • просмотреть отчеты по прошедшим сканам;
  • переход на документацию API;
  • переход на GitHub проекта.


Рис. 1. Главная страница

После того как файл был загружен и проанализирован, появляется страница с результатом анализа (Рис. 2). Слева меню, которое позволит переходить быстро по всей странице (результат объёмный просто). Какая полезная информация находится на этом скриншоте:

  • хэш-сумма приложения;
  • поддерживаемые версии OS Android;
  • количество и типы компонентов (экспортированный или нет), это важно, так как экспортированные компоненты могут привести к критическим уязвимостям;
  • возможность просмотреть и скачать java- и smali-файлы, которые можно проанализировать другими инструментами или вручную;
  • просмотреть файл манифеста, для анализа.


Рис. 2. Результат анализа

Идем далее. На рис. 3 показана информация по сертификату, которым было подписано приложение.


Рис. 3. Информация о сертификате

Далее идёт описание анализа permissions, которые описаны в файле AndroidManifest.xml (Рис. 4). MobSF анализирует permissions приложения, определяет его статус, на предмет критичности и описание permissions. Здесь нужно понимать архитектуру OS Android для действительной критичности приложения.


Рис. 4. Анализ Android Permissions

На вкладке Security Analysis -> Code Analysis (Рис. 5) показывается результат анализа java-кода статическим анализатором, который определяет потенциальные уязвимости, определяет их критичность и файлы в которых этот тип уязвимости был найден. Во многом эти результаты является являются false positive, но нужно это всё перепроверять.


Рис. 5. Анализ кода

Следующая вкладка (Рис. 6) — это анализ файлов, на сервисе virustotal.com. В данном случае файл не определялся как заражённый.


Рис. 6. Анализ файла

Вкладка URLs (Рис. 7) выводит список URL-адресов, IP-адресов и файлов в которых они хранятся или вызываются. В этом разделе анализируются куда приложение отправляет данные или куда сохраняет информацию.


Рис. 7. Вкладка URLs

Вкладка “Strings” (Рис. 8) проводит анализ текстовых файлов, которые находятся в директории res. При анализе приложения эти файлы могут содержать захардкодженые учетки и другие чувствительные данные. Хотя на моей памяти такого не было.


Рис. 8. Анализ текстовых файлов

Вкладка “Components” (Рис. 9) выводит полный список компонентов (activity, service, content provider и receives), импортированные библиотеки и файлы без определения расширения.


Рис. 9. Список компонентов

Дополнительно анализ исходного кода можно провести с помощью статического анализатора VCG scanner. Для VCG нужен исходный код. Исходный код можно загрузить через кнопку Download Java Code (Рис. 10). Файл скачивается в ZIP-архиве. Дальше нужно извлечь папку с файлами из архива (Рис. 11).

Читайте также:  Foxit pdf reader android


Рис. 10. Скачивание исходного кода


Рис. 11. Извлечение исходного кода

Сканирование исходного кода делается следующим образом:

  1. Во вкладке “Settings” выбираем пункт “Java” — рисунок 12.
  2. Во вкладке “File” выбираем “New Target Directory” — рисунок 13.
  3. Во вкладке “Scan” выбираем “Full scan” — рисунок 14.


Рис. 12. Выбор исходного кода


Рис. 13. Подгрузка директории с файлами


Рис. 14. Запуск сканирования

После завершения сканирования сканер выдаёт названия уязвимости, её критичность, краткое описание и место в исходном коде (Рис. 15). Можно получить полный список уязвимостей и сортировать по их критичности (Рис. 16).


Рис. 15. Описание уязвимостей


Рис. 16. Полный список уязвимостей

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

Источник

Сравнительный анализ мобильных операционных систем

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

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

1. Компания-разработчик данной мобильной операционной системы.

2. Возраст — сколько лет на рынке.

3. Исходный код. Может быть закрытым или открытым. Закрытый исходный код — как правило, это означает, что распространяются только откомпилированные версии платформы и лицензия подразумевает отсутствие доступа к исходному коду операционной системы; Открытый – означает, что исходный код доступен для просмотра, изучения и изменения, что позволяет стороннему разработчику принять участие в доработке самой системы.

4. Тип ядра.

  • Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур.
  • Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
  • Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. [1]

5. Поддерживаемые архитектуры процессоров.

  • Процессоры x86 – это микропроцессоры, поддерживающие одноимённый набор инструкций и обладающие микроархитектурой, производной от IA-32, то есть Intel Architecture 32-бит. Чипы построены на основе архитектуры CISC (Complex Instruction Set Computing, то есть «с полным набором инструкций»), в которой каждая инструкция может выполнять сразу несколько низкоуровневых операций.
  • ARM-процессоры – 32-битные чипы на базе архитектуры RISC (Reduced Instruction Set Computer), то есть с сокращённым набором команд. В основу этой архитектуры положена идея повышения быстродействия за счёт максимального упрощения инструкций и ограничения их длины. [2]

6. Дружественность – оценка того, насколько неподготовленный пользователь сможет разобраться с системой. [3] [4] [5]

7. Производительность системы – насколько сложные и технически трудные операции может выполнять система. [3] [4] [5]

8. Вычислительные затраты – насколько быстро система обрабатывает определенную операцию. [3] [4] [5]

Читайте также:  Android catch all errors

9. Надежность – свойство системы сохранять во времени способность выполнять требуемые функции. [3] [4] [5]

10. Отказоустойчивость — свойство технической системы сохранять способность правильно функционировать после отказа системы или некоторых ее частей. [3] [4] [5]

11. Преемственность – показывает, насколько компания-разработчик поддерживает обновление программной платформы на устройствах с устаревшей системой. Например, взять коммуникатор Motorola Milestone. При выпуске на нем был установлен Android 2.1., спустя год была выпущена Android 2.2. под него. Это не самый лучший показатель. [3] [4] [5]

12. Многозадачность — свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.

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

14. Количество приложений в магазине – данные от 27 апреля 2011 года. [6]

15. Мультитач — функция сенсорных систем ввода, осуществляющая одновременное определение координат двух и более точек касания.

16. Копирование/вставка – возможность копировать и вставлять текст.

17. Технология экрана.

  • Резистивный экран представляет собой стеклянный жидкокристаллический дисплей, на который наложена гибкая мембрана. На соприкасающиеся стороны нанесён резистивный состав, а пространство между плоскостями разделено диэлектриком. По краям пластин закреплены электроды (четыре или восемь, пять или шесть и семь). Несложно догадаться, что при нажатии экран и мембрана соприкасаются в месте нажатия, координаты которого вычисляются путём последовательной подачи тока на верхнюю и нижнюю пластины и замеров напряжения в точке касания пластин. Именно поэтому на такой экран можно нажимать любым твёрдым предметом — от ногтя и стилуса до карандаша или спички, и он сработает.
  • Ёмкостный сенсорный экран в общем случае представляет собой стеклянную панель, на которую нанесён слой прозрачного резистивного материала. По углам панели установлены электроды, подающие на проводящий слой низковольтное переменное напряжение. Поскольку тело человека способно проводить электрический ток и обладает некоторой ёмкостью, при касании экрана в системе появляется утечка. Место этой утечки, то есть точку касания, определяет простейший контроллер на основе данных с электродов по углам панели. [7]

18. Обновление прошивки

  • По воздуху – обновление происходит через WiFi соединение либо через 3G прямо на мобильном устройстве.
  • По кабелю – для этого необходимо подсоединить мобильное устройство к персональному компьютеру и с помощью специализированных программ установить обновление.

19. Место в мире – учитываются темпы развития и нынешняя доля рынка на 29 марта 2011 года и прогноз на 2015 год. [8]

Источник

iOS, Android, Windows — какая ОС лучше для телефона

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

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

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

Читайте также:  Signing into google account android

Из самых распространенных операционных систем на мобильные телефоны выделяются следующие:

Рассмотрим подробнее эти ОС, чтобы определить, какая же лучше

iOS

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

Положительные стороны iOS:

  • Программная оболочка отличается простым интерфейсом;
  • Стильный дизайн;
  • Профессиональные предложения отменного качества разрабатываются в закрытой среде;
  • Наличие постоянных обновлений;
  • Вирусы отсутствуют.
  • Сложная настройка ОС под индивидуальные потребности;
  • Высокая цена на гаджеты (оправдана безупречным качеством);
  • Ограниченность в выборе приложений;
  • Для управления мультимедиа и синхронизации с ПК необходимо использовать отдельную программу.
  • Сложный и дорогой ремонт. Например, поставить новую заднюю крышку на iphone возьмется не каждый мастер по ремонту телефонов.

То есть, вы можете смело выбирать iPhone в качестве своего главного гаджета, если пользуетесь преимущественно продукцией Apple.

Android

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

Одни из самых популярных телефонов на подобной ОС – это Samsung. В реализацию поставлено порядка 30 различных устройств, охватывающих широкий ценовой сегмент. Особенность производителя в том, что он применяет мощные собственные процессоры, модульную высокоскоростную память, AMOLED-экраны. Вместе с Samsung набирают обороты Xiaomi и Huawei.

  • Открытый исходный код;
  • Существует больше 1,5 млн. программ, охватывающих бесплатную и платную сферу скачивания;
  • Все сервисы от Google (многие из них взаимосвязаны) доступны с одного аккаунта;
  • Синхронизация с различными устройствами посредством USB-кабеля, беспроводных модулей, дополнительный софт не нужен;
  • Многозадачность;
  • Широкий ценовой диапазон.
  • Огромный выбор запчастей. От коннекторов, микрофонов, шлейфов и аккумуляторов для Samsung, до запчастей на Oppo.
  • Уязвим в отношении хакерских атак, вирусов;
  • Загруженность аккумулятора;
  • Бесплатные приложения насыщены софтом низкого качества;
  • Многочисленные и запутанные настройки.

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

Windows

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

Но стоит отметить, что гаджеты под нее не были лидерами продаж. Это также связно с тем, что Microsoft начиная с 2019 года больше не осуществляет поддержку и обновление операционной системы и системы безопасности Windows 10 для смартфонов. Как бы ни была данная ОС удобна для работы, компания порекомендовала своим пользователям перейти на устройства с операционными системами Android и iOS

Положительные моменты, которые можно отметить в Windows 10:

  • ПК и мобильники — на единой ОС;
  • Системные требования незначительны;
  • Качество приложений;
  • Эффективность интерфейса;
  • Предельная безопасность.
  • Много качественных деталей и запчастей для смартфонов на этой ОС.
  • В фирменном магазине не больше 300 тыс. приложений (некоторые разработчики все еще осуществляют поддержку своих приложений);
  • Несовместимость с некоторыми приложениями;
  • Ограниченность гаджетов по производителю;

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

Источник

Оцените статью