Приложение 1. Описание модулей для сбора информации
Система включает более двадцати модулей для сканирования и сбора информации о приложении. Каждый модуль отвечает за сбор «своей» информации. Список всех модулей представлен на вкладке Модули страницы Профиль. Из списка можно выбрать и настроить модули, которые будут включены при сканировании приложения с данным профилем.
Чтобы применить измененные настройки модуля, необходимо нажать кнопку Изменить внизу блока настроек. У модулей, которые не имеют настроек, кнопка Изменить отсутствует.
Примечание
Для функционирования некоторых модулей достаточно статических данных и установка/запуск приложения для сбора информации о его работе не обязательны. Для обозначения таких модулей используется метка «Использование данного модуля не требует запуска приложения». Например, см. описание модуля «Поиск чувствительной информации по энтропии».
Описание модулей приведено ниже.
Активные проверки
Данный модуль рассматривает приложение как «черный ящик», определяя компоненты, с которыми может взаимодействовать внешнее приложение или пользователь (например, экспортированные Content Provider, Activity, AppLink/DeepLink и другие). Определив входные точки, модуль начинает проводить их проверку, отправляя специально сформированные запросы и анализируя реакцию.
Данный модуль может как определять уязвимости самостоятельно, исходя из реакции приложения, так и дополнять данные для модуля IAST, позволяя ему собирать больше информации о работе приложения.
Базы данных
Модуль предназначен для сбора и анализа баз данных (включая зашифрованные), которые используются в приложении.
Этот модуль зависит от модуля Файлы приложения и анализирует данные, полученные в процессе работы последнего. Если модуль Файлы приложения выключен, включить модуль Базы данных невозможно.
Для более детального анализа приложения модулем Базы данных желательно также включить модуль Используемые файлы.
Настройки Поиск по внутренней директории и Поиск на SD карте позволяют выбрать хранилище, в котором будет производиться сбор баз данных и выполняться их анализ.
Файлы приложения
Модуль предназначен для сбора и анализа файлов, которые приложение при работе сохраняет в своей директории (во внутреннем или внешнем хранилище).
Настройки модуля позволяют исключить из поиска отдельные файлы и директории. Кроме этого, предусмотрена возможность исключения директорий и файлов только из первичного анализа. Информация в таких файлах и директориях будет только собираться, но не анализироваться данным модулем, однако она будет доступна для анализа другими модулями.
Для архитектуры Android c помощью настроек Поиск по внутренней директории и Поиск на SD карте можно выбрать хранилище, в котором будет производиться сбор файлов и выполняться их анализ.
Примечание
Для архитектуры iOS данные настройки не предусмотрены.
Исключенные файлы
В настройках модуля можно добавлять файлы в исключения. Для таких файлов анализ проводиться не будет. По умолчанию в исключения уже добавлены несколько шаблонных строк.
Для добавления в исключения файлов необходимо нажать кнопку Добавить справа от заголовка Исключенные файлы, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Файлы можно исключать из анализа, указывая их имена и/или директории (допускается использование символа «*»):
- /data/data/out.test.app/shared_prefs/common.xml — исключить файл common.xml в директории shared_prefs;
- *.xml — исключить все xml-файлы;
- /data/data/out.test.app/shared_prefs/*.xml — исключить все xml-файлы в директории shared_prefs.
Поле Значение настройки Исключенные файлы не зависит от регистра — строки *.MKV
и *.mkv
равнозначны.
Для удаления исключения из списка необходимо в настройке Исключенные файлы справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Исключенные директории
Аналогичным образом, чтобы добавить в исключения директорию, необходимо нажать кнопку Добавить справа от заголовка Исключенные директории, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Директории можно исключать из анализа, указывая их имена (допускается использование символа «*»):
- /data/data/out.test.app/files — исключить все файлы в директории files. При этом файлы в поддиректории /data/data/out.test.app/files/temp исключены не будут;
- /data/data/out.test.app/files/* — исключить все файлы в директории files и всех ее поддиректориях.
Кроме того, для уникальных имен директорий можно использовать короткую строку */files/* — она равнозначна значению, указанному в примере выше.
Поле Значение настройки Исключенные директории не зависит от регистра — строки /data/data/out.test.app/files
и /dAtA/DaTa/out.test.APP/files
равнозначны.
Для удаления директории из списка исключений необходимо в настройке Исключенные директории справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Мониторинг логов приложения
Модуль предназначен для мониторинга сообщений, которые приложение записывает в системный журнал.
В поле Тэг можно указать, по какому именно тэгу выполнять мониторинг сообщений (по умолчанию мониторинг выполняется по всем тегам).
Уровень критичности сообщений можно выбрать из раскрывающегося списка поля Уровень.
Источник сообщений можно выбрать из раскрывающегося списка поля Источник.
Поиск чувствительной информации по энтропии
Модуль предназначен для поиска чувствительной информации по энтропии.
Модуль зависит от модулей Файлы приложений, Мониторинг логов приложения и SAST — если все перечисленные модули отключены, то энтропийный анализ будет недоступен.
Использование данного модуля не требует запуска приложения.
Можно выбрать или исключить данные, собранные ранее модулями SAST, Мониторинг логов приложения и Файлы приложений, с помощью настроек в разделе Модули, в результатах которых будет выполняться поиск. Из данных выбранных модулей, согласно настройкам (исключения файлов, директорий и т. д.) извлекаются все строки, каждая из них разбивается на слова и для каждого слова вычисляется энтропия Шеннона. Если значение вычисленной энтропии выше, чем указанное в настройках, строка отмечается, как потенциально содержащая чувствительную информацию.
Поля Минимальная длина найденной информации и Максимальная длина найденной информации позволяют задать диапазон длины строки, которая будет попадать в анализ на энтропию.
Также задается Максимальный размер файлов, в которых будет осуществляться анализ строк, и порог срабатывания в поле Предел.
Примечание
Значения длины информации, размера файла и порога срабатывания либо можно задать стрелками, появляющимися при наведении курсора на соответствующее поле, либо ввести с помощью клавиатуры.
Кроме этого, используя поля Исключенные строки, Исключенные директории и Исключенные файлы, можно исключить из поиска соответствующие элементы.
Примечание
В данных полях поддерживается использование регулярных выражений.
Исключенные строки
В настройках модуля можно добавлять в исключения символьные строки, не являющиеся чувствительной информацией. Таким образом, они не будут включены в результаты анализа.
Для добавления в исключения символьных строк необходимо нажать кнопку Добавить справа от заголовка Исключенные строки, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Исключенные директории
Аналогичным образом, чтобы добавить в исключения директорию, необходимо нажать кнопку Добавить справа от заголовка Исключенные директории, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Директории можно исключать из анализа, указывая их имена (допускается использование символа «*»):
- /data/data/out.test.app/files — исключить все файлы в директории files. При этом файлы в поддиректории /data/data/out.test.app/files/temp исключены не будут;
- /data/data/out.test.app/files/* — исключить все файлы в директории files и всех ее поддиректориях.
Кроме того, для уникальных имен директорий можно использовать короткую строку */files/* — она равнозначна значению, указанному в примере выше.
Поле Значение настройки Исключенные директории не зависит от регистра — строки /data/data/out.test.app/files
и /dAtA/DaTa/out.test.APP/files
равнозначны.
Для удаления директории из списка исключений необходимо в настройке Исключенные директории справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Исключенные файлы
В настройках модуля можно добавлять в исключения файлы. Для таких файлов анализ проводиться не будет. По умолчанию в исключения уже добавлены несколько шаблонных строк.
Для добавления в исключения файлов необходимо нажать кнопку Добавить справа от заголовка Исключенные файлы, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Файлы можно исключать из анализа, указывая их имена и/или директории (допускается использование символа «*»):
- /data/data/out.test.app/shared_prefs/common.xml — исключить файл common.xml в директории shared_prefs;
- *.xml — исключить все xml-файлы;
- /data/data/out.test.app/shared_prefs/*.xml — исключить все xml-файлы в директории shared_prefs.
Поле Значение настройки Исключенные файлы не зависит от регистра — строки *.MKV
и *.mkv
равнозначны.
Для удаления исключения из списка необходимо в настройке Исключенные файлы справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Дамп памяти приложения
Модуль предназначен для получения и анализа дампа памяти приложения (heapdump).
После работы с приложением с устройства из соответствующего процесса выполняется получение его памяти в соответствующем формате. Этот файл анализируется, как текстовое представление. Он доступен для скачивания и впоследствии может быть загружен в профильные инструменты по работе с подобными файлами (профилировщики памяти) в ручном режиме.
Данный модуль позволяет отслеживать хранение различной чувствительной информации в памяти дольше, чем это необходимо. Примером таких данных могут быть пароли, ключи шифрования, сессионные идентификаторы и т. д.
Информация о ключах
Модуль предназначен для анализа безопасности хранилищ, в которых сохраняются ключи шифрования.
Модуль зависит от модулей Файлы приложений, SAST и Используемые файлы — если все перечисленные модули отключены, то анализ информации о ключах будет недоступен.
Для Android-приложений с помощью настроек Поиск по внутренней директории и Поиск на SD карте можно выбрать хранилище, для которого будет выполняться анализ безопасности.
Во время анализа все файлы приложения и файлы из ресурсов (в зависимости от настроек) проходят проверку, являются ли они хранилищем ключей и хранилищем какого именно типа (bks, jks, ssh и т. д.). Также проводится анализ содержимого данных хранилищ. В случае обнаружения внутри хранилища зашифрованных данных, а также, если сам контейнер с ключами защищен паролем, проводится попытка подбора пароля из списка наиболее распространенных. В случае успеха в результирующий дефект выводится информация о пароле хранилища и его содержимом.
Уровень критичности результирующего дефекта определяется тем, что именно находится в хранилище (приватные или публичные ключи, сертификаты и т. д.) и где оно расположено (это определяет, имеют ли к нему доступ другие приложения/пользователи).
Отслеживание Activity
Модуль предназначен для мониторинга Activity, которые запускаются во время работы приложения. Помимо отслеживания факта запуска Activity, модуль также сохраняет и анализирует Intent и его содержимое.
В качестве результата работы модуля представлен полный Intent, с которым была вызвана данная Activity, и все содержимое Intent, включая дополнительные параметры, extras и т. д.
На основе этой информации осуществляется анализ того, что и каким образом передает приложение как внутри себя, так и во внешние Activity.
Отслеживание Broadcast Receiver
Модуль предназначен для мониторинга использования и регистрации BroadcastReceiver во время работы приложения. Помимо отслеживания факта использования BroadcastReceiver, модуль также сохраняет и анализирует используемый Intent и его содержимое.
В качестве результата работы модуля представлен полный Intent, который принимает в себя зарегистрированный в приложении Receiver, и все содержимое Intent, включая дополнительные параметры, extras и т. д. Отслеживаются как статические, так и динамические Broadcast Receivers.
На основе этой информации осуществляется анализ того, что и каким образом получает приложение как внутри себя, так и от сторонних компонентов.
Отслеживание Broadcast Sender
Модуль предназначен для мониторинга Broadcast сообщений, которые обрабатываются в приложении.
В качестве результата работы модуля представлен полный Intent, который отправляет зарегистрированный в приложении Sender, и все содержимое Intent, включая дополнительные параметры, extras и т. д.
На основе этой информации осуществляется анализ того, что и каким образом отправляет приложение как внутри себя, так и в сторонние компоненты.
Проверка криптографии
Модуль предназначен для проверки криптографии. Позволяет обнаружить несколько уязвимостей, связанных с криптографией.
Отслеживание Intent
Модуль предназначен для мониторинга Intent, которые используются и обрабатываются во время работы приложения.
Данный модуль зависит от модулей Отслеживание Activity, Отслеживание Broadcast Receiver, Отслеживание Broadcast Sender и Отслеживание Services — если все перечисленные модули отключены, отслеживание Intent недоступно.
Результаты работы модуля представляют собой консолидированный список всех Intent, которые принимает или обрабатывает приложение в рамках межпроцессного взаимодействия (IPC). Результаты являются суммой Intent из модулей, указанных в настройках модуля.
Отслеживание Services
Модуль предназначен для мониторинга операций с Services, которые запускает или использует приложение во время работы.
В качестве результата работы модуля представлен полный Intent, с которым были вызваны любые сервисы как внутри, так и из сторонних приложений, и все содержимое Intent, включая дополнительные параметры, extras и т. д.
На основе этой информации осуществляется анализ того, что и каким образом передает или получает приложение при взаимодействии с сервисами.
Работа с Shared Preferences
Модуль предназначен для мониторинга операций, связанных с изменением содержимого Shared Preferences.
Результаты данного модуля частично пересекаются с результатами модуля Содержимое Shared Preferences, но в данном случае происходит отслеживание работы в динамике. То есть с их помощью можно определить, что и в какой момент записывало или считывало приложение в/из Shared Preferences. Это бывает полезно для анализа качества очистки внутренней директории приложения после logout пользователя или для мониторинга того, какие чувствительные данные и какое время находились на устройстве.
Сетевая активность
Модуль предназначен для перехвата и анализа сетевого взаимодействия приложения с сервером. Позволяет перехватывать HTTP-трафик, HTTPS-трафик, а также трафик веб-сокетов и искать в них уязвимости.
Предусмотрена возможность отключения SSL Pinning при запуске приложения с помощью настройки Отключение SSL Pinning (выбрана по умолчанию).
Если настройка не выбрана, отключение SSL Pinning не производится. При этом, если трафик приложения по-прежнему виден, создается дефект «Отсутствие или некорректная реализация SSL Pinning». Видимость трафика при выключенном значении означает, что приложение не проверяет сертификат сервера или чрезмерно доверяет системным сертификатам на устройстве.
Если настройка выбрана, осуществляются попытки автоматического отключения SSL Pinning при помощи переопределения методов, отвечающих за проверку сертификата пользователя. При этом, если трафик приложения перехватывается, то дефект не выводится, так как это намеренное изменение логики работы приложения.
Примечание
Если даже при включенном значении настройки приложение работает некорректно и нет связи с сервером, это означает, что SSL Pinning осуществлен качественно и в автоматическом режиме не отключается.
Для корректной работы приложения в таком случае рекомендуется отключение данного модуля или работа с приложением без пиннинга.
Кроме этого, предусмотрены:
- Возможность отключения протокола HTTP/2 с помощью опции Включение HTTP/2.
- Возможность отключать перехват сообщений в WebSocket с помощью опции Включение перехвата сообщений WebSocket.
- Возможность запрещения небезопасных соединений с помощью опции Включение SSL Insecure.
Исключенные домены
Исключения бывают необходимы, так как система использует принцип «прозрачного проксирования» и в результаты сканирования могут попадать сетевой трафик и данные от системных приложений Android.
Чтобы исключить какой-либо домен из анализа сетевого взаимодействия, необходимо нажать кнопку Добавить справа от заголовка Исключенные домены, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Настраиваемые заголовки запросов
Параметр Настраиваемые заголовки запросов позволяет добавить в сетевые запросы заголовок и задать его значение с помощью соответствующих полей.
Важно
Чтобы применить все вновь заданные настройки модуля, необходимо нажать кнопку Изменить внизу блока настроек.
Интеграция с Oversecured
Модуль предназначен для интеграции c системой статического анализа Oversecured.
Интеграция с AppScreener
Модуль предназначен для интеграции c системой статического анализа Solar AppScreener.
Обход проверок окружения
Модуль предназначен для обхода проверок окружения и их отслеживания. Он обходит проверки приложений на эмулятор и root/Jailbreak, а также отслеживает их. Если приложение не осуществляет проверок, добавляются дефекты «Отсутствие проверки на root-доступ» и/или «Отсутствие проверки на запуск на эмуляторе». Если приложение делает проверку только одного типа (например, ищет только файлы su или только подозрительные пакеты), добавляются дефекты «Недостаточная проверка на root-доступ» и/или «Недостаточная проверка на запуск на эмуляторе».
Если проверка на эмулятор и root осуществляется двумя и более способами, то дефект не добавляется.
Примечание
При проверке на запуск на эмуляторе модуль не может отследить, проверяет ли приложение статические поля Build.*. Необходимо иметь в виду, что для устранения дефекта «Недостаточная проверка на запуск на эмуляторе» необходимо реализовать три типа проверок (если один из типов — это проверка статических полей).
В модуле для Android можно активировать обход внешнего сервиса проверки окружения или отключить системный вызов kill()
. Одновременно активировать обе эти возможности нельзя.
Модуль для iOS предлагает широкий спектр настроек, определяющих подмены, сокрытия, обходы и т. д.
Примечание
Некоторые приложения могут использовать новые проверки, которые модуль не обходит. В таком случае рекомендуется обратиться в службу поддержки для изучения новых способов обхода и добавления их в данный модуль.
SAST
Модуль предназначен для статического анализа исходного кода приложения и содержимого сборки. Данный модуль для своей работы не требует установки и запуска приложения.
Обфускация
Если выбрана настройка Проверка обфускации (по умолчанию), будет выполнен анализ уровня обфускации приложения. По умолчанию минимальный уровень обфускации — 20%. Задать минимально допустимый уровень для приложения можно в поле Предел. Кроме того, в полях Максимальная длина имени и Минимальное количество цифр можно задать проверку длины и читаемости имен после обфускации соответственно.
Значения допустимого предела обфускации, длины имен и количества цифр можно задать стрелками, появляющимися при наведении на соответствующее поле, либо ввести с помощью клавиатуры.
Если выбрана настройка Декомпиляция (по умолчанию), будет выполнена попытка получения исходного кода приложения с дальнейшим анализом результатов декомпиляции. В зависимости от объема и сложности приложения, эта процедура может потребовать значительного времени и вычислительных ресурсов.
Примечание
Для архитектуры iOS настройки обфускации и декомпиляции не предусмотрены.
Исключенные директории
Чтобы добавить директорию в исключения, необходимо нажать кнопку Добавить справа от заголовка Исключенные директории, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Директории можно исключать из анализа, указывая их имена (допускается использование символа «*»):
- /data/data/out.test.app/files — исключить все файлы в директории files. При этом файлы в поддиректории /data/data/out.test.app/files/temp исключены не будут;
- /data/data/out.test.app/files/* — исключить все файлы в директории files и всех ее поддиректориях.
Кроме того, для уникальных имен директорий можно использовать короткую строку */files/* — она равнозначна значению, указанному в примере выше.
Поле Значение настройки Исключенные директории не зависит от регистра — строки /data/data/out.test.app/files
и /dAtA/DaTa/out.test.APP/files
равнозначны.
Для удаления директории из списка исключений необходимо в настройке Исключенные директории справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Расширения файлов
Для добавления в исключения файлов по расширению необходимо нажать кнопку Добавить справа от заголовка Расширения файлов, ввести необходимое расширение (например, wav
— без кавычек или других символов) в появившемся поле Значение, а затем нажать кнопку Добавить.
Поле Значение настройки Расширения файлов не зависит от регистра — строки MKV
и mkv
равнозначны.
Для удаления исключения из настройки Расширения файлов необходимо справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Исключенные файлы
Для архитектуры iOS также имеется настройка, позволяющая непосредственно указать файлы, которые необходимо исключить из анализа модулем. По умолчанию в исключения уже добавлены iTunesMetadata.plist и несколько других файлов.
Для добавления в исключения файлов необходимо нажать кнопку Добавить справа от заголовка Исключенные файлы, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Файлы можно исключать из анализа, указывая их имена и расширения.
Поле Значение настройки Исключенные файлы не зависит от регистра — строки Сommon.XML
и common.xml
равнозначны.
Для удаления исключения из списка необходимо в настройке Исключенные файлы справа от удаляемой строки нажать кнопку Удалить, а затем подтвердить действие в появившемся диалоговом окне.
Примечание
Для архитектуры Android возможность исключения файлов по имени не предусмотрена.
Поиск ранее найденной чувствительной информации
Модуль позволяет проверить отсутствие найденной одним из модулей чувствительной информации в данных других модулей.
Для архитектуры Android данный модуль основывается на результатах работы модулей Файлы приложения, Мониторинг логов приложения, Дамп памяти приложения, Информация о ключах, Отслеживание Activity, Отслеживание Broadcast Sender, Отслеживание Services, Работа с Shared Preferences, Сетевая активность, SAST и Используемые файлы. В них же выполняется поиск ранее найденной чувствительной информации. Если все перечисленные выше модули отключены, модуль Поиск ранее найденной чувствительной информации будет недоступен.
Для архитектуры iOS данный модуль основывается на результатах работы модулей Дамп архива приложения, Файлы приложения, Мониторинг логов приложения, Информация о ключах и SAST.
Настройка Поиск производных от найденной информации позволяет провести более тщательный анализ данных для обнаружения чувствительной информации, которая была некачественно «скрыта». В качестве производных будут взяты хэш-суммы md5, sha1, sha256, sha512 и значение base64. Все эти производные вместе с исходным значением будут искаться во всех собранных данных приложения. Такой подход хорошо работает, если при аутентификации на сервере мы получили сессионный идентификатор и он, например, по ошибке попал в системный журнал или был закэширован на файловой системе. Другой частый случай — это сохранение хэш-значения чувствительной информации (например, md5 от пароля пользователя) в файлах приложения.
В настройках можно исключить модули, в собранных данных которых не должен выполняться поиск ранее найденной информации.
Чтобы задать минимальную длину информации, которую модуль будет считать чувствительной, необходимо в поле Минимальная длина найденной информации задать нужное значение (по умолчанию — 3). Значение можно задать стрелками, появляющимися при наведении на поле, либо ввести с помощью клавиатуры.
Список исключений
В настройках модуля можно добавлять в исключения символьные строки, не являющиеся чувствительной информацией. Таким образом, они не будут включены в результаты анализа.
Для добавления в исключения символьных строк необходимо нажать кнопку Добавить справа от заголовка Список исключений, ввести необходимую строку в появившемся поле Значение, а затем нажать кнопку Добавить.
Содержимое SharedPreferences
Модуль предоставляет информацию о содержимом SharedPrefences на момент окончания сканирования.
Данный модуль зависит от модуля Файлы приложения, так как является производным от него. Точнее говоря, из файлов приложения отбираются файлы, относящиеся к Shared Preferences, и выводятся в качестве результатов работы отдельного модуля для удобства просмотра и навигации.
Работа с SQLite
Модуль предназначен для отслеживания запросов к базам данных. Обрабатываются как запросы, так и полученные результаты.
В рамках работы данного модуля также отслеживается создание и открытие зашифрованных баз данных при помощи библиотеки SQLCipher. При перехвате данных функций определяется используемый для шифрования пароль, который в дальнейшем анализируется на стойкость и проводится его поиск по данным других модулей для избежания хранения в открытом виде.
Данный модуль тесно связан с модулем Базы Данных, но предоставляет данные в динамике, благодаря чему можно отслеживать появление
Мониторинг логов системы
Модуль для мониторинга сообщений, который записывает система.
IAST модуль
Модуль реализует IAST анализ, основанный на построении графа вызовов методов, которые используются в построении классического tainted flow, но в динамике.
Данный модуль определяет все потенциальные точки входа в приложение, в которые могут попасть контролируемые пользователем данные, и проводит отслеживание этих данных во время работы приложения. То есть модуль отслеживает, как именно эти данные в дальнейшем используются и куда попадают. В случае попадания этих данных в потенциально опасные точки выхода из приложения (обращение к файловой системе, открытие URL в WebView, попадание данных в запрос к базе данных и т. д.), выдается соответствующий этим точкам выхода дефект. К примеру, если данные поступили от AppLink/DeepLink в одном из параметров и в дальнейшем попали в метод открытия WebView, то будет заведен дефект «Возможность открытия произвольного URL в WebView». Аналогично проводится дополнительная валидация потенциальных уязвимостей.
В рамках работы данного модуля предусмотрен механизм автоматического вызова различных экспортируемых (доступных для других пользователей и приложений компонентов и методов) данных для уточнения анализа и улучшения покрытия вне зависимости от действий пользователя в приложении во время сканирования.
В результате выявления дефекта показан полный flow (путь) данных от точки входа в приложение до точки выхода. Несмотря на то, что это динамика, модуль позволяет определить, где именно в декомпилированном коде была вызвана указанная в деталях дефекта функция, что позволяет построить путь движения данных не только в динамике, но и по коду приложения.
Поиск секретов сторонних сервисов
Модуль предназначен для поиска секретов сторонних сервисов. Его работа зависит от следующих модулей:
- Файлы приложения.
- Мониторинг логов приложения.
- SAST.
- Используемые файлы.
Для работы данного модуля запуск приложения не требуется.
В настройках модуля можно отключить поиск токенов тех или иных сторонних сервисов.
Для JWT может быть установлен срок валидности, при превышении которого уровень критичности соответствующего дефекта повышается.
Используемые файлы
Модуль предназначен для сбора и анализа файлов, которые приложение использует во время работы. Это могут быть как файлы внутри директории приложения, так и любые другие файлы в системе.
Данный модуль зависит от модуля Файлы приложения, так как является производным от него.
При этом данный модуль отслеживает любые обращения к файлам в системе, даже если их фактически нет. В процессе проверки наличия на устройстве root-доступа могут быть вызваны функции проверки файла в определенных директориях или попытка записи вне директории приложения. Такие методы также отслеживаются и логируются.
В результатах сканирования можно просмотреть содержимое файлов, к которым обращалось приложение во время работы, для отслеживания хранения в них различной чувствительной информации.
Дамп архива приложения
Модуль предназначен для анализа содержимого архива приложения. Он позволяет скачать из дампа памяти на устройстве расшифрованный бинарный файл для поиска в нем чувствительной информации. Для данного модуля может быть задана минимальная длина найденной информации, которая будет подвергаться анализу.
Проверка возможности использования пользовательских клавиатур
Модуль предназначен для анализа приложения на возможность использования пользовательских клавиатур, которые заменяют собой системные.
Использование сторонних клавиатур и делегация им полного доступа (а это необходимо для корректной работы) позволяет устанавливать интернет-соединения и получать доступ к другим системным ресурсам, что может повлечь за собой утечку данных пользователей.
Анализ KeyChain
Модуль предназначен для получения данных из KeyChain и анализа их содержимого на предмет хранения чувствительной информации в открытом виде или некорректных настроек при сохранении. Выполняется на этапе анализа (после работы с приложением).
Для работы модуля требуется запуск приложения на устройстве.
Анализ компонент с открытым исходным кодом
Анализ компонент с открытым исходным кодом - модуль автоматизированного SCA-анализа, или анализа состава приложения с целью нахождения фрагментов с открытым исходным кодом (OSS, Open Source Software) и их дальнейшей проверки.
Данный модуль предоставляет возможность определить подверженность приложения атаке на цепочку поставок под названием MavenGate. Модуль определяет, есть ли среди используемых библиотек потенциально опасные, домен для которых свободен или был куплен, начиная с января 2024 года.
Для работы модулю необходимо предоставить SBOM-файл (см. раздел «Запуск сканирования»), сгенерированный при помощи инструмента CycloneDX. Если файл не загружен, во время сканирования модуль запускаться не будет.
Модуль содержит список исключенных из анализа доменов и предоставляет возможность управлять им путем добавления или удаления доменов.
Позже, данный модуль будет работать для определения уязвимостей в OpenSource-компонентах из SBOM-файла, помогая не допустить проблем в используемых библиотеках.