Огромная подборка для исследования безопасности Android-приложений


Оглавление (нажмите, чтобы открыть):

Уязвимости и угрозы мобильных приложений, 2020

Содержание

Введение

Согласно статистике, в 2020 году мобильные приложения были загружены на устройства пользователей более 200 миллиардов раз. По данным Marketing Land, 57% времени, проведенного в цифровом пространстве, — это время, потраченное на программы в смартфонах или планшетах. Мобильные устройства прочно вошли в нашу жизнь: мессенджеры, банкинг, бизнес-приложения, личные кабинеты сотовых операторов — при современном ритме жизни мы используем эти приложения практически ежедневно. Согласно данным Juniper Research, общее число пользователей мобильных банковских приложений приближается к двум миллиардам, что составляет порядка 40% всего взрослого населения. Мобильным банком пользуется каждый третий (34%) россиянин старше 18 лет.

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

Эксперты Positive Technologies регулярно проводят анализ защищенности мобильных приложений. В данном отчете представлена статистика, полученная в ходе работ по тестированию защищенности мобильных приложений для iOS и Android в 2020 году.

Резюме

  • Уязвимости высокого уровня риска обнаружены в 38% мобильных приложений для iOS и в 43% приложений для платформ под управлением Android.
  • Большинство проблем безопасности являются общими для обеих платформ. Небезопасное хранение данных — основной недостаток, он выявлен в 76% мобильных приложений. Под угрозу попадают пароли, финансовая информация, персональные данные и личная переписка.
  • Хакеру редко требуется физический доступ к смартфону, чтобы украсть данные: 89% уязвимостей могут быть проэксплуатированы с использованием ВПО.
  • Большинство недостатков связаны с ошибками в механизмах защиты (74% и 57% — для приложений на iOS и Android соответственно, 42% — для серверных частей). Такие уязвимости закладываются еще на этапе проектирования, а их устранение потребует внесения существенных изменений в код.
  • Риски возникают не только из-за отдельно взятых уязвимостей на клиенте или сервере; зачастую угрозы обусловлены несколькими, казалось бы, незначительными недостатками в разных частях мобильного приложения, которые в совокупности могут приводить к серьезным последствиям, вплоть до финансового ущерба для пользователей и репутационных потерь для производителя.
  • Успех кибератаки на мобильное приложение напрямую зависит от того, насколько внимательно сам пользователь относится к сохранности своих данных. Предпосылкой ко взлому могут стать повышенные привилегии или загруженные из неофициального источника программы.

Как работают мобильные приложения

Разработка мобильных приложений в тренде, ее технологии непрерывно развиваются. Большинство современных решений имеют клиент-серверную архитектуру. Клиент работает под управлением мобильной операционной системы; чаще всего это Android или iOS. Клиентская часть загружается на устройство из так называемого магазина приложений — специализированной площадки, где разработчики размещают свои системы. С точки зрения обычного пользователя, установленная на смартфон программа — это и есть мобильное приложение, ведь именно с ней он взаимодействует напрямую: совершает покупки, оплачивает счета, просматривает почту. Но в действительности есть еще один компонент, который принято называть сервером.

Серверная часть находится на стороне разработчика. Зачастую ее роль выполняет то же программное обеспечение, которое отвечает за генерацию и обработку контента на сайте. Другими словами, чаще всего серверная часть — это веб-приложение, которое взаимодействует с мобильным клиентом через интернет посредством специального интерфейса (API). Сервер по праву можно считать главной частью: здесь обрабатывается и хранится информация; помимо этого, он отвечает за синхронизацию пользовательских данных между устройствами.

Рисунок 1. Kлиент-серверное взаимодействие в мобильном приложении

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

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

Уязвимости клиентских частей

  • 60% уязвимостей сосредоточены в клиентской части
  • 89% уязвимостей могут быть проэксплуатированы без физического доступа к устройству
  • 56% уязвимостей могут эксплуатироваться без административных прав (jailbreak или root)

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

Рисунок 2. Максимальная степень риска уязвимостей (указана доля клиентских частей) Рисунок 3. Доля уязвимостей различной степени риска Рисунок 4. Уровень защищенности клиентских частей (доля систем)

38% Android 22% iOS Доли приложений с небезопасным межпроцессным взаимодействием

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

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

Рисунок 5. Схема небезопасного межпроцессного взаимодействия в ОС Android

Android: Используйте компонент LocalBroadcastManager для отправки и получения широковещательных сообщений, не предназначенных для сторонних приложений

Межпроцессное взаимодействие в iOS-приложениях, как правило, запрещено, однако существуют случаи, когда оно необходимо. В iOS версии 8 компания Apple представила новую технологию под названием App Extensions, с помощью которой приложения могут делиться своими функциональными возможностями с другими установленными на устройстве приложениями (например, мобильные приложения для социальных сетей позволяют быстро делиться контентом из браузера).

Рисунок 6. Пример расширения для Twitter

Для организации взаимодействия между расширением (App Extension) и основным приложением (Containing App) разработчики нередко используют механизм Deep Linking. Вызов приложения при этом осуществляется посредством зарегистрированной в системе собственной схемы URL. В процессе установки основное приложение регистрирует себя в качестве обработчика схем, указанных в файле Info.plist. Подобного рода схемы не привязаны к приложению: если на устройстве присутствует вредоносное ПО, которое обрабатывает ту же схему URL, то невозможно предсказать, какое именно приложение будет запущено. Это открывает злоумышленнику возможности для проведения фишинговых атак и кражи учетных данных пользователей.

IOS: При необходимости использовать ссылки для взаимодействия между компонентами приложения используйте защищенный механизм Universal Links

Уязвимость небезопасного межпроцессного взаимодействия закладывается на этапе проектирования интерфейсов взаимодействия компонентов приложения и относится к ошибкам в реализации механизмов защиты. Ошибки в механизмах защиты стали причиной 74% уязвимостей в приложениях для iOS и 57% уязвимостей для платформ Android.

Рисунок 7. Доля уязвимостей разных типов

Производитель виртуальной клавиатуры AI.type собирал чувствительные данные с мобильных устройств. Об этом стало известно после утечки базы данных 31 млн пользователей

В 2020 году, анализируя мобильные приложения для iOS, мы сталкивались с такой ошибкой в механизмах их защиты, как отсутствие ограничений на использование установленных пользователем клавиатурных расширений. Компания Apple позволила использовать клавиатуры сторонних производителей начиная с iOS версии 8, в это время такая возможность уже существовала в Android. Стоит отметить, что iOS накладывает более строгие ограничения на использование клавиатуры, чем Android; однако Apple не может контролировать, что делают разработчики клавиатур с данными нажатия клавиш, если пользователь разрешает этим приложениям сетевое взаимодействие.

IOS: Реализуйте метод shouldAllowExtensionPointIdentifier класса UIApplicationDelegate, запрещающий использовать клавиатурные расширения в приложении


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

25% приложений для платформ Android позволяют создавать резервную копию при подключении мобильного устройства к комьютеру

Каждая третья уязвимость мобильных приложений для Android связана с недостатками конфигурации. Например, при анализе файла AndroidManifest.xml наши специалисты нередко обнаруживают директиву android:allowBackup в значении true. Это позволяет создавать резервную копию данных приложения при подключении к компьютеру. Недостатком может воспользоваться злоумышленник и получить данные приложения даже без прав пользователя root.

Android: Запретите создание резервной копии данных приложения при подключении мобильного устройства к компьютеру, установив директиву android:allowBackup в значение false

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

На мобильном устройстве могут сохраняться разнообразные данные, например данные геолокации, персональные данные, личная переписка, учетные записи, финансовая информация, однако безопасности их хранения в мобильных приложениях не всегда уделяется должное внимание. Небезопасное хранение данных занимает второе место в рейтинге OWASP Mobile Top 10−2020; эта уязвимость была обнаружена в 76% мобильных приложений.

Рисунок 11. Уязвимости мобильных приложений (доля клиентских частей)

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

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

41% мобильных приложений осуществляют проверку аутентификационных данных на стороне клиента

Во многих мобильных приложениях для аутентификации используются четырех- или шестизначные PIN-коды. Существует несколько вариантов реализации механизма проверки их корректности в момент входа пользователя в приложение; один из них — проверка на стороне клиента. Это небезопасно, поскольку такой способ верификации PIN-кода предполагает его хранение на мобильном устройстве, что повышает риск утечки. Аутентификационные данные небезопасно хранятся в 53% мобильных приложений.

Рисунок 13. Топ-5 утечек данных в клиентских частях (доля уязвимых приложений)

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

Для аутентификации в приложениях на современных устройствах часто используются биометрические механизмы (Touch ID или Face ID). В этом случае PIN-код хранится на устройстве. Локальное хранение чувствительных данных допускается только в специальных каталогах с шифрованием. В Android существует хранилище ключей — Keystore, в iOS — связка ключей Keychain

Уязвимости серверных частей

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

Рисунок 14. Доля уязвимостей различной степени риска

В августе 2020 года злоумышленники похитили персональные данные 20 000 пользователей мобильного приложения авиакомпании Air Canada

По данным компании McAfee, количество вредоносного ПО для мобильных устройств растет: ежеквартально выявляется от 1,5 до 2 млн новых экземпляров, а к концу 2020 года общий объем составил более 30 млн экземпляров. Постоянный рост числа и разнообразия вредоносного ПО для мобильных устройств существенно повышает популярность атак на клиентские части, и серверные уязвимости перестали быть главной угрозой безопасности мобильных приложений. Еще в 2012 году категория Weak Server Side Controls занимала второе место в рейтинге OWASP Mobile Top 10; в рейтинге 2020 года серверные уязвимости были исключены из десятки самых распространенных угроз. Тем не менее риски, связанные с недостатками серверов, сохраняются, и в мире продолжают случаться громкие утечки данных из-за серверных уязвимостей. Как показывают результаты нашего исследования, серверные части не менее уязвимы, чем клиентские: 43% имеют низкий или крайне низкий уровень защищенности, при этом 33% содержат критически опасные уязвимости.

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

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

Нет необходимости дублировать одноразовые пароли или коды подтверждения в SMS-сообщениях и push-уведомлениях. Используйте выбранный пользователем канал получения паролей

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

Рисунок 18. Среднее число уязвимостей на одну серверную часть Рисунок 19. Среднее число уязвимостей на одну серверную часть

Возможность обработки TRACE-запросов в сочетании с уязвимостью «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS) может помочь злоумышленнику украсть значения Cookie и получить доступ к приложению. Поскольку, как правило, серверная часть мобильного приложения и веб-сайт имеют общий программный код, уязвимость «Межсайтовое выполнение сценариев» в серверной части открывает возможности для проведения атак на пользователей веб-приложения.

Метод TRACE может быть использован для обхода защиты Cookie флагом httpOnly. Отключите обработку TRACE-запросов

Недостаточная авторизация выявлена в 43% серверных частей. Это один из самых распространенных недостатков высокого уровня риска, его доля составила 45% от всех критически опасных уязвимостей.

Рисунок 20. Наиболее распространенные уязвимости серверных частей мобильных приложений (доля систем)

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

29% серверных частей содержат уязвимости, которые могут привести к нарушению работы приложения

Если сервер мобильного приложения обрабатывает числовые входные данные (например, координаты точки на карте), то необходимо предусмотреть ограничения. В отсутствие ограничений злоумышленник может указать произвольные координаты для поиска объекта на карте. Некорректное задание координат приводит к большим задержкам во времени ответа серверной части и, как следствие, — к отказу в обслуживании. Нарушение работы приложения отрицательно сказывается на репутации его владельца.

Угрозы мобильных приложений

Почти все исследованные приложения находятся под угрозой доступа к ним хакеров. В разделе про клиентские уязвимости мы отмечали, что самая распространенная проблема мобильных приложений — небезопасное хранение данных. Каким образом информация может попасть в руки злоумышленников? Самый распространенный сценарий — это заражение устройства вредоносным ПО, вероятность которого увеличивается в разы на устройствах с административными привилегиями (root или jailbreak). Однако вредоносное ПО может повышать права самостоятельно. Например, шпионский троян ZNIU с этой целью оперирует эксплойтом к нашумевшей уязвимости Dirty COW (CVE-2020-5195). Попав на устройство жертвы, вредонос может запрашивать разрешения на доступ к пользовательским данным, а получив разрешение, передавать данные злоумышленникам. Так, эксперты TheBestVPN изучили 81 VPN-приложение из официального магазина Google Play и пришли к выводу, что многие из них запрашивают настораживающие разрешения.

Рекомендации для пользователей

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

Кроме того, смартфон легко потерять или он может быть украден. Несмотря на то, что по умолчанию мобильные ОС требуют установки пароля, это требование можно отключить, что и делают некоторые пользователи. В этом случае злоумышленник, получивший физический доступ к устройству, подключит его к своему компьютеру и, используя специальные утилиты, извлечет из памяти устройства чувствительную информацию. Например, если в Android включено резервное копирование, то, используя инструмент Android Debug Bridge (ADB), можно попытаться получить данные приложения из резервной копии. Если есть привилегии root, то извлечь данные можно даже с отключенным резервированием. На устройствах Apple с jailbreak пользователи часто оставляют для SSH стандартную учетную запись (root:alpine), что позволяет злоумышленнику скопировать данные приложения на свой компьютер, подключившись по SSH. Угроза имеет особую актуальность в случае с корпоративными смартфонами или планшетами, которыми пользуются несколько сотрудников, знающие пароль от устройства.

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

18% приложений не ограничивают число попыток ввода аутентификационных данных

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

Рисунок 22. Угрозы для клиентских частей (доля систем)

Мастер Йода рекомендует:  Руководство по моделированию 2D водной поверхности

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

Счетчик числа попыток аутентификации должен быть реализован как на стороне сервера, так и на стороне клиента


Атаки на пользователей возможны из-за уязвимостей в серверных частях. Уязвимость «Межсайтовое выполнение сценариев» обнаружена в 86% серверов. Это самая распространенная веб-уязвимость. С ее помощью злоумышленники могут украсть учетные данные жертвы, например файлы Cookie, используя вредоносный скрипты. Но уязвимость может представлять опасность и для мобильных приложений, если в них используются компоненты с поддержкой HTML и JavaScript. Например, WebView — это системный компонент, который позволяет приложениям на Android отображать веб-контент непосредственно внутри приложения* ; аналогичные компоненты есть и в iOS: UIWebView и WKWebView.

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

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

На стороне сервера обязательно должна осуществляться фильтрация вводимых пользователем данных. Для спецсимволов рекомендуется использовать HTML-кодировку

18% приложений содержат уязвимости, позволяющие проводить атаки на сессию

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

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

50% Android 22% iOS Доли приложений с небезопасной передачей данных

Канал связи между клиентской частью приложения и сервером также может быть уязвим. Если клиентская часть взаимодействует с сервером по открытому протоколу HTTP, злоумышленник сможет перехватить чувствительные данные. Например, в случае с мобильным банком под угрозу попадает вся платежная информация. Чтобы предотвратить перехват, используется защищенный протокол HTTPS. В этом случае безопасность соединения обеспечивается за счет шифрования передаваемой информации. На устройстве при этом хранятся сертификаты — специальные файлы, благодаря которым клиент «знает» имя сервера, куда передаются данные.

Однако даже защищенное с помощью HTTPS клиент-серверное взаимодействие не всегда безопасно. Дело в том, что сертификаты хранятся на устройстве в общем для всех приложений хранилище. Вредоносное ПО может установить на смартфон жертвы корневой сертификат злоумышленника. В этом случае все сертификаты, удостоверенные поддельным корневым сертификатом, будут считаться доверенными. Теперь если жертва подключится к сетевому оборудованию (например, к Wi-Fi-роутеру), который контролируется злоумышленником, он сможет провести атаку «человек посередине», другими словами — вклиниться в канал связи и прослушивать трафик, что означает полную компрометацию передаваемых данных.

Рисунок 24. Схема атаки «человек посередине» в случае отсутствия привязки сертификата

Для максимальной безопасности взаимодействия клиентской и серверной частей мы рекомендуем использовать технологию Certificate Pinning, которая предполагает внедрение сертификата сервера непосредственно в код мобильного приложения. Приложение становится независимым от системного хранилища сертификатов. Это позволяет предотвратить атаку «человек посередине»

18% мобильных приложений содержат небезопасные внешние ссылки

Помимо небезопасного обмена данными между клиентской и серверной частями, приложение может содержать ссылки для передачи информации по незащищенному протоколу HTTP во внешнюю среду. Проблема небезопасной передачи данных чаще встречается в ОС Android. Начиная с версии 9 в iOS была встроена технология App Transport Security, которая запрещает работу по незащищенному каналу по умолчанию. Однако разработчик может явно указать исключения — адреса, с которыми разрешено взаимодействие по открытому протоколу. Иногда это требуется на этапе отладки и тестирования приложения, но зачастую небезопасные ссылки попадают в продуктивные версии систем.

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

Какие риски подстерегают пользователей

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

Иногда хакеру нужен полный доступ к файловой системе: jailbreak в iOS или права пользователя root в Android. Однако и это не всегда является проблемой для злоумышленника. Многие владельцы мобильных устройств намеренно повышают свои привилегии в ОС, стремясь обойти различные ограничения, например чтобы установить пиратское ПО или изменить внешний вид графического интерфейса. По данным исследователей, 8% пользователей iOS установили jailbreak, 27% устройств на платформе Android обладают правами root. Устройства с максимальными правами подвержены повышенному риску, поскольку привилегиями может воспользоваться вредоносное программное обеспечение. Например, зловред KeyRaider, который распространялся через магазин приложений для устройств с jailbreak, похищал учетные записи, сертификаты и ключи шифрования; от него пострадали 225 тысяч пользователей iOS.

Не повышайте привилегии до административных. Это открывает доступ к файловой системе и отключает механизмы защиты ваших данных

Понимая масштаб проблемы заражения мобильных устройств вредоносным ПО, компании Google и Apple активно противодействуют киберпреступникам. Для защиты от хакеров Google предлагает использовать набор сервисов Google Play Protect, который сканирует приложения не только на Android-устройствах пользователей, но и в официальном каталоге Google Play. Для противодействия распространению вредоносного ПО через App Store в компании Apple проводят обязательный ручной анализ предлагаемых разработчиками приложений.

Тщательная проверка снижает количество вредоносных приложений, хотя и не исключает их появления, и заразиться вредоносным ПО можно даже через официальные магазины приложений. Так, хакерам удалось загрузить в App Store 39 вредоносных программ с использованием XcodeGhost — поддельной версии легитимного инструмента Xcode, используемого разработчиками программ для устройств Apple. Другой пример — банковский троян Anubis, который успешно обходил проверки безопасности не только в Google Play, но и в системе защиты ОС Android.

Регулярно устанавливайте обновления ОС и приложений. Если вы обладатель устройства с root или jailbreak, помните, что ваше устройство может не обновляться автоматически

Заражение вредоносным ПО через официальные магазины приложений — далеко не единственный путь компрометации устройства. Даже новый смартфон может содержать вредоносный код. Так, в результате атаки на разработчика на смартфоны Alcatel было предустановлено шпионское ПО, и пользователи приобретали устройства, которые были заведомо скомпрометированы. Еще один пример — бэкдор TimpDoor; его хакеры распространяли отправляя жертвам ссылку по SMS.

Для противодействия атакам iOS запрещает загрузку приложений из любых источников, кроме App Store, но существуют способы обойти ограничение, например с помощью собственных сертификатов и протокола MDM (Mobile Device Management). Для этого пользователю необходимо вручную подтвердить доверие к сертификату разработчика приложения и его установку из недоверенного источника, на что пользователя может сподвигнуть злоумышленник в процессе фишинговой атаки.

качестве меры борьбы с киберпреступниками компания Apple запрещает размещение в App Store приложений, в которых использованы так называемые private API — методы, которые позволяют приложениям выполнять ряд действий на устройстве, в том числе загружать другие приложения. Троянская программа с private API сможет устанавливать на устройство жертвы любые другие программы в обход App Store, а значит — в обход любых проверок. Однако, как выяснилось, защита ведется неидеально, благодаря чему, например, распространялся вредонос YiSpecter. Схема заражения YiSpecter очень простая: пользователь открывает зараженную ссылку, подтверждает установку ПО не из App Store, и его мобильное устройство оказывается заражено. В свою очередь YiSpecter, попадая на устройство жертвы, использовал методы private API и автоматически загружал другие программы, которые похищали персональные данные жертвы.

Рисунок 26. Запрос на подтверждение установки стороннего ПО (источник: zdnet.de/88248255/ios-malware-yispecter-auchfuer-geraete-ohne-jailbreak-gefaehrlich/)

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

Один из альтернативных способов установки вредоносного ПО на устройства Apple — это загрузка файлов приложения (.ipa) на компьютер жертвы и их установка на устройство с помощью Apple ID (учетной записи в iCloud) и программы для установки приложений (например, Cydia Impactor) посредством соединения по USB-кабелю. Распространяться такое ВПО может в неофициальных магазинах под видом бесплатных («взломанных») версий ПО из App Store. Подобным образом устройства жертв заражались вредоносным ПО WireLurker.

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

Политика Google в вопросе загрузки приложений из альтернативных источников менее строгая: возможность загружать программы из неофициальных источников оставлена на усмотрение пользователя и регулируется при настройке ОС. По статистике, каждое пятое устройство на Android разрешает устанавливать приложения из сторонних источников. Кроме того, на 7% устройств Apple и 3% Androidустройств установлено как минимум одно приложение из неофициальных магазинов. Важно отметить, что административные права, о которых говорилось выше, снимают любые ограничения по загрузке программ как в iOS, так и в Android.

Не доверяйте сторонним магазинам мобильных приложений. Подозрительные программы (например, якобы «взломанные» бесплатные версии коммерческих приложений) могут содержать вредоносный код

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

Выводы

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

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

Говоря о мобильных приложениях, нельзя недооценивать риск кибератаки в результате эксплуатации серверных уязвимостей. Серверы мобильных приложений защищены не лучше, чем клиентские части. В 2020 году каждая серверная часть содержала хотя бы одну уязвимость, которая позволяет проводить разнообразные атаки на пользователей, включая фишинговые рассылки от имени сотрудников компанииразработчика, что ставит под удар ее репутацию. Для предотвращения эксплуатации серверных уязвимостей мы рекомендуем использовать межсетевой экран уровня приложений (web application firewall).

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

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

Об исследовании

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

65% Доля систем, протестированных методом белого ящика

8 клиентов Android


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

Рисунок 27. Типы приложений

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

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

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

* В начале 2020 года наши эксперты обнаружили в этом компоненте уязвимость (CVE2020-5765), которая позволяет получать доступ к данным пользователей Android через установленное вредоносное приложение или приложение с мгновенным запуском (Android instant apps).

Подборка необычных приложений для Android по версии 3Dnews

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

Блин, а приложение действительно невероятно интересные! Я пролистал все Ваши посты и, к сожалению, не нашел подборки таких полезностей;) Пилите пост!

Есть сайт 4pda — там всё есть. И статьи, и форум, и сами приложения, и моды на них.

С тату и правда забавная. Wi-FI мышью пользуюсь давно, отличнейшая прога!

АнтиКонтрафакт — говнище редкостное. Впрочем как и всё, что делается за миллионы бюджетных средств. Просит зарегаться, а потом еще и ошибка вылетает. Какая польза от него?

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

Видимо, нужно указать дату рождения 18+, а я только до 2014 года додрочил календарь и забил, палец устал.

Да отсохнут руки программиста этой шняги.

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

Принципы обнаружения вредоносных приложений для Andro >

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

Введение

Мобильные устройства хранят огромное количество важной персональной информации, включая платежную, что делает их привлекательными для киберпреступников. Развитие мобильных ОС, например iOS и Android, а также техническая эволюция смартфонов и планшетов привели к росту популярности последних. Результатом высокого спроса, а также множества уязвимостей операционной системы и отсутствия средств антивирусной защиты стал интерес киберпреступников к разработке или покупке приложений, реализующих вредоносные функции на мобильных платформах. Это, в свою очередь, поставило перед специалистами в области судебной компьютерной (компьютерно-технической) экспертизы новые задачи.

Общая характеристика вредоносных приложений для Android

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

Для того чтобы проводить анализ приложений, эксперту необходимо понять их формат. Рассматриваемые приложения хранятся в памяти мобильного устройства в формате APK, причем приложение сначала компилируется, а уже после упаковывается в APK-файл вместе со всеми составляющими. Указанный файл представляет собой ZIP-архив, включающий байт-коды, ресурсы, сертификаты и manifest-файл. После установки APK-файл копируется в соответствующее место файловой системы. Для системных приложений это обычно /system/app, для пользовательских — /data/app.

С криминалистической точки зрения APK-файл содержит три наиболее важных части: сигнатура, байт-код и ресурсы.

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

Исполняемая часть приложения хранится в файле classes.dex, размещенном в архиве (APK-файл), и содержит все его скомпилированные классы, представленные в виде байт-кодов. Необходимо отметить, что байт-код здесь преобразован в инструкции для виртуальной машины AndroidRuntime, так как последняя, в отличие от виртуальной машины Java, основана на регистрах. Также APK-файл может содержать заранее скомпилированный код (каталог lib).

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

Обнаружение вредоносных приложений для Android

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

Чтобы обнаружить потенциально вредоносные приложения, эксперт может использовать контрольные суммы. База данных (БД) контрольных сумм может быть собрана на основе данных, представленных, например, в Google Play. Тот факт, что контрольная сумма приложения не соответствует ни одной из имеющихся в БД, может указывать на то, что приложение является вредоносным. Разумеется, для однозначного вывода данной информации недостаточно: требуется более глубокий анализ.

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

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

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

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

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

Для того чтобы извлечь байт-код (в .dex формате) из APK-файла, эксперт может воспользоваться, например, ApkTool. Для декомпиляции байт-кода в исходный код Java и последующего анализа может быть использована связка программных продуктов, состоящая, например, из Dex2Jar (декомпиляция) и JD-GUI (анализ). Полученный в результате декомпиляции исходный код Java нуждается в редактировании: может возникнуть необходимость удалить пустые классы, поправить ошибки, осуществить переименования методов, классов и их объектов и т. д.

Символьные строки, содержащиеся в предположительно вредоносной программе, являются важнейшим источником криминалистически значимой информации. Для реализации шифрования символьных строк разработчиками используются как сравнительно простые алгоритмы, такие как XOR, Base64 и ROT13 (включая его вариации, например, ROT15), так и продвинутые криптографические стандарты, например DES и AES.

Так, идентификация символьных строк, зашифрованных применением алгоритма XOR, может быть осуществлена экспертом посредством программного продукта XORSearch разработки Дидье Стивенса.

Необходимо отметить, что злоумышленниками применяются различные методы, позволяющие избежать детектирования рассматриваемого алгоритма. Например, шифрование с применением XOR осуществляется в два этапа: сначала с использованием одного значения, затем — другого.

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

ROT13 — наиболее простой алгоритм из трех рассматриваемых. Но существуют и его модификации, способные усложнить декодирование. Так разработчиками вредоносного программного обеспечения может использоваться модификация этого алгоритма, например ROT15, которая осуществляет сдвиг не на 13 позиций, а на 15.


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

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

Анализ следов предположительно вредоносных программ

Исследователи различают два типа анализа предположительно вредоносных программ: динамический и статический.

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

Для проведения динамического (поведенческого) анализа экспертом может быть использован, например, программный продукт DroidBox. Он позволяет собрать следующую информацию о программе и ее деятельности в системе:

  • хеш-сумма APK-файла (алгоритмы MD5, SHA-1 и SHA-256);
  • сведения о полученных и отправленных по сети данных;
  • сведения об операциях чтения и записи файлов;
  • сведения о запущенных службах и загруженных классах;
  • сведения о сборе и отправке пользовательских данных;
  • сведения о разрешениях, которые получило приложение;
  • сведения о криптографических операциях, осуществляемых приложением с использованием Android API;
  • сведения об отправляемых SMS-сообщениях и осуществляемых вызовах.

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

Необходимо отметить, что рассматриваемый программный продукт предназначен для работы в операционных системах Linux и Mac OS X. Однако большинство экспертов используют рабочие станции под управлением операционной системы семейства Windows. Решением данной проблемы может послужить создание виртуальной машины и установка соответствующей операционной системы или использование уже готового дистрибутива, например Santoku Linux.

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

Существует два наиболее распространенных способа проведения статического анализа, а именно с использованием ApkTool или Dex2Jar и JD-GUI.

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

  • файл Android Manifest, который содержит сведения о разрешениях, запрашиваемых приложением, а также о точках входа;
  • каталог res, который содержит XML-файлы, описывающие макет приложения, а также необходимые ему графические файлы и т. д.;
  • каталог smali, содержащий файлы .smali (операционный код), которые могут быть проанализированы посредством текстового редактора с подсветкой синтаксиса, например, Notepad++.

Чтобы воспользоваться Dex2Jar, эксперту необходимо предварительно распаковать предположительно вредоносный APK-файл, после чего посредством рассматриваемого программного продукта преобразовать файл classes.dex (байт-код) в classes.dex.dex2jar.jar (java-код). Анализ полученного файла, содержащего исходный код Java, может быть произведен посредством программного продукта JD-GUI.

Рисунок 1. Этапы обнаружения и анализа следов предположительно вредоносного поведения программ в ОС Android

Выводы

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

Принципы обнаружения вредоносных приложений для Android

Dragokas

Very kind Developer

Принципы обнаружения вредоносных приложений для Android

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

1. Введение
2. Общая характеристика вредоносных приложений для Android
3. Обнаружение вредоносных приложений для Android
4. Методы противодействия криминалистическому исследованию и способы борьбы с ними
5. Анализ следов предположительно вредоносных программ
6. Выводы

Мобильные устройства хранят огромное количество важной персональной информации, включая платежную, что делает их привлекательными для киберпреступников. Развитие мобильных ОС, например iOS и Android, а также техническая эволюция смартфонов и планшетов привели к росту популярности последних. Результатом высокого спроса, а также множества уязвимостей операционной системы и отсутствия средств антивирусной защиты стал интерес киберпреступников к разработке или покупке приложений, реализующих вредоносные функции на мобильных платформах. Это, в свою очередь, поставило перед специалистами в области судебной компьютерной (компьютерно-технической) экспертизы новые задачи.

Общая характеристика вредоносных приложений для Android

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

Для того чтобы проводить анализ приложений, эксперту необходимо понять их формат. Рассматриваемые приложения хранятся в памяти мобильного устройства в формате APK, причем приложение сначала компилируется, а уже после упаковывается в APK-файл вместе со всеми составляющими. Указанный файл представляет собой ZIP-архив, включающий байт-коды, ресурсы, сертификаты и manifest-файл. После установки APK-файл копируется в соответствующее место файловой системы. Для системных приложений это обычно /system/app, для пользовательских — /data/app.

Мастер Йода рекомендует:  Что и как в ES6 хитрости, лучшие практики и примеры. Часть вторая. Мэпы, слабые мэпы, обещания,

С криминалистической точки зрения APK-файл содержит три наиболее важных части: сигнатура, байт-код и ресурсы.

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

Исполняемая часть приложения хранится в файле classes.dex, размещенном в архиве (APK-файл), и содержит все его скомпилированные классы, представленные в виде байт-кодов. Необходимо отметить, что байт-код здесь преобразован в инструкции для виртуальной машины AndroidRuntime, так как последняя, в отличие от виртуальной машины Java, основана на регистрах. Также APK-файл может содержать заранее скомпилированный код (каталог lib).

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

Обнаружение вредоносных приложений для Android

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

Чтобы обнаружить потенциально вредоносные приложения, эксперт может использовать контрольные суммы. База данных (БД) контрольных сумм может быть собрана на основе данных, представленных, например, в Google Play. Тот факт, что контрольная сумма приложения не соответствует ни одной из имеющихся в БД, может указывать на то, что приложение является вредоносным. Разумеется, для однозначного вывода данной информации недостаточно: требуется более глубокий анализ.

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

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

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

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

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

Для того чтобы извлечь байт-код (в .dex формате) из APK-файла, эксперт может воспользоваться, например, ApkTool. Для декомпиляции байт-кода в исходный код Java и последующего анализа может быть использована связка программных продуктов, состоящая, например, из Dex2Jar (декомпиляция) и JD-GUI (анализ). Полученный в результате декомпиляции исходный код Java нуждается в редактировании: может возникнуть необходимость удалить пустые классы, поправить ошибки, осуществить переименования методов, классов и их объектов и т. д.

Символьные строки, содержащиеся в предположительно вредоносной программе, являются важнейшим источником криминалистически значимой информации. Для реализации шифрования символьных строк разработчиками используются как сравнительно простые алгоритмы, такие как XOR, Base64 и ROT13 (включая его вариации, например, ROT15), так и продвинутые криптографические стандарты, например DES и AES.


Так, идентификация символьных строк, зашифрованных применением алгоритма XOR, может быть осуществлена экспертом посредством программного продукта XORSearch разработки Дидье Стивенса.

Необходимо отметить, что злоумышленниками применяются различные методы, позволяющие избежать детектирования рассматриваемого алгоритма. Например, шифрование с применением XOR осуществляется в два этапа: сначала с использованием одного значения, затем — другого.

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

ROT13 — наиболее простой алгоритм из трех рассматриваемых. Но существуют и его модификации, способные усложнить декодирование. Так разработчиками вредоносного программного обеспечения может использоваться модификация этого алгоритма, например ROT15, которая осуществляет сдвиг не на 13 позиций, а на 15.

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

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

Анализ следов предположительно вредоносных программ

Исследователи различают два типа анализа предположительно вредоносных программ: динамический и статический.

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

Для проведения динамического (поведенческого) анализа экспертом может быть использован, например, программный продукт DroidBox. Он позволяет собрать следующую информацию о программе и ее деятельности в системе:

  • хеш-сумма APK-файла (алгоритмы MD5, SHA-1 и SHA-256);
  • сведения о полученных и отправленных по сети данных;
  • сведения об операциях чтения и записи файлов;
  • сведения о запущенных службах и загруженных классах;
  • сведения о сборе и отправке пользовательских данных;
  • сведения о разрешениях, которые получило приложение;
  • сведения о криптографических операциях, осуществляемых приложением с использованием Android API;
  • сведения об отправляемых SMS-сообщениях и осуществляемых вызовах.

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

Необходимо отметить, что рассматриваемый программный продукт предназначен для работы в операционных системах Linux и Mac OS X. Однако большинство экспертов используют рабочие станции под управлением операционной системы семейства Windows. Решением данной проблемы может послужить создание виртуальной машины и установка соответствующей операционной системы или использование уже готового дистрибутива, например Santoku Linux.

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

Существует два наиболее распространенных способа проведения статического анализа, а именно с использованием ApkTool или Dex2Jar и JD-GUI.

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

  • файл Android Manifest, который содержит сведения о разрешениях, запрашиваемых приложением, а также о точках входа;
  • каталог res, который содержит XML-файлы, описывающие макет приложения, а также необходимые ему графические файлы и т. д.;
  • каталог smali, содержащий файлы .smali (операционный код), которые могут быть проанализированы посредством текстового редактора с подсветкой синтаксиса, например, Notepad++.

Чтобы воспользоваться Dex2Jar, эксперту необходимо предварительно распаковать предположительно вредоносный APK-файл, после чего посредством рассматриваемого программного продукта преобразовать файл classes.dex (байт-код) в classes.dex.dex2jar.jar (java-код). Анализ полученного файла, содержащего исходный код Java, может быть произведен посредством программного продукта JD-GUI.

Рисунок 1. Этапы обнаружения и анализа следов предположительно вредоносного поведения программ в ОС Android

Авторы:
Скулкин Олег Владимирович
Михайлов Игорь Юрьевич
Нестеров Антон Дмитриевич

Двенадцать самых опасных разрешений для приложений на Andro >

Рассмотрим опасности, которые возможны при пользовании смартфоном и приложениями.

Местоположение на основе данных GSM связи

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

Местоположение на основе данных GPS

Это разрешение несет такие угрозы безопасности, как и предыдущее, но с повышенной точностью.

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

Но все же давать такое разрешение сторонним приложениям и сервисам надо осмотрительно.

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

Состояние связи

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

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

Контроль Wi-Fi соединения

Некоторые вредоносные программы могут сканировать вашу Wi-Fi сеть, настройки и потоки данных ради информации и паролей точек доступа. Недавний пример такого вредоносного вмешательства — эксплойт KRACK.

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

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

Доступ к состоянию приложений

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

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

Полный доступ к Интернету

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

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


Доступ к состоянию смартфона и его идентификации

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

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

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

Доступ к автозапуску системы

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

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

Управление вибрацией

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

Управление временем «сна» смартфона

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

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

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

Сейчас, в мире распределенных вычислений и облачных хранилищ, ваш смартфон может стать хранилищем украденных или нелегальных данных. Размеры карт памяти сейчас позволяют незаметно спрятать на них архив годовой работы отдела ЦРУ незаметно для владельца. Гигабайтом больше, гигабайтом меньше — какая разница, кто за этим следит?

Доступ к карте памяти традиционно имеют приложения Камера, Галерея, Документы, Офис, Файловый менеджер, Музыка, Видео, браузеры, мессенджеры, приложения соцсетей. Поэтому перехватить работу какого-либо из них для воров и шпионов не очень сложно. Они смогут читать ваши файлы, удалять их, а также хранить на карточке свои. Смартфон — это не настольный компьютер, винчестер у него не шумит, поэтому процесс записи или считывания данных происходит незаметно для владельца.

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

Доступ к контактам и SMS-сообщениям

Контакты — это то, за что борются все: социальные сети, онлайн-магазины, рекламные агентства и злоумышленники.

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

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

И вообще, контакты надо актуализировать по крайней мере раз в полгода. Ведь на самом деле вы общаетесь не больше, чем с 20-50 людьми. Зачем вам 100500 контактов людей, которых вы даже не знаете? Меньше контактов — меньше спама от вас получится.

Как уменьшить опасность?

Всевозможные антивирусы не успевают за преступными разработками. Это мы видели недавно на примере того же KRACK, который до сих пор распространяется по миру. Поэтому борьба с вредоносными программами — это дело внимательного и сознательного юзера.

20 самых необычных приложений для Andro >

Андрей Крупин

24 января 2020

Каждый из нас использует возможности своего смартфона по-разному: это зависит от вида деятельности, круга решаемых задач, интересов и прочих факторов. Одни по старинке довольствуются только телефонными возможностями устройства, другие совмещают голосовую коммуникацию с общением в социальных сетях, веб-серфингом и играми, третьи вовсю применяют гаджеты для съемок фото и видео, навигации, осуществления банковских операций, чтения книг. Немало находится и тех, кто использует смартфон или планшет в деловой деятельности: для работы с электронной корреспонденцией и документами, оперативной связи с коллегами и партнерами, развития бизнеса. Сфера применения мобильной техники огромна, однако немногие догадываются о существовании в магазине приложений Google Play продуктов, позволяющих взглянуть на привычные устройства с совершенно иной стороны и полностью раскрыть заложенный в них потенциал. Заинтересовались? Тогда переходим к иллюстрированному обзору двадцати самых необычных приложений для Android!

Открывает наш ТОП-20 пара приложений, имеющих одинаковое название Smart Tools и доступных для скачивания по этой и этой ссылкам в Google Play. С их помощью не составит труда превратить смартфон в «швейцарский армейский нож» и использовать его в качестве шумомера, дальномера, виброметра, металлодетектора, прибора для измерения освещенности, термометра, радара для измерения скорости движущихся объектов, уровня, лупы, метронома, камертона, кардиографа и десятка других полезных в хозяйстве инструментов. Для полноценной работы обеих программ необходима поддержка в мобильном устройстве целого вороха датчиков: освещенности, приближения, акселерометра/гироскопа, магнитометра (цифрового компаса), барометра и других. На точность производимых Smart Tools измерений, конечно, рассчитывать не стоит, однако в некоторых случаях такой набор программных помощников может сослужить добрую службу. Например, он может пригодиться для поиска на скорую руку скрытой проводки в стене или выравнивания стиральной машины по горизонтальной плоскости.

Раз уж речь зашла об измерительных инструментах, то отличным дополнением к упомянутым выше приложениям может стать Planimeter — инструмент для определения расстояния, площади, периметра, углов на местности с использованием Google Maps и встроенного в смартфон GPS/ГЛОНАСС-приемника. Такая программа может найти применение в различных областях: полевых и сельскохозяйственных работах, планировании, строительстве, в путешествии и для развлечения. Также она может быть полезна для агентов по продаже недвижимости. Для вычисления периметра или площади любого объекта (к примеру, земельного участка) достаточно выставить на карте начальную точку, включить трекинг маршрута и затем обойти объект вокруг. Planimeter автоматически произведет все расчеты и выдаст результат измерений. Аналогичным образом можно измерять расстояние между двумя точками на карте и углы между линиями.

Более прогрессивна в плане измерений программа Radioactivity Counter, позволяющая на полном серьезе применять смартфон в качестве. простейшего дозиметра радиации! Для мониторинга радиационной обстановки используется светочувствительная матрица камеры мобильника, объектив которой нужно предварительно закрыть темной пленкой – например, от дискеты или рентгеновского снимка. После этого потребуется произвести калибровку приложения по приведенной на сайте разработчиков инструкции, и можно приступать к измерению радиационного фона. При ссылке также представлены различные научно-исследовательские материалы, результаты экспериментов с использованием профессионального оборудования и демонстрационные видеоролики, подтверждающие практическую ценность и работоспособность Radioactivity Counter.

Школьников старших классов и студентов технических вузов обязательно порадует приложение PhotoMath для решения математических задач с помощью камеры смартфона и технологии оптического распознавания тестов Optical Character Recognition (OCR). Принцип работы с программой прост, как все гениальное: достаточно навести камеру на математическую задачу, и PhotoMath сразу же выдаст ответ и приведет подробное пошаговое решение. Возможности приложения позволяют распознавать не только печатный, но и рукописный текст, а также вносить правки в отсканированные формулы и уравнения. Справедливости ради отметим, что такой мобильный помощник может пригодиться не только учащимся, но и родителям – для проверки правильности выполнения детьми домашний заданий.

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

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

Не отстают и отечественные организации, в том числе государственные. Одной из них является Федеральная служба по регулированию алкогольного рынка (Росалкогольрегулирование), создавшая актуальное для любителей «принять на грудь» приложение «АнтиКонтрафакт Алко», которое предназначено для определения подлинности алкогольной продукции. Посредством камеры телефона программа считывает акцизную марку (либо штрихкод на чеке), производит сверку с Единой государственной автоматизированной информационной системой (ЕГАИС) и демонстрирует на экране результаты проверки. О найденном нарушении можно сразу сообщить в Росалкогольрегулирование и оповестить ведомство о нелегальной точке продажи алкоголя. Также в приложении есть карта магазинов, обладающих лицензией на торговлю алкоголем. В свете широко обсуждаемых в СМИ случаев массового отравления населения метиловым спиртом и контрафактной алкогольной продукцией списывать со счетов «АнтиКонтрафакт Алко» определенно не стоит.

Для автомобилистов в нашей подборке представлены сразу три программы: «Автоускорение», Car Alarm и «МетеоМойка». Первая позволяет превратить смартфон в прибор для измерения времени разгона машины до 100 км/ч, вторая — в простейшую сигнализацию для защиты от угона, повреждения или эвакуации машины, третья — в помощника, подсказывающего наиболее удачный день для мойки автомобиля и автоматически выстраивающего маршрут до ближайшей автомойки. Принципиальное отличие приложения «Автоускорение» от конкурентов — использование информации от двух датчиков: GPS-приёмника и акселерометра. Они же задействованы и в Car Alarm, контролирующей местоположение транспортного средства и в случае тревоги уведомляющей владельца звонком или SMS-сообщением. Особенность «МетеоМойки» — система анализа метеорологических данных и оценки прогноза погоды на несколько дней вперед. Именно она определяет наиболее подходящее время для мытья транспорта.

Хорошим дополнением к набору упомянутых программ для автолюбителей является приложение Nexar — AI Dashcam, которое превращает смартфон в продвинутый видеорегистратор, умеющий одновременно записывать видео с фронтальной и тыловой камер, на лету анализировать дорожную обстановку и информировать водителя о возникающих опасностях.

Не менее интересен Ink Hunter — программный продукт для виртуальной примерки татуировок перед посещением тату-салона. Благодаря поддержке технологий дополненной реальности (Augmented Reality, AR) приложение позволяет воочию увидеть, как будет смотреться на теле та или иная татуировка в различных ракурсах. В программе предусмотрен набор эскизов тату на любой вкус, имеется возможность загрузки пользовательских изображений.

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

Тем, чья профессия связана с программированием, мы можем смело порекомендовать интегрированную среду разработки AIDE, позволяющую создавать приложения непосредственно на мобильном устройстве. В качестве средств разработки могут быть использованы Java, C/C++, HTML5, CSS и JavaScript. Для удобства работы в AIDE предусмотрены продвинутый редактор с функциями автоподстановки кода и поиска ошибок, компилятор, отладчик, файловый менеджер c поддержкой протокола SSH и подробнейшая справочная документация. Также заявлена совместимость со средами разработки Eclipse, Android Studio и системой управления версиями Git.

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

Немало в Google Play представлено приложений, позволяющих превратить Android-гаджет в беспроводную мышь, клавиатуру или трекпад для компьютера и различных мультимедийных устройств. К числу таких необычных решений относится программа Wi-Fi Mouse, использующая для передачи управляющих команд сетевое соединение. Ее отличительные особенности: поддержка голосового ввода и мультитач-жестов для трекпада, а также наличие встроенных средств дистанционного управления играми, веб-браузерами, презентациями Power Point и медиаплеерами, такими как Windows Media Player, VLC, Winamp и многими другими. Wi-Fi Mouse поддерживает взаимодействие с устройствами под управлением операционных систем Windows, macOS и Linux. Перед началом работы с приложением необходимо установить на компьютер дополнительный софт Mouse server, скачать который можно с сайта разработчиков.

Благодаря приложению ABBYY FineScanner смартфон на базе Android может справиться с ролью карманного сканера для документов и книг. Созданный российским разработчиком продукт позволяет создавать PDF- или JPG-файлы из любых печатных документов (счетов, свидетельств, договоров, персональных документов). В программу встроена технология OCR, которая распознает тексты на 193 языках и с сохранением форматирования выгружает результаты в 12 популярных форматов, в том числе DOCX, XLSX, PPTX, PDF. Готовые документы можно перенести в любое из восьми облачных хранилищ, распечатать, отправить по e-mail, открыть в другом приложении для работы с PDF. Для сканирования книжных и журнальных изданий в ABBYY FineScanner предусмотрена функция BookScan, которая автоматически разделяет сфотографированный разворот книги на две страницы, выпрямляет изгибы строк, удаляет дефекты и делает сканерную копию, которую можно распознать и получить редактируемый файл.

Системным IT-администраторам стоит занести в закладки приложение с говорящим названием Web Monitor, предназначенное для мониторинга и диагностики серверов в сетях TCP/IP. Программа периодически, с заданным интервалом времени, отправляет запросы выставленным в настройках площадкам, фиксирует поступающие от них ответы и формирует подробную статистику работы сетевых узлов. При использовании такого мобильного инструмента не составит труда узнать, функционирует ли сервер, не «завис» ли он и когда был недоступен, а также проанализировать качество и загруженность канала связи. По сути, Web Monitor представляет собой усовершенствованный вариант диагностической утилиты Ping, входящей в поставку всех современных операционных систем и предназначенной для проверки соединений в сетях на основе TCP/IP.


Более совершенным и технологически продвинутым аналогом Web Monitor является Pulseway — программный комплекс для всестороннего мониторинга рабочих станций и серверов под управлением платформ Windows, macOS и Linux, а также виртуальных сред Microsoft Hyper-V, VMware и XenServer, систем управления базами данных MS SQL Server, серверов IIS, Exchange, Active Directory и других сервисов корпоративного уровня. С его помощью можно в дистанционном режиме контролировать работу устройств и выполняемых задач, просматривать снимки экранов, анализировать производительность оборудования, получать сведения о статусе сервисов и служб, а также возникающих ошибках и сбоях в работе систем. Pulseway позволяет отправлять команды удаленным машинам: перезагружать их, приостанавливать работу процессов, рассылать сообщения авторизованным пользователям и выполнять прочие операции, с полным списком которых можно ознакомиться на сайте продукта pulseway.com. Сбор необходимых сведений и управление компьютерами осуществляется посредством специальных программных клиентов, устанавливаемых на рабочих станциях и серверах.

Ну а замыкает нашу подборку мобильный инструмент WiFi Analyzer, позволяющий использовать смартфон в качестве сетевого сканера. Программа сканирует эфир на предмет сигналов Wi-Fi, определяет уровень сигнала каждой из обнаруженных сетей, а также их характеристики (SSID, канал, метод шифрования, MAC-адрес маршрутизатора и прочее) и на основе собранной информации вырисовывает наглядные графики, отражающие чёткую картину беспроводных сетей. WiFi Analyzer поддерживает работу с различными частотными диапазонами и может быть использована для определения оптимальных настроек и местоположения Wi-Fi-устройств в целях улучшения качества приема сигнала и правильного построения беспроводных локальных сетей в организации. Добрую службу приложение может сослужить при проведении аудита безопасности сети и устранении неисправностей сетевого оборудования.

Таков наш топ-20 программных продуктов для Android, которые позволяют значительно расширить спектр практического применения мобильных устройств. Сразу скажем, что составленный нами список нельзя отнести к разряду исчерпывающих: в Google Play свыше 2,6 млн приложений (по данным ресурса AppBrain), и выбрать из них самые интересные — непростая задача. Именно по этой причине мы призываем читателей 3DNews поделиться своими заслуживающими внимания широкой аудитории находками в данной области. Оставляйте комментарии, ссылки, краткие описания и названия продуктов, обзор которых мы постараемся сделать в следующих выпусках мобильного дайджеста.

9 самых необходимых программ для Andro >

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

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

Xposed Framework

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

QuickPic

Современный смартфон уже давно успешно заменяет фотоаппарат, так что без приложения для просмотра изображений обойтись невозможно. И кто бы что ни говорил, лучшей программой в этой категории остаётся QuickPic. Эта быстрая, красивая, функциональная галерея легко справляется даже с огромными коллекциями, умеет показывать слайд-шоу, содержит простой фоторедактор, но самое главное, позволяет автоматически бэкапить картинки в один из онлайновых фотохостингов (Google Drive, Dropbox, Flickr, OneDrive, Box, Amazon, «Яндекс», 500px, OwnCloud и другие).

YouTube

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

BlackBerry в России

Если вы попытаетесь искать приложения для обеспечения безопасности и конфиденциальности в Google Play, то вы увидите множество списков приложений для защиты от вирусов и вредоносных программ. Но, к сожалению, это очень узкий взгляд на проблему. Есть множество приложений, которые могут сделать использование смартфона более безопасным. Большинство из них достаточно просты в использовании и не требуют значительных ресурсов вашего устройства. Конечно, для бизнес-использования, вам лучше изучить пакет приложений BlackBerry, но для вот лучшие пользовательские приложения для обеспечения безопасности, доступные на Android.

Android Device Manager

Android Device Manager — это сервис, который помогает защитить ваш смартфон от кражи или потери. Это приложение должно быть установлено на каждом устройстве Android (если у него есть магазин Google Play). Вы можете в любой момент получить доступ к своему аккаунту, перейдя в Настройки аккаунта Google в меню настроек вашего устройства. После активации сервиса (это производится по умолчанию) вы можете зайти на веб-сайт и управлять вашим устройством. Возможности включают поиск и удаление данных с устройства. Вы даже можете включить громкий сигнал, чтобы его найти. Услуга полностью бесплатна. Это одно из обязательных приложений для безопасности.

Подробней о том, как найти ваш смартфон на базе Android используя Android Device Manager — в нашей статье: Как найти ваш BlackBerry PRIV используя Удаленное управление Android?

Applock

Цена: бесплатно / донейт по желанию

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

DuckDuckGo

DuckDuckGo один из самых безопасных сервисов для поиска. Это поисковая система, похожая на Google, Bing или Yahoo, однако его основное преимущество в том, что он не отслеживает историю поиска. Это означает, что вам не потребуется беспокоиться о том, что кто-то будет наблюдать за тем, что вы ищете. Приложение работает достаточно хорошо. У него есть настройки поиска и встроенный браузер. Формально, это не приложение для безопасности, но тем не менее, оно отлично подойдет для тех, кто хочет получить больше конфиденциальности.

Браузер Ghostery

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

GlassWire

GlassWire — это новое приложение для обеспечения безопасности, которое позволяет вам видеть, какие приложения расходуют ваши данные. Вы получите живой график, который в режиме реального времени показывает, сколько данных потребляют ваши приложения. Кроме того, вы получите оповещения, которые позволят вам узнать, когда новое приложение загружает данные. Это отличный способ узнать, сколько данных использует каждое из ваших приложений. Это также отличный способ увидеть какие-то странные действия, которые могут происходить в фоновом режиме. Это приложение, по своему назначению напоминает предустановленное на смартфоны BlackBerry на базе Android приложение DTEK, однако GlassWire предоставляет информацию не только о доступе к вашим данным, но и о объемах переданной информации.

LastPass

Цена: бесплатно / $ 12 в год

LastPass — одно из лучших приложений для управления паролями. Он позволяет хранить пароли сайтов, PIN-коды и другую важную информацию для быстрого доступа. Это намного безопаснее, чем просто записывать эту информацию. Вы также можете использовать LastPass Authenticator для дополнительной безопасности. LastPass — это мощное и кроссплатформенное приложение. Бесплатная версия имеет достаточно много возможностей, а полная версия добавляет некоторые функции, параметры синхронизации с другими устройствами и многое другое. Это одно из обязательных приложений для безопасности.

Reslio Sync

Resilio Sync — это ваше собственное облачное хранилище. Версия Resilio Sync для компьютера превращает ваш обычный бытовой компьютер в сервер для хранения данных, а приложение может использоваться для доступа к файлам. Функционал приложения похож на Google Диск или Dropbox, за исключением того, что вы знаете, где хранятся ваши файлы. Это отлично подходит для важных данных и тех, кто не доверяет онлайновому облачному хранилищу, но все же хочет иметь возможность им пользоваться. Приложение очень легко в настройке, даже для новичков, а также совершенно бесплатно. Это одно из самых недооцененных приложений для безопасности.

Signal Private Messenger, Telegram или WhatsApp

На Android существует множество приложений, поддерживающих защищенный обмен сообщениями. Signal Private Messenger, Telegram или WhatsApp — станут отличным выбором. Каждый и этих мессенджеров поддерживает сквозное шифрование сообщения, видеовызовы, групповые сообщения и общий доступ к файлам. Они немного отличаются набором функций, но на ваш выбор скорее всего повлияет то, каким из этих приложений пользуются ваши друзья и собеседники. Они все бесплатны, так что по крайней мере вам не придется беспокоиться об этом.

Мы бы советовали вам опробовать Signal Private Messenger, который использует систему поиска контактов с помощью номера телефона, а если у ваших друзей нет Signal Private Messenger, то они просто будут получать от вас обычные SMS. Приложение можно считать одним из самых безопасных, ведь каждое сообщение, входящее или исходящее, имеет свой код шифрования, который не раскрывается до самого получения, предотвращая любые попытки перехвата. Для того, чтобы полностью обезопасить себя, приложение должно быть установлено у обоих собеседников, но Signal Private Messenger также очень хорошо работает и как автономное приложение для SMS.

Проект Tor (три приложения)

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

На данный момент проект Tor предоставляет доступ к Orfox — браузеру Tor на Android (который все еще в бета версии), и Orbot — прокси-приложению, которое позволяет другим приложениям использовать технологию Tor, чтобы оставаться анонимным. Браузер все еще находится в разработке, и анонимность не может быть гарантирована, но Orbot определенно заслуживает внимания.

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

TunnelBear VPN

Цена: бесплатно / $ 7.99 в месяц / $ 49.99 в год

Список приложений безопасности не будет полным без сервисов VPN, и мы выбрали TunnelBear. Его простота использования и доступность делают его отличным выбором для новичков, поскольку мы предполагаем, что эксперты, вероятно, найдут более элегантное VPN-решение. TunnelBear позволяет вам использовать VPN в различных странах, и эффективно скрывать ваш IP-адрес от используемых сайтов. VPN также позволяет использовать общественный WiFi с большей безопасностью. Бесплатная версия предоставляет 500 Мб бесплатного трафика каждый месяц. Вы также можете получить неограниченное количество данных за 6,99 долл. США в месяц или 49,99 долл. США в год. Это, конечно, один из многих VPN сервисов, и в ближайшее время мы расскажем вам о других вариантах!

BlackBerry Privacy Shade


Цена: бесплатно

Недавно BlackBerry выпустила приложение для обеспечения конфиденциальности BlackBerry Privacy Shade. Это Android приложение имеет очень простую концепцию, но чрезвычайно практично. Оно функционирует именно так, как предполагает его название и позволяет управлять тем, какой контент отображается на экране вашего смартфона.

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

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

Чтобы обеспечить быстрый доступ к приложению, BlackBerry добавила его в быстрые настройки в Android Nougat, а если вы используете устройство BlackBerry с дополнительной программируемой клавишей, вы можете назначить запуск BlackBerry Privacy Shade с ее помощью. Если вы хотите опробовать Privacy Shade, то приложение уже доступно в Google Play.

Если вы выбрали один из смартфонов BlackBerry на базе Android — BlackBerry PRIV, DTEK50 или DTEK60, то кроме пакета приложений BlackBerry Hub+ для повышения производительности, на них предустановлены приложения BlackBerry для безопасности пользователя: DTEK для мониторинга активности приложений и Менеджер паролей BlackBerry:

Не пропустите наши обзоры лучших приложений для смартфонов BlackBerry на базе Android:

ВАЖНО Как реверсить приложения для Андроид. Приватка.

Кто просматривает этот контент: «Тема» (Всего пользователей: 0; Гостей: 1)

X-Shar

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

Условно все инструменты анализа и реверса приложений (не только для Android) можно разделить на две группы:

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

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

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

Декомпилятор нужен, чтобы перегнать байт-код Dalvik обратно в код Java и с его помощью разобраться, как работает приложение. Дизассемблер транслирует байт-код в гораздо более низкоуровневый код Smali (местный ассемблер), в котором труднее разобраться, но зато он всегда корректен настолько, что его можно собрать обратно в приложение. Этой особенностью можно воспользоваться, например, чтобы внедрить в приложение собственный код, как мы это сделали во второй части статьи о взломе приложений для Android.

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

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

Jadx может работать и в режиме командной строки. Например, следующая команда декомпилирует приложение example.apk и поместит полученный код Java в каталог out:

$ jadx -d out example.apk

Более того, Jadx может дополнительно сгенерировать файлы build.gradle, чтобы исходники можно было импортировать в Android Studio:

$ jadx -e -d out example.apk

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

Второй инструмент, который должен обязательно быть на твоем диске, — это Apktool.

Его назначение — разборка и сборка приложений. При этом термин «разборка» подразумевает дизассемблирование кода приложения в файлы формата Smali, а также декомпрессию ресурсов и файла AndroidManifest.xml.

С помощью Apktool можно разобрать приложение, проанализировать дизассемблерный код, внести в него правки и собрать обратно. О том, как это сделать, мы подробно писали в статье «Ломаем Android».

Разбираем приложение с помощью Apktool

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

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

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

Например:

  • anti_debug : Debug.isDebuggerConnected() check — проверка, подключен ли дебаггер с помощью метода isDebuggerConnected;
  • anti_vm : Build.MANUFACTURER check — проверка производителя смартфона, чтобы понять, что находишься в виртуальной машине.

Но есть одно неочевидное поле: compiler. Оно обычно содержит dx или dexlib. Dx — стандартный компилятор Android SDK, а dexlib — это библиотека сборки файлов DEX из Apktool.

Проще говоря, если в поле compiler находится dexlib, значит, приложение было пересобрано с помощью Apktool или аналогичного инструмента.

Результат работы APKiD для нескольких образцов малвари

Что, если APKiD сообщает о применении обфускатора, а при попытке изучить код ты сталкиваешься с зашифрованными строками?

В этом случае тебе нужен деобфускатор, который сможет сделать код более читаемым.

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

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

Из-за особенностей реализации виртуальной машины Simplify редко способен проанализировать все приложение целиком. Поэтому его стоит использовать для деобфускации отдельных методов и классов (это можно сделать с помощью флага -it):

$ java -jar simplify.jar -it ‘org/cf/obfuscated’ simplify/obfuscated-app.apk

До и после обработки Simplify

Simplify поможет, если приложение было пропущено через мощный обфускатор.

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


Единственное, чем он запутывает реверсера, — это измененные на бессмысленный набор букв имена классов, методов и полей.

Разобраться в обфусцированном с помощью ProGuard коде не так уж и сложно, но сложнее, чем в совсем не обфусцированном (в два раза сложнее, если верить исследованиям). Поэтому даже для ProGuard существуют деобфускаторы.

DeGuard — наиболее интересный из них. Это веб-сервис, созданный в Высшей технической школе Цюриха. С помощью нейросетей он способен восстановить (а точнее, предсказать) оригинальные имена пакетов, классов, методов и полей.

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

Пример деобфускации с помощью DeGuard

А это решение класса «все в одном». Bytecode Viewer сочетает в себе функции Jadx, Apktool и еще нескольких инструментов.

Он умеет дизассемблировать приложения, декомпилировать их с помощью пяти различных движков декомпиляции (JD-Core, Procyon, CFR, Fernflower, Krakatau), расшифровывать строки с помощью трех движков дешифрования, компилировать приложение обратно из декомпилированного кода (с помощью Ranino Compiler) и даже искать зловредный код!

Многие реверсеры рекомендуют использовать именно этот инструмент для анализа приложений. Их аргумент в том, что любой другой декомпилятор (тот же Jadx или популярный JD-GUI) может сломаться об обфусцированный или специальным образом написанный код и просто не покажет его. В то же время Bytecode Viewer, благодаря наличию сразу пяти движков декомпиляции, имеет больше шансов декомпилировать такое приложение.

На самом же деле не все так радужно. Bytecode Viewer — это кое-как работающая сборная солянка из различных открытых инструментов. Да, в нем множество движков декомпиляции, но, похоже, автор перестал следить за своим произведением. Текущая версия Bytecode Viewer уже не может открыть большинство APK.

Скриншота не будет по причине неработоспособности инструмента.

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

Пользоваться QARK очень просто: запускаешь QarkMain.py, отвечаешь на несколько вопросов и получаешь отчет в формате HTML в каталоге quark/report.

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

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

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

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

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

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

В «Хакере» уже была подробная статья о Frida, поэтому не будем повторяться. Скажем только, что у Frida есть репозиторий с готовыми скриптами, которые могут тебе пригодиться:

  • fridantiroot — комплексный скрипт, позволяющий отключить проверки на root;
  • Universal Android SSL Pinning Bypass — обход SSL Pinning;
  • dereflector — скрипт Frida для дерефлексии Java-кода (превращения непрямых вызовов методов в прямые).

$ frida —codeshare pcipolloni/universal-android-ssl-pinning-bypass-with-frida -f com.example.app

Трассировка Telegram с помощью Frida

Frida — очень популярный инструмент. На его основе было создано множество более высокоуровневых утилит. Objection — одна из них. Она позволяет внедриться в приложение iOS или Android и провести анализ его приватного каталога, памяти, классов, методов, извлечь содержимое базы SQLite, обойти SSL-пиннинг.

Главное преимущество Objection в том, что она дает возможность «войти» в приватный каталог приложения точно так же, как это позволяет сделать устройство с root-доступом.

Но в этом же ее недостаток: большинство задач, для которых предназначена Objection, легко решаются с помощью adb, команды sqlite (при наличии root) и общедоступных скриптов Frida.

Inspeckage — еще один высокоуровневый инструмент динамического анализа приложений.

У него огромное количество возможностей: он может получать информацию о полномочиях, активностях, контент-провайдерах и сервисах, умеет перехватывать обращения к SQLite, HTTP-серверам, файловой системе, буферу обмена, криптографическим функциям, запускать активности, подключаться к ContentProvider’aм и выполнять спуфинг местоположения.

Все это можно сделать, используя удобный веб-интерфейс. Но перед этим на смартфоне необходимо получить права root, а затем установить Xposed Framework (который как раз и позволяет Inspeckage выполнять перехват управления).

Главный экран Inspeckage

На закуску у нас drozer — мощный инструмент для выполнения типичных задач пентеста приложений.

Drozer позволяет получить информацию о приложении, запустить его активности, подключиться к ContentProvider’у, отправить сообщения сервису — в общем, сделать все, чтобы вытащить из приложения информацию или заставить его выполнить то, что нам нужно.

Типичный воркфлоу drozer выглядит так. Сначала получаем информацию о приложении:

dz> run app.package.list
dz> run app.package.info -a com.example.app

Затем выводим список активностей и пробуем запустить их (возможно, некоторые из них не должны торчать наружу):

dz> run app.activity.info -a com.example.app
dz> run app.activity.start —component com.example.app

Получаем информацию о ContentProvider’ах приложения:

dz> run app.provider.info -a com.example.app
dz> run scanner.provider.finduris -a com.example.app

Пробуем выудить из них информацию разными способами. Например, при помощи прямого запроса данных:

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Password/ —vertical

Проверяем на наличие уязвимостей к инъекции и directory traversal:

dz> run scanner.provider.injection -a com.example.app
dz> run scanner.provider.traversal -a com.example.app

Получаем информацию о сервисах, пробуем запустить их, послать сообщения:

dz> run app.service.info -a com.example.app
dz> run app.service.start —action —component com.example.app
dz> run app.service.send com.example.app —msg

Просмотр информации о приложении с помощью drozer

Одной строкой

  • Androl4b — образ виртуальной машины с набором перечисленных в статье инструментов;
  • Andro >Вместо выводов

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

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

Подборка Android приложений от 26.10.2020


Если внутри архива вы найдете OBB файлы их надо копировать в sdcard\Android\obb.

[spoiler=Что получим в архиве:]
LP — означает Lucky Patcher
GP означает Patched Google Play
UP означает Uret Patcher
JP означает Jasi Patcher.

Список программ:
[spoiler]2ndLine — Second Phone Number v6.46.0.2 [Premium]
Accupedo — Pro Pedometer — Step Counter v8.5.5.G [Paid]
ACMarket v4.6.8 [Mod]
AlpineQuest GPS Hiking v2.2.3 build 223 [Paid]
Anti Spy & Spyware Scanner v1.0.3 [Pro]
Ariela Pro — Home Assistant Client v1.3.6.8 [Paid]
Artista Impresso v1.3.43 [Paid]

**** ПРИМЕЧАНИЕ **** Мобильные клиенты ** НЕ ** используются для IPT, но хорошо работают на общедоступных трекерах.

aTorrent — торрент-загрузчик v3071 [Pro]

**** НЕТ **** Мобильные торрент-приложения разрешены из-за проблем безопасности и плохой статистики. Тебя могут забанить.

Добавить комментарий