Статический анализатор Svace


Скачать сборник технологий

Статический анализатор Svace

Документация и поддержка | В реестре российского ПО | Оформить лицензию

Svace – необходимый инструмент жизненного цикла разработки безопасного ПО, основной статический анализатор компании Samsung. Обнаруживает более 70 классов критических ошибок в исходном коде. Поддерживает языки C/C++, C#, Java, Kotlin, Go, Python, Scala, Visual Basic .ΝΕΤ; в легковесном анализе поддерживает язык JavaScript. Включён в Единый реестр российского ПО (№4047). Поставляется с web-интерфейсом просмотра предупреждений Svacer (Svace History Server).

Особенности и преимущества

Svace – постоянно развивающийся инновационный продукт, основанный на многолетних исследованиях. Объединяет ключевые качества иностранных аналогов (Synopsis Coverity Static Analysis, Perforce Klocwork Static Code Analysis, Fortify Static Code Analyzer) с уникальным использованием открытых промышленных компиляторов в целях максимальной поддержки новых стандартов языков программирования.

Svace – это:

  • Высокое качество анализа:
    • точное представление исходного кода (благодаря интеграции с любой системой сборки);
    • символьное выполнение: полное покрытие всех путей с учетом связей между функциями для поиска сложных ошибок;
    • учёт контекстов вызовов при межпроцедурном анализе, анализ потока данных, анализ чувствительных данных, анализ статистики вызовов;
    • высокий процент истинных срабатываний (60-90%).
  • Масштабируемость и высокая скорость:
    • параллельный анализ с использованием всех доступных процессорных ядер;
    • возможность анализировать системы из десятков миллионов строк кода (анализ мобильной ОС Tizen 7 из 57 миллионов строк занимает 7-8 часов основным движком Svace и 9-10 часов всеми движками);
    • поддержка не только полного, но и инкрементального анализа системы (подразумевает быструю повторную проверку недавно изменённого кода), а также поддержка анализа с кэшированием промежуточных результатов (позволяет не повторять анализ не изменившихся частей программы).
  • Автоматическая оценка истинности предупреждений анализатора на основе машинного обучения по структуре исходного кода и данным предыдущей разметки (для языков C, C++, C# и Java).
  • Гибкая кастомизация анализа:
    • конфигурация существующих детекторов, а также написание индивидуальных, доступных только данному заказчику;
    • пользовательская настройка истоков и стоков чувствительных данных для точного поиска особо опасных ошибок, важных для заказчика;
    • программный интерфейс для разработки пользовательских детекторов-плагинов.
  • Ускоренная адаптация к работе с новым окружением (добавление новых компиляторов в течение 1-2 недель, в сложных случаях – до 2 месяцев);
  • Полная совместимость с ГОСТ Р 71207-2024 «Статический анализ программного обеспечения. Общие требования», а также с нормативными документами и требованиями регуляторов (ФСТЭК России).
  • Возможность использования для реализации обеспечительных мер ГОСТ Р 56939-2016/2024, а также процедур последних редакций «Методики выявления уязвимостей и недекларированных возможностей в программном обеспечении» ФСТЭК России (при необходимости сертификации ПО для использования в России).
  • Svacer − комплексный пользовательский интерфейс просмотра предупреждений, сервер хранения и управления результатами анализа. Поддерживает многопользовательский режим и различные фильтры данных.

Svacer – это:

  • Разметка и отчёты:
    • широкие возможности сравнения и разметки результатов, навигация по коду и трассе предупреждения, пользовательские фильтры детекторов и управление ими через API;
    • выгрузка отчётов в формате PDF, CSV, JSON;
    • аннотация результатов работы пользовательскими атрибутами и файлами;
    • поддержка разметки различных версий одного проекта;
    • интеллектуальный перенос разметки между проектами, версиями и ветками проекта, в том числе на основе пользовательских шаблонов переноса;
    • возможность разметки результатов в исходном коде в виде специальных комментариев (режим редактирования), ведение истории работы с комментариями;
    • гибкий пользовательский интерфейс с поддержкой вкладок.
  • Совместная работа и управление:
    • богатая ролевая модель, позволяющая гибко настраивать права пользователей и организаций по работе с данными;
    • информационные панели (dashboard) со статистикой по разметке и активности пользователей;
    • группы проектов и групповые операции с проектами, пользователями, разметкой и др.;
    • поддержка LDAP для аутентификации пользователей;
    • уведомление пользователей по почте, подписка на события по gRPC API;
    • доступ ко всем данным через API;
    • импорт и экспорт собранных данных: разметки, исходного кода, комментариев, детекторов (в том числе пользовательских).
  • Полнотекстовый поиск по всем предупреждениям, детекторам, комментариям и снимкам (включая пользовательские атрибуты) с поддержкой фильтрации результатов по проектам, веткам и снимкам.
  • Веб-среда разработки (IDE) на основе Eclipse/Theia для упрощения работы с кодом.
  • Интеграция в CI/CD:
    • интеграция с Visual Studio Code и предоставление интерфейса командной строки для интеграции в типовые CI/CD-процессы.
    • Поддержка работы в контейнерах.
  • Поддержка открытого формата SARIF: позволяет импортировать результаты работы других анализаторов, а также экспортировать результаты вместе с разметкой, комментариями, исходным кодом с учетом таксономии ошибок по классам CWE.

Для кого предназначен Svace?

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

Опыт внедрения

Svace – основной анализатор Samsung с 2015 года. Применяется для проверки собственного ПО компании на базе ОС Android и исходного кода ОС Tizen, которая используется в смартфонах, информационно-развлекательных системах и бытовой технике Samsung. С 2017 года Svace проверяет все изменения, присланные для рецензирования и включения в ОС Tizen. В 2020 году Svace внедрён в Huawei. В России Svace используется более чем в 200 компаниях и лабораториях, в том числе в ОАО «РусБИТех», АО «Лаборатория Касперского», Postgres Professional, ООО «Код Безопасности», МВП «СВЕМЕЛ» и др.

Поддерживаемые типы ошибок

Анализатор Svace находит более 1000 типов ошибок, в том числе более 70 классов критических ошибок (переполнение буфера, работа с некорректными указателями и неинициализированными переменными, использование чувствительных данных, деление на ноль и другие) и множество недостатков кодирования и стилевых недочетов. Полный список ошибок и остальную документацию можно найти на странице https://svace.pages.ispras.ru/svace-website/docs/latest/user-guide.htm.

Поддерживаемые платформы и архитектуры

  • Платформы, на которых работает анализатор Svace: Linux/x64 (версия ядра 3.10+, версия glibc 2.17+), Linux/ARM 64 (Ubuntu 18.04), Windows (начиная с Windows 7 SP 1 с обновлением KB2533623) и WSL (версий 1 и 2); macOS/x64 (версия 10.10+, языки C# и Visual Basic .NET не поддерживаются); архитектура x86 (только перехват сборки).
  • Архитектуры, для которых анализируется исходный код: для C/C++ – Intel x86/x86-64, ARM/ARM64, MIPS/MIPS64, Power PC/Power PC 64, RISC-V 32/64, SPARC/SPARC64, Hexagon (генерация кода через Clang); Эльбрус, AEON, TriCore, HIDSP, OpenRISC (генерация кода через одну из предыдущих архитектур); для Go – Intel x86-64 на ОС Linux и Windows; для C#, Java, Kotlin, Scala, Visual Basic .ΝΕΤ – платформы, на которых работает анализатор.
  • Платформы и архитектуры, на которых работает Svacer: архитектура x86-64; ОС Linux (версия ядра 3.10+, версия glibc 2.17+), ОС Windows (начиная с Windows 10) и WSL (версий 1 и 2).

Поддерживаемые компиляторы

  • Для С/С++ (версий до C++20): GCC (GNU Compiler Collection), Clang (LLVM compiler), Microsoft Visual C++ Compiler, RealView/ARM Compilation Tools (ARMCC), Intel C++ Compiler, Elbrus C/C++ Compiler, Wind River Diab Compiler, Keil CA51 Compiler Kit, NEC/Renesas CA850, CC78K0(R) C Compilers, C/C++ Compiler for the Renesas M16C Series and R8C Family, Panasonic MN10300 Series C Compiler, C compiler for Toshiba TLCS-870 and T900 Family, Samsung CalmSHINE16 Compilation Tools, Texas Instruments TMS320C6* Optimizing Compiler, Digital Mars C and C++ Compiler, Green Hills compiler for ARM, TASKING C compiler for TriCore, CEVA Toolbox for CEVA DSP cores, IAR C/C++ Compiler for ARM / Renesas RL78 MCU, CodeWarrior Development Studio for StarCore DSPs, Open Watcom C/C++ compiler, Freescale CodeWarrior, Cadence Tensilica Xtensa C/C++ Compiler.
  • Для С# (версий до C# 12): Roslyn, Mono.
  • Для Java (версий до Java 21): OpenJDK Javac Compiler, Eclipse Java compiler.
  • Для Kotlin: Kotlin 2.0.
  • Для Go: Go 1.23.
  • Для Python: Python 3.12.
  • Для JavaScript: JavaScript ES 6.

Схема работы

Статический анализатор Svace

Документация

Справочный центр «Инструмента статического анализа «Svace»

Блог «Инструмента статического анализа «Svace»

Справочный центр Svacer

Багтрекер (по вопросам создания учетной записи напишите по адресу svace@ispras.ru)

По вопросам определения стоимости, приобретения и использования обращайтесь по адресу: sdl@ispras.ru.

Разработчик/участник

Компиляторные технологии

Перейти к списку всех технологий