В анализаторе все должно быть прекрасно: и функциональность, и интерфейс…Изучаем новый интерфейс Solar appScreener 3.1

Как говаривал Генри Форд, все можно сделать лучше, чем делалось до сих пор. Вот и мы так подумали, когда приступили к работе над версией 3.1 нашего анализатора защищенности приложений. Нам ОООЧЕНЬ хотелось сделать наш продукт не только самым крутым по функциональности: например, реализовать поддержку максимального количества языков программирования. Но и наиболее эргономичным, удобным, эстетически привлекательным… – ну чтобы прям глаз не оторвать! И так мы увлеклись своей задумкой, что даже название продукту поменяли. В общем, выложились по полной. А результатами своих усилий решили поделиться с вами в этом обзоре.


Итак, сегодня мы расскажем, что нового и полезного появилось в Solar appScreener 3.1 по сравнению с предыдущей версией 2.10 с точки зрения дизайна и эргономики. О функциональной же стороне вопроса можно прочитать в пресс-релизе. На момент публикации этой статьи команда разработчиков Solar appScreener уже выкатила свеженькую версию 3.2 . Но все интерфейсные изменения 3.1 остались в силе.

Кратко об изменениях


Первое новшество – это название продукта: до версии 2.9 включительно анализатор назывался Solar inCode, а начиная с 2.10 стал именоваться Solar appScreener. С момента выхода версии 2.10 продукт изменился как по содержанию, так и внешне.

Очень коротко о функциональных достижениях. Solar appScreener теперь абсолютный лидер среди инструментов статического анализа по количеству поддерживаемых языков (в 3.1 их 26, а в вышедшей на днях 3.2 – уже 29). В 3.1 добавилась поддержка COBOL, TypeScript, VBScript, Apex. Реализовали интеграцию с Active Directory, появился фильтр модуля FLE (Fuzzy Logic Engine), который поможет свободнее управлять ложными срабатываниями. Сделали более гибкой интеграцию с Jira.

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

Дизайн


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

Было: страница Проекты


Стало: страница Проекты


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

В новом интерфейсе пункты бокового меню сопровождаются наглядными иконками. Для экономии места меню можно скрыть. В целом интерфейс стал более ярким и современным.

Навигация


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

Было: страница Проекты


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

Стало: Домашняя страница


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


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

В старом интерфейсе можно было загрузить приложения на анализ тремя способами: по ссылке на Google Play или App Store, с локального компьютера или по ссылке на репозиторий. После выбора способа загрузки можно было указать название проекта, загрузить логотип, выбрать файл или указать ссылку.

Было: выбор способа загрузки приложения и запуск сканирования


В новом интерфейсе запустить сканирование можно в два клика: перетащить файл приложения и нажать кнопку Начать сканирование.

Стало: загрузка приложения на анализ с локального компьютера


Для загрузки приложения из App Store, Google Play или по ссылке на репозиторий Git нужно перейти на вкладку Загрузить приложение по ссылке и указать необходимый URL-адрес.

Стало: загрузка приложения для анализа по ссылке


Просмотр результатов


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

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

Было: страница подробных результатов


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

Стало: страница Обзор


Теперь вся важная информация о выбранном сканировании представлена в виде графиков на одной странице (ранее часть графиков располагалась на странице проекта, а часть – на странице сканирования):

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

Кроме того, в интерфейсе 3.1 добавлены новые графики:
  • статистика по типам уязвимостей (можно узнать, каких уязвимостей больше),
  • статистика по языкам (можно посмотреть количество уязвимостей в каждом из проанализированных языков приложения).

О том, какую еще ценную информацию можно извлечь из результатов сканирования, читайте в спойлере «Подробные результаты».
Подробные результаты
1. Фильтр уязвимостей значительно расширился по сравнению со старым интерфейсом.
Было: фильтр уязвимостей Стало: фильтр уязвимостей

Рассмотрим новые возможности фильтра:
  • Поиск по названию уязвимости. Введите в поле ввода, например, «XSS» и получите список связанных уязвимостей.
  • Поиск по директории и названию файла с уязвимостью. Чтобы посмотреть уязвимости в конкретном файле, введите его название в строку поиска.
  • Фильтр по сравнению с предшествующим сканированием. Если в проекте есть несколько сканирований, можно сравнить текущее с любым из предшествующих. Можно посмотреть только новые или только сохранившиеся уязвимости. Это будет полезно при регулярном запуске анализа — обрабатывать новые результаты теперь можно быстрее. Пользователь также сможет узнать, какие уязвимости были устранены, а какие появились с момента первого анализа.
  • Фильтр по языкам. Изначально в фильтре выбраны все языки, в которых были обнаружены уязвимости. Уберите лишние галочки, чтобы просмотреть уязвимости по интересующим вас языкам.
  • Модуль Fuzzy Logic Engine (FLE). Помогает расставить приоритеты в исправлении уязвимостей. Выберите один из режимов, чтобы отобразить уязвимости:

  1. только истинные – с высокой вероятностью того, что вхождения являются реальной уязвимостью;
  2. только важные – уязвимости, на которые надо обратить внимание в первую очередь;
  3. пользовательский – есть возможность настроить чувствительность Fuzzy Logic Engine, перемещая ползунок в разные положения. Крайнее левое положение показывает вхождения с самой высокой вероятностью корректного срабатывания, крайнее правое отобразит уязвимости для любой вероятности;
  4. динамический – можно установить перцентиль (значение от 1 до 100), в зависимости от которого будет отображаться определенная часть/процент самых важных уязвимостей.



2. Рекомендации по настройке Средств Защиты Информации. В версии 2.10 рекомендации по настройке СЗИ располагались на отдельной странице. В новом интерфейсе рекомендации доступны на странице Подробные результаты во вкладке Настройки СЗИ. Теперь по каждой уязвимости можно сразу посмотреть, есть ли возможность настроить Imperva SecureSphere, ModSecurity или F5 для закрытия дефекта.


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

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

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

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

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


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

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

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

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


В новом интерфейсе стало удобнее выбирать уязвимости для отчёта в зависимости от их статуса (новые, сохранившиеся, устранённые, удалённые). Выгрузка устраненных/удаленных уязвимостей позволяет получить отчёт о проделанной работе. А включив в отчёт только новые уязвимости, можно сформировать список актуальных задач. Раньше была возможность включить в отчёт или все уязвимости, или только новые. Важно, что теперь можно в один клик отправить отчёт по e-mail.

Проекты


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


Теперь чтобы просмотреть только нужные проекты, настройте параметры фильтра или поиска.
  • Статус сканирования. Выберите проекты только с завершёнными последними сканированиями или, наоборот, запущенные сканирования.
  • Язык. Выберите минимум один или несколько языков, содержащихся в анализируемом приложении.
  • Рейтинг. Укажите диапазон, в пределах которого должен находиться рейтинг приложения (от 0 до 5). Цветовой индикатор поможет отобрать проекты, соответствующие запрошенному рейтингу уязвимости.
  • Количество уязвимостей. Укажите диапазон количества уязвимостей разного уровня критичности. Например, проекты только с критическими уязвимостями.
  • Фильтр по дате. Выберите сканирования за конкретный день или интервал дней, за последнюю неделю или прошлый месяц. Например, можно просмотреть сканирования текущего месяца.
  • Поиск проектов можно осуществлять не только по названию и автору, но и по ID конкретного проекта (отображается под названием проекта и на странице Обзор).
ID проекта на странице Проекты ID проекта в боковом меню проекта

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

Было: страница Аналитика


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

Стало: страница Аналитика


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

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


И еще один, на сей раз последний, спойлер посвящен развитию интеграции с Jira. В предыдущих версиях нашего анализатора уже была возможность создавать в Jira задачи по исправлению уязвимостей. В версии 3.1 мы добавили некоторые новые возможности. Какие именно, можно узнать
Здесь
В версии 3.1 мы добавили новые поля «родительская задача» и «компоненты». Также можно указать ссылку на репозиторий с исходным кодом, чтобы в описании задачи сгенерировалась ссылка на код с уязвимостью на Gitlab.

Стало: создание задачи в Jira


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


Администрирование


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

Было: список пользователей


Стало: список пользователей


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

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

Важная доработка: в новой версии реализована интеграция с LDAP. Администратор может задать параметры соединения в настройках системы во вкладке LDAP.


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

Личный кабинет


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

Было: кнопка перехода в Личный кабинет


Стало: кнопка перехода в Личный кабинет


На странице появились отдельные вкладки под разные настройки. Теперь ориентироваться в Личном кабинете стало проще.


Итог


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

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

Автор Елизавета Харламова, ведущий аналитик Solar appScreener