Обзор Solar appScreener 3.14, комплексного анализатора безопасности приложений


Обзор Solar appScreener 3.14, комплексного анализатора безопасности приложений

Анализ безопасности необходим для определения потенциальных уязвимостей и последствий их эксплуатации. Чаще всего применяются анализ исходного кода (статический, SAST) и анализ работающего приложения (динамический, DAST). Solar appScreener 3.14 — симбиоз нескольких видов анализа кода и приложений.

Сертификат AM Test Lab

Номер сертификата: 452

Дата выдачи: 20.03.2024

Срок действия: 20.03.2029

Реестр сертифицированных продуктов »

  1. Введение
  2. Функциональные возможности Solar appScreener
    1. 2.1. SAST-анализ
    2. 2.2. DAST-анализ
    3. 2.3. SCA-анализ
    4. 2.4. SCS-анализ
  3. Архитектура Solar appScreener
  4. Системные требования Solar appScreener
  5. Сценарии использования Solar appScreener
    1. 5.1. Подготовка проекта к анализу
    2. 5.2. Просмотр результатов анализа
    3. 5.3. Подробные результаты
    4. 5.4. Корреляция результатов статического и динамического анализа
    5. 5.5. Формирование отчёта
  6. Выводы

Введение

Проблема внедрения вредоносного содержимого в исходный код, несмотря на стремительное развитие информационной безопасности, до сих пор остаётся значимой. Например, в рейтинге OWASP Top 10 устаревшие и уязвимые компоненты приложений поднялись до 6-й строчки. Среди причин — невнимательное отношение к разработке, бездумное использование сторонних библиотек, отсутствие обновления компонентов приложений и многое другое.

Безопасная разработка (DevSecOps) подразумевает интеграцию различных проверок и средств контроля в процесс создания программного продукта. С течением времени DevSecOps стала не просто рядовым элементом этого процесса. Принципы безопасности кода теперь неотделимы от всего жизненного цикла создания программного обеспечения.

Особенно важно в настоящее время соблюдать принципы безопасной разработки для объектов критической информационной инфраструктуры. Атаки на ОКИИ входят в число самых популярных. Новая редакция приказа ФСТЭК России от 25.12.2017 № 239, действующая с 01.01.2023, закрепила необходимость соблюдения безопасности при разработке программного обеспечения для критической инфраструктуры. Так, в пункте 29.3 приказа установлены требования в отношении безопасной разработки ПО, испытаний по выявлению уязвимостей в приложении, а также дальнейшей поддержки безопасности программного продукта.

Безопасная разработка, а точнее — требования к ней, не обходит стороной и банковскую сферу. Так, согласно новым предписаниям Положения № 719-П, кредитные организации должны использовать прикладное программное обеспечение, которое сертифицировано в ФСТЭК России или соответствует уровню ОУД4 по ГОСТ 15408. Именно в ГОСТ 15408 безопасная разработка выделена в особый раздел, содержащий требования к документации, которую должен предоставить разработчик.

Solar appScreener 3.14 является одним из инструментов, которые позволяют решить эти проблемы. В приложении используется сразу несколько типов тестирования:

  1. SAST — статический анализ кода. Проверяет исходный или бинарный код приложения на наличие уязвимостей как на ранних этапах разработки, так и на заключительных.
  2. DAST — динамический анализ кода. Проверяет работающее приложение в конце жизненного цикла разработки или после ввода в эксплуатацию на конкретном объекте.
  3. SCA — анализ состава программного обеспечения. Позволяет проверить безопасность сторонних библиотек, используемых разработчиками в своём ПО.
  4. SCS — анализ безопасности цепочек поставок ПО. Позволяет контролировать безопасность ПО на протяжении всего его пути в компании — от создания / покупки до использования в разработке.

Функциональные возможности Solar appScreener

SAST-анализ

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

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

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

Для статического анализа доступны 36 языков программирования, включая как популярные (Java, Scala, PHP, C#, Swift, Ruby и др.), так и специализированные (ABAP, 1С, Solidity, PL/SQL и др.) или устаревшие (Delphi, COBOL, Visual Basic 6.0, VBA), а также 10 форматов бинарных файлов (JAR, WAR, EXE, DLL, APK, IPA, APP, AAR, EAR, AAB).

 

Рисунок 1. Схема SAST-анализа в Solar appScreener

Схема SAST-анализа в Solar appScreener

 

Технологии декомпиляции и деобфускации бинарного кода приложений позволяют использовать Solar appScreener для анализа исполняемых файлов, в том числе для Android, iOS и macOS. Для проверки мобильных приложений достаточно скопировать в анализатор ссылку на соответствующую страницу в Google Play или App Store. Результаты анализа отображаются на основе восстановленного исходного кода.

DAST-анализ

Динамический анализ позволяет проверить веб-приложение на ошибки и уязвимости во время его работы.

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

 

Рисунок 2. Схема DAST-анализа в Solar appScreener

Схема DAST-анализа в Solar appScreener

 

SCA-анализ

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

Для сканирования сторонних компонентов предусмотрено два варианта загрузки данных: в виде SBOM-файла или архива с исходным кодом. Во втором случае Solar appScreener автоматически соберёт из него SBOM-файл и отправит на анализ. Модуль SCA проверяет полученный файл по общедоступным базам сторонних компонентов или своим собственным, которые разрабатываются ИБ-аналитиками ГК «Солар».

 

Рисунок 3. Схема работы модуля SCA-анализа в Solar appScreener

Схема работы модуля SCA-анализа в Solar appScreener

 

SCS-анализ

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

Модуль SCS выдаёт оценку доверия каждому компоненту. Если она низка, то велик риск появления уязвимостей или закладок в компоненте.

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

Архитектура Solar appScreener

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

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

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

 

Рисунок 4. Архитектура Solar appScreener

Архитектура Solar appScreener (нет рисунка)

 

Также Solar appScreener легко встраивается в процесс разработки и обеспечивает цикл SDLC. Это возможно благодаря интеграции с репозиториями, системами отслеживания ошибок, интегрированными средствами разработки и сервисами CI / CD:

  • репозиториями Git и Subversion;
  • VCS-хостингами GitLab, GitHub, Bitbucket;
  • средствами разработки Eclipse, Microsoft Visual Studio, IntelliJ IDEA;
  • средствами сборки Xcode, CMake, Visual Studio, GNU Make, GNU Autotools, Gradle, sbt, Maven;
  • платформой непрерывного анализа и измерения качества кода SonarQube;
  • серверами CI / CD Jenkins, Azure DevOps Server и TeamCity;
  • системами отслеживания ошибок Atlassian Jira и «ТУРБО Трекинг».

Системные требования Solar appScreener

Основной сервер системы:

  • Процессор — 8 ядер, 2,2 ГГц.
  • Оперативная память — 32 ГБ.
  • Запоминающее устройство — 500 ГБ SSD / SAS (при увеличении количества сканирований требуемый объём увеличивается).
  • Операционная система — Ubuntu 20.04 / 22.04, RHEL 8, CentOS 7, Astra Linux, РЕД ОС, Debian 12.
  • Права администратора.

Модуль анализа исходных кодов Objective-C:

  • Процессор — 4 ядра, 2,2 ГГц.
  • Оперативная память — 16 ГБ.
  • Запоминающее устройство — 100 ГБ свободного пространства.
  • Операционная система — macOS Mojave и выше; при использовании функциональности «Межмодульный анализ» — Big Sur x64 и выше + инструмент Bear версии от 3.1.2 (возможно установить с помощью утилиты Homebrew).
  • Отсутствие установленных Java-машин и переменных среды %JAVA_HOME%.
  • Сетевое соединение с основным сервером установки.
  • Наличие установленных Xcode, Clang, Cmake, Cocoapods.
  • Выход в интернет, а также наличие установленных Git и / или SVN при необходимости загрузки библиотек из внешних источников.
  • Подготовленное окружение, в котором успешно собирается анализируемый проект.

Модуль анализа исходных кодов С++ для Microsoft Windows:

  • Процессор — 4 ядра, 2,2 ГГц.
  • Оперативная память — 16 ГБ.
  • Запоминающее устройство — 100 ГБ свободного пространства.
  • Операционная система — Windows 10 (64 бита) Pro / Enterprise (сборка 16299 и выше) / Home (версия 1903 и выше) либо Windows 11 (64 бита); Windows Server 2019 / 2022.
  • Установленная Visual Studio или Microsoft Build Tools той же версии, на которой̆ происходит сборка проекта.
  • Отсутствие установленных Java-машин и переменных среды %JAVA_HOME%.
  • Окружение, в котором успешно собирается проект для анализа.
  • Права администратора.

Сценарии использования Solar appScreener

Подготовка проекта к анализу

Окно авторизации в приложении выглядит стандартно.

 

Рисунок 5. Окно авторизации в Solar appScreener

Окно авторизации в Solar appScreener (нет рисунка)

 

Авторизовавшись, мы попадаем на домашнюю страницу.

 

Рисунок 6. Домашняя страница в Solar appScreener

Домашняя страница в Solar appScreener

 

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

 

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

Параметры настройки проекта перед отправкой на анализ

 

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

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

 

Рисунок 8. Загрузка файла для проведения сканирования в Solar appScreener

Загрузка файла для проведения сканирования в Solar appScreener

 

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

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

 

Рисунок 9. Специальные настройки для отдельных языков программирования

Специальные настройки для отдельных языков программирования

 

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

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

 

Рисунок 10. Страница обзора результатов анализа

Страница обзора результатов анализа

 

Отметим, что уязвимости с уровнями значимости «низкий» и «информационный» на рейтинг не влияют.

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

Подробные результаты

Эта страница приложения является основным «местом работы» аналитика после проведения любого типа анализа.

После проведения SAST-анализа пользователю видна конкретная часть кода, в которой найдена уязвимость.

 

Рисунок 11. Результат SAST-анализа

Результат SAST-анализа

 

В этом разделе приведено подробное описание каждой найденной уязвимости, есть примеры, рекомендации по её устранению, тип уязвимости согласно всем основным классификациям (OWASP, PCI DSS, БДУ ФСТЭК России и т. д.). Для некоторых уязвимостей система строит трассу — путь, показывающий, как невалидированные данные попали в код. Трасса строится за счёт taint-анализа –– технологии, позволяющей отслеживать распространение непроверенных внешних данных по программе.

 

Рисунок 12. Путь попадания заражённой части кода в приложение

Путь попадания заражённой части кода в приложение

 

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

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

 

Рисунок 13. Окно фильтра уязвимостей в Solar appScreener

Окно фильтра уязвимостей в Solar appScreener

 

При работе с результатами SAST-анализа применяется фильтр ложных срабатываний Fuzzy Logic Engine. Технология запатентована ГК «Солар» и позволяет сократить количество ложноположительных срабатываний и пропусков реальных уязвимостей при сканировании.

 

Рисунок 14. Настройка фильтра ложных срабатываний

Настройка фильтра ложных срабатываний

 

При DAST-анализе указываются URL приложения и данные для авторизации (возможные варианты — логин и пароль, токен, заголовки, форма).

 

Рисунок 15. Варианты авторизации в веб-приложении при DAST-анализе

Варианты авторизации в веб-приложении при DAST-анализе

 

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

 

Рисунок 16. Результат работы DAST-анализа в Solar appScreener

Результат работы DAST-анализа в Solar appScreener

 

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

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

 

Рисунок 17. Результат SCA-анализа и оценка лицензионных рисков

Результат SCA-анализа и оценка лицензионных рисков

 

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

 

Рисунок 18. Настройка SCS-анализа в Solar appScreener

Настройка SCS-анализа в Solar appScreener

 

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

 

Рисунок 19. Критерии для определения риска при SCS-анализе

Критерии для определения риска при SCS-анализе

 

Корреляция результатов статического и динамического анализа

Уязвимости, которые были найдены при SAST-анализе, можно верифицировать с помощью DAST.

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

 

Рисунок 20. Подтверждённая двумя методами анализа уязвимость

Подтверждённая двумя методами анализа уязвимость

 

Формирование отчёта

Отчёты по любому виду анализа доступны в едином интерфейсе Solar appScreener — их можно увидеть на экране или скачать в нужном формате как отдельный файл. Настройки вывода информации в отчёт вполне гибки: есть возможность вывести уязвимости в соответствии с одной из международных или российских классификаций, получить инструкции по настройке файрвола веб-приложений (WAF) для некоторых уязвимостей, выбрать какие-то конкретные бреши и т. д.

Доступные классификации уязвимостей в Solar appScreener:

  • PCI DSS;
  • OWASP Top 10;
  • OWASP Mobile Top 10;
  • HIPPAA;
  • CWE/SANS Top 25;
  • БДУ ФСТЭК России;
  • ОУД4.

Инструкции по настройке доступны для WAF следующих производителей: Imperva, ModSecurity, F5, Positive Technologies.

 

Рисунок 21. Настройка вывода отчёта на примере SAST-анализа в Solar appScreener

Настройка вывода отчёта на примере SAST-анализа в Solar appScreener

 

После настройки отчёт можно вывести в нескольких форматах: PDF, DOCX, JSON, CSV, HTML.

 

Рисунок 22. Пример содержания отчёта в формате PDF

Пример содержания отчёта в формате PDF

 

Выводы

Solar appScreener 3.14 действительно может стать помощником как для разработчиков, так и для специалистов по оценке безопасности приложений.

Развернуть продукт возможно как на собственных вычислительных мощностях, так и в облаке ГК «Солар» по модели SaaS. В первом случае лицензирование осуществляется по количеству пользователей, которым необходим доступ к системе, а во втором — исходя из количества произведённых проверок кода или приложения.

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

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

Достоинства:

  • Сертифицирован ФСТЭК России по профилю «Защита от несанкционированного доступа к информации. Часть 1» по 4-му уровню контроля отсутствия НДВ, внесён в реестр отечественного ПО.
  • Объединяет все ключевые методы анализа уязвимостей в одном инструменте.
  • Возможность полного контроля безопасности опенсорс-компонентов с помощью модулей SCA и SCS, анализа лицензионных рисков.
  • Простой и понятный интерфейс.
  • Возможность сканирования мобильных приложений.
  • Подробные отчёты с рекомендациями по устранению уязвимостей.
  • Найденные уязвимости можно классифицировать в соответствии с известными перечнями.
  • Возможность учесть лицензионные риски использования компонентов.
  • Оценка изменения безопасности проекта путём сравнения результатов сканирований.

Недостатки:

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

Реестр сертифицированных продуктов »

Записаться на демонстрацию

Нажимая "Запросить", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Запросить пробную версию

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

Запросить цены

Нажимая "Отправить", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Задать вопрос

Нажимая "Задать", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.
Лаборатория AM Test Lab готова провести независимую экспертизу и добровольную сертификацию любого продукта или сервиса по информационной безопасности и подготовить его профессиональный обзор. Для получения дополнительной информации необходимо оформить запрос.