Статический анализатор 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@ispras.ru)
По вопросам определения стоимости, приобретения и использования обращайтесь по адресу: sdl@ispras.ru.
Разработчик/участник
Перейти к списку всех технологий