Результаты сканирований
О работе с результатами сканирования в Стингрей рассказывает эксперт команды разработки Никита Пинаев.
Список результатов
При выборе пункта меню Сканы отображается список всех проведенных сканирований. Каждое сканирование представлено одной строкой. Данные о результатах сканирований автоматически обновляются каждые 10 секунд, что освобождает пользователя от необходимости обновлять страницу вручную.
В списке отображаются сканирования, отсортированные по ID. В таблице присутствует следующая информация:
- ID — внутренний идентификатор сканирования. При нажатии на ID сканирования происходит переход к детальным результатам выбранного сканирования.
- Проект — имя проекта, в рамках которого проводилось сканирование. Данное значение представлено в виде ссылки, нажав которую можно перейти в соответствующий проект.
- Профиль — профиль сканирования, с которым было проанализировано приложение. Данное значение представлено в виде ссылки, нажав которую можно перейти в соответствующий профиль сканирования.
- Имя пакета анализируемого приложения.
- Источник загрузки — способ загрузки сканируемого пакета: файл, название магазина приложений, системы дистрибуции или платформы разработки. Возможные значения: Файл, Google Play, App Store, Firebase, RuStore, App Center, AppGallery.
- Источник запуска — способ запуска сканирования: ручной или посредством функции мониторинга.
- Режим — режим сканирования: ручной, автоматический Стингрей или автоматический с использованием скриптов Appium.
- Архитектура — тип архитектуры, включая версию операционной системы (например, Android 11 или iOS 14).
-
Состояние — статус сканирования, может принимать несколько значений:
- Создан — сканирование создано и помещено в очередь сканирования.
- Запускается — сканирование запущено, идет процесс установки и запуска целевого приложения.
- Запущен — происходит процесс сканирования.
- Анализ — сканирование остановлено, осуществляется процесс анализа собранной информации.
- Успешно — сканирование завершилось без ошибок. Если сканирование в целом прошло успешно, но наблюдались сбои в работе отдельных модулей, рядом со статусом отображается значок . При наведении на него курсора появляется более подробная информация о сбоях.
- Неуспешно — сканирование завершено с ошибкой. Рядом со статусом отображается значок . При наведении на него курсора появляется более подробная информация об ошибке.
- Повторный анализ — был запущен и еще не завершился повторный анализ результатов сканирования.
- Ожидание повторного анализа — система получила запрос на повторный анализ результатов сканирования, но сам анализ еще не был запущен.
- Отменен — сканирование отменено с использованием расположенного справа раскрывающегося меню.
-
Изменен — время последнего изменения статуса сканирования.
Для отображения только необходимых результатов в колонках, отмеченных значком фильтра , предусмотрена установка фильтра. После установки фильтра в колонке цвет значка меняется на синий . При выборе нескольких фильтров они работают вместе, то есть при выборе режима Ручной и состояния Успешно будут найдены и отображены все успешно завершившиеся сканирования с ручным режимом запуска.
При выборе проекта путем установки фильтра в колонке Проект в колонке Профиль будут доступны для выбора только профили этого проекта, с которыми ранее уже проводилось сканирование.
Чтобы убрать установленный в одной колонке фильтр, нажмите на значок фильтра и выберите пункт Сбросить в выпадающем меню.
Чтобы убрать все установленные фильтры, нажмите на кнопку Сбросить, расположенную справа.
Примечание
Настройки фильтрации сохраняются при переходе на другие страницы системы и возвращении обратно на страницу Сканы.
Кроме этого, находясь на данной странице, можно:
- Открыть страницу с детальными результатами сканирования.
- Скачать отчет о сканировании в формате PDF или JSON, см. раздел «Отчет о сканировании».
- Скачать сканируемое приложение.
- Скачать логи сканирования.
- Инициировать повторный анализ.
- Удалить результаты сканирования.
Для выполнения перечисленных действий используйте соответствующие пункты расположенного справа раскрывающегося меню «».
Результаты сканирования
Чтобы перейти на страницу с детальными результатами сканирования, нажмите либо на строку нужного сканирования в таблице Сканы, либо на расположенное справа в строке сканирования раскрывающееся меню «» и выберите пункт Открыть. На открывшейся странице содержится вся информация по анализу приложения: общая информация, выявленные уязвимости, собранные за время работы приложения данные, соответствие стандартам и требованиям. Для выбора доступно несколько вкладок в зависимости от режима и результата сканирования: Дефекты, Собранные данные, Стандарты, Запись скана, Снимок экрана и Лог. Вкладка Запись скана доступна только у сканирований, проведенных системой в автоматическом режиме. Вкладка Снимок экрана доступна только у сканирований, закончившихся со статусом Неуспешно, причиной завершения которых стала невозможность запуска приложения на агенте. Вкладка Лог доступна только во время анализа результатов сканирования.
Общая информация
Общая информация приведена в верхней части страницы с детальными результатами сканирования. Она содержит сведения о проведенном сканировании и краткую информацию о проверенном приложении.
Здесь представлена следующая общая информация по сканированию:
- Проект, в рамках которого проводилось сканирование. Данное значение представлено в виде ссылки, нажав которую можно перейти в соответствующий проект.
- Профиль, в рамках которого проводилось сканирование. Данное значение представлено в виде ссылки, нажав которую можно перейти в соответствующий профиль сканирования.
- Тест-кейс — название используемого тест-кейса. Данное значение представлено в виде ссылки, нажав которую можно перейти на страницу соответствующего тест-кейса. Это поле присутствует только у сканирований, проведенных в автоматическом режиме.
- Архитектура — архитектура сканируемого приложения (Android или iOS) и версия операционной системы, на которой проводилось сканирование.
- Имя пакета — название пакета приложения в системе.
- Режим — режим сканирования: ручной, автоматический режим Стингрей или автоматический режим с использованием скриптов Appium.
- Состояние — статус проведенного сканирования.
- Создан — дата проведения ручного тест-кейса или создания автоматического тест-кейса.
- Изменен — дата сканирования последнего изменения тест-кейса (например, дата проведения повторного анализа).
Кнопки, расположенные справа от общей информации, позволяют выполнить следующие действия:
- Скачать отчет — получить подробный отчет о результатах сканирования в формате PDF.
- Скачать приложение — скачать файл сканируемого приложения.
- Скачать логи — скачать лог-файл сканирования.
- Повторный анализ — провести повторный анализ результатов сканирования с применением актуальных правил анализа уязвимостей для данного приложения.
- Удалить — полностью удалить запись о сканировании из системы.
Повторный анализ позволяет исследовать собранные при сканировании приложения данные, откорректировав перед этим необходимым образом настройки модулей (см. «Приложение 1. Описание модулей для сбора информации») и правил (см. раздел «Правила»). Это дает возможность, например в случае большого количества связанных с директорией или файлом ложных срабатываний какого-либо модуля, добавить такой файл или директорию в список исключений в настройках модуля и получить результаты анализа, не затрачивая время на серфинг и сканирование приложения. Дефекты, добавленные в исключения, также будут отсутствовать в результатах повторного анализа.
Примечание
Даже если собранные при сканировании данные не удовлетворяют требованиям новых настроек модулей и правил, они все равно не удаляются и при необходимости могут быть обработаны с новыми настройками модулей при очередном повторном анализе.
Дефекты
На каждую выявленную уязвимость системой заводится дефект. Найденные во время сканирования дефекты показаны в левой половине вкладки Дефекты. В правой части данной вкладки представлена информация о выявленной уязвимости с ее детальным описанием, а также даны рекомендации по ее устранению.
Важно!
Важно отметить, что по умолчанию не отображаются дефекты, имеющие уровень критичности Неизвестно. При необходимости включите отображение таких дефектов, используя возможности фильтрации в столбце Критичность.
Для удобства работы с дефектами в колонках, отмеченных значком фильтра , существует возможность выбрать и применить для отображаемых дефектов фильтр. Для этого нажмите значок фильтра и выберите из выпадающих списков одно или несколько значений для фильтрации, например, по параметрам Критичность и Инструмент. Если выбран уровень критичности Высокий и инструмент обнаружения Стингрей, то будут отображаться все обнаруженные системой Стингрей дефекты с высоким уровнем критичности. При установке фильтра в колонке цвет значка меняется на синий . Чтобы убрать установленный фильтр, нажмите на значок фильтра и выберите пункт Сбросить в выпадающем меню.
На вкладке Дефекты представлены следующие сведения о дефекте:
- Название обнаруженной уязвимости и ID дефекта в системе.
- Критичность дефекта (Критический, Высокий, Средний, Низкий, Инфо или Неизвестно).
- Инструмент — название инструмента, обнаружившего дефект (Стингрей, Appscreener или Oversecured).
- Статус дефекта (Не обработан, Подтвержден или Ложное срабатывание).
- Состояние дефекта (Новый, Повторный или Исправлен).
Начальное заполнение значений полей дефектов производится системой автоматически во время анализа результатов.
При нажатии на дефект в левой панели справа отображается детальная информация о нем.
Приводится следующая информация:
- Иконка инструмента, обнаружившего дефект (например, для Стингрей).
- Название выявленной уязвимости и ее краткое описание.
- Ниже названия уязвимости располагаются кнопки Скачать отчет, нажав которую можно получить отчет об уязвимости в формате PDF, и Рекомендации по устранению, по нажатию на которую открывается страница «Рекомендаций по безопасной разработке» с подробным описанием уязвимости, рекомендациями по исправлению, примерами исходного кода и ссылками на материалы по этой уязвимости.
- Состояние дефекта:
- Новый — если этот дефект был впервые найден во время этого сканирования, либо он уже встречался ранее, а затем проблема была решена и дефект был закрыт, но при этом сканировании вновь проявился.
- Повторный — если этот дефект был уже ранее найден во время предыдущих сканирований.
- Исправленный — это состояние для тех дефектов, которые были найдены в предыдущих сканированиях, но в текущем сканировании их уже нет.
- Критичность дефекта. В этом поле отображается текущее значение критичности дефекта и предоставляется возможность поменять уровень критичности. Для этого выберите новое значение из выпадающего списка и нажмите на кнопку Сохранить.
- Статус дефекта. В этом поле отображается текущий статус дефекта и предоставляется возможность поменять статус. Для этого выберите новое значение из выпадающего списка и нажмите на кнопку Сохранить.
-
Место возникновения дефекта. Если обнаружено несколько уязвимостей одного типа, они группируются в один дефект, а справа от данного поля появляются стрелки , с помощью которых можно переходить между уязвимостями.
Ниже приводится важная фактическая информация по найденной уязвимости, например, обнаруженная чувствительная информация, место ее обнаружения, и т. п. Для удобной работы с информацией из этих полей можно использовать расположенную в них справа кнопку Скопировать.
Примечание
Отдельно следует отметить дефекты, выявленные с помощью поиска ранее найденной чувствительной информации. В поле Место возникновения таких дефектов, кроме упомянутой выше информации, можно найти ссылку Смотреть детали на уязвимости, которые послужили основанием для создания такого дефекта.
-
В опциональном поле Найдено правилом приведены название правила в системе и строка поиска, с помощью которых был обнаружен данный дефект.
-
В поле Результат отображается фрагмент кода или содержимое файла (до 5000 знаков), в котором обнаружена уязвимость. Если необходимо загрузить соответствующий файл целиком, нажмите на кнопку Скачать результат, расположенную справа.
Если в результате анализа были найдены уязвимости, которые определяются нами как ложные срабатывания, они могут быть добавлены в исключения как на уровне проекта, так и на уровне компании (ко всем проектам компании). Для этого необходимо выбрать дефект, изменить его Статус на «Ложное срабатывание» и нажать кнопку Добавить исключение, расположенную в поле Найдено правилом.
Примечание
Если в описании дефекта отсутствует поле Найдено правилом, этот дефект не может быть добавлен в исключения.
В появившемся окне Добавление исключений выберите, на каком уровне вы хотите добавить исключения — на уровне проекта или на уровне компании, а затем нажмите на кнопку Добавить.
В результате добавления исключений, при повторном анализе результатов или при следующем сканировании в рамках этого проекта, если выбран уровень проекта, или для всех проектов компании, если выбран уровень компании, такие уязвимости учитываться не будут.
Собранные данные
Для работы с собранными в ходе сканирования данными выберите вкладку Собранные данные на странице с детальными результатами сканирования.
На вкладке Собранные данные доступна вся информация о работе приложения, собранная за время сканирования. Информация разделена по модулям, которые отвечают за сбор данных. Для модулей предусмотрена возможность скачивания собранных данных в виде zip-архива с помощью кнопок Скачать данные модуля, расположенных рядом с названиями модулей, или же, возможно скачать все данные сканирования сразу в одном архиве с помощью кнопки Скачать все данные. Кроме того, можно получить собранные данные только по одному из найденных дефектов с помощью кнопки Скачать, расположенной рядом с ID дефекта.
На данной вкладке доступны данные, собранные во время сканирования приложения всеми включенными в профиле модулями. Модуль для просмотра собранных данных может быть выбран в левой панели. Каждый из модулей собирает данные, специфичные только для него. Соответственно, формат представления данных на вкладке отличается для каждого модуля.
Например, модуль Сетевая активность собирает данные, переданные по сети — адрес, протокол, время, метод, порт, а также содержание запроса и ответа. Такого сорта дополнительная информация может оказаться полезной в работе с результатами анализа.
На рисунке ниже приведен пример, иллюстрирующий другую область работы приложения — данные, собранные модулем Отслеживание Activity. Здесь Activity — это все различные экраны приложения, которые были запущены во время сканирования. Для каждого экрана (Activity) приведены его имя и параметры запуска.
Результаты работы всех модулей собраны в одной системе, что значительно упрощает их анализ. Такой подход обладает явными преимуществами по сравнению с ситуацией, когда данные о работе приложения последовательно и в различных форматах собираются несколькими утилитами.
Помимо предоставления пользователям возможности работы с собранными данными, система на их основе делает выводы об уязвимостях приложения. Правила анализа собранных данных для поиска уязвимостей подробно описаны в разделах «Правила» и «Правила анализа на уровне компании».
Стандарты
Для работы с требованиями стандартов выберите на странице с детальными результатами сканирования вкладку Стандарты. На этой вкладке отображаются результаты проверки выполнения требований для просканированного приложения. На вкладке Стандарты представлено соответствие стандартам безопасности, выбранным в профиле сканирования. Требования, категории требований и стандарты, в которых были выявлены несоответствия, отмечаются значком . Требования, категории требований и стандарты, в которых не было выявлено несоответствий, отмечаются значком .
Если кликнуть мышкой по требованию на вкладке в левой части, в правой части появится список типов дефектов, которые были проверены для выбранного требования.
В случае обнаружения дефектов определенного типа при проверке требования, этот тип дефектов отмечается значком , а само требование считается невыполненным и также отмечается значком . Если дефектов определенного типа при проверке требования выявлено не было, такой тип дефектов отмечается значком . Требование в целом считается выполненным, если при его проверке не было выявлено ни одного дефекта из числа относящихся к этому требованию типов дефектов.
Чтобы посмотреть список найденных дефектов определенного типа, нажмите на кнопку Показать дефекты под названием типа дефекта, отмеченного значком . На экране появится вкладка Дефекты с информацией по обнаруженным дефектам данного типа.
Для возвращения к списку требований нажмите на кнопку Вернуться к стандартам в левом верхнем углу.
На вкладке Стандарты доступны данные по выполнению требований всех выбранных в профиле сканирования стандартов. Если в профиле добавить еще один стандарт к списку проверяемых, то после этого при просмотре результатов всех уже ранее проведенных с этим профилем сканирований, на вкладке Стандарты будет отображаться также соответствие ранее собранных результатов и вновь выбранного в профиле стандарта.
Запись скана
Данная вкладка доступна только для результатов автоматического сканирования и предоставляет возможность просмотра видеозаписи проведенного сканирования и процесса выполнения тест-кейса.
Снимок экрана
Для сканирований, завершенных со статусом Неуспешно, причиной завершения которых стала невозможность запуска приложения на агенте, в результате сканирования доступна вкладка Снимок экрана, на которой сохранен снимок экрана эмулятора в момент возникновения ошибки.
Лог сканирования
Дополнительная вкладка Лог предоставляет возможность просмотра лога сканирования. Она доступна только во время анализа результатов сканирования, когда у сканирования на странице Сканы в поле Состояние отображается значение Анализ.
Информация на вкладке Лог периодически автоматически обновляется.
Существует возможность управления выводом информации на вкладке Лог с помощью кнопок Info, Debug, Warning и Error. С их помощью можно отфильтровать сообщения по уровням и отключить сообщения, избыточные для анализа в данный момент.
Отчет о сканировании
На странице с результатами сканирования можно скачать отчет в формате PDF или JSON.
-
Нажмите кнопку Скачать отчет.
-
В открывшемся окне выберите параметры формируемого отчета и его формат:
- Состояние отображаемых в отчете дефектов (Новый и/или Повторный).
- Статус отображаемых в отчете дефектов (Не обработан, Ложное срабатывание и Подтвержден).
- Критичность отображаемых в отчете дефектов (Неизвестно, Инфо, Низкий, Средний, Высокий и Критический).
-
Формат отчета (PDF или JSON).
Кроме этого, выбрав соответствующие опции, можно включить в отчет сводку дефектов, рекомендации и требования.
-
Нажмите кнопку Скачать.