Основные понятия
Проект (Project) — верхнеуровневая сущность, внутри которой определяются настройки и профили сканирования для конкретного приложения. Каждый проект однозначно связывается со сканируемым приложением (пакетом) либо на этапе создания, либо при первом сканировании. На уровне проекта могут быть переопределены правила сканирования, которые будут применяться только для этого проекта. Имя проекта уникально в рамках системы.
Профиль (Profile) — профиль сканирования, включающий в себя настройки каждого модуля, список проверяемых стандартов и требований информационной безопасности. Имя профиля уникально в рамках проекта, к которому он относится.
Модуль (Module) — компоненты для сбора различной информации во время сканирования приложения на устройстве (мониторинг системного журнала, использование файлов, операции с базой данных и т. д.). Каждый модуль имеет свои уникальные настройки и может быть зависимым от результатов других модулей.
Тест-кейсы (Test cases) — записанный сценарий работы пользователя с приложением. Включает в себя все действия пользователя (нажатия, передаваемый текст, любые взаимодействия с интерфейсом приложения и т. д.). Тест-кейс привязывается к конкретному проекту и может быть воспроизведен только в рамках него. Тест-кейс запускается только если имя приложения (package_id) при запуске совпадает с именем приложения, для которого был записан тест-кейс.
Сканирование — процесс анализа, во время которого пользователь вручную или система по записанным ранее тест-кейсам взаимодействуют с приложением. Во время сканирования система Стингрей собирает всю доступную информацию о работе приложения и затем проводит поиск уязвимостей и проверку на соответствие стандартам безопасности.
Метод сканирования/запуска — cпособ сканирования, определяющий, запускать ли записанный ранее тест-кейс или ожидать ручных операций с приложением. Возможные варианты:
- Автоматический — система запускает сканирование в автоматическом режиме с использованием записанного ранее тест-кейса или Appium-скрипта.
- Ручной — после запуска сканирования необходимо вручную совершать операции с запущенным приложением.
Имя пакета (Package name) — имя пакета сканируемого приложения.
Правила анализа (Rules) — правила анализа, по которым происходит поиск части уязвимостей. Правила представляют собой набор строк или регулярных выражений, которые необходимо искать в собранных данных. Для удобства добавления правил реализован конструктор, в котором необходимо указать, какую строку искать, в результатах каких модулей и в каких данных (XML-тэг, значение в JSON и т. д.).
Требования (Requirement) — требования информационной безопасности, на соответствие которым будет проверено приложение. С требованиями соотносятся определенные типы дефектов, при нахождении которых в приложении требование будет считаться не выполненным. Требования могут быть сгруппированы в виде категорий или относиться напрямую к стандартам.
Категория (Category) — группа требований информационной безопасности. Группировка требований может проводиться по различным признакам.
Стандарт (Standard) — совокупность требований или категорий требований информационной безопасности, на соответствие которым может проверяться приложение. Стандарты могут быть как общемировые, так и внутренние стандарты компании.
Дефекты (Defects) — выявленные во время сканирования дефекты приложения или, по-другому, уязвимости. У каждого дефекта есть тип, описание и рекомендации по устранению.
Собранные данные (Collected Data) — вся информация о работе приложения, собранная во время сканирования. Данные разделены по модулям, каждый из которых отвечает за сбор определенной информации. Эти данные так же можно скачать и проанализировать локально.
CI/CD (Continuous Integration / Continuous Delivery) — системы для непрерывной интеграции и непрерывных поставок приложения. Примерами таких систем могут быть Jenkins, Teamcity, GitLab CI.
Эмулятор (Emulator) — виртуальный эмулятор, имитирующий реальное устройство Android. Характеризуется архитектурой и различными версиями операционной системы.