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


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

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

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

Svace – необходимый инструмент жизненного цикла разработки безопасного ПО, основной статический анализатор компании Samsung. Обнаруживает более 50 классов критических ошибок в исходном коде. Поддерживает языки C, C++, C#, Java, Kotlin, Go; в бета-версии – язык Python. Включён в Единый реестр российского ПО (№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 часов всеми движками);
    • поддержка не только полного, но и инкрементального анализа системы (подразумевает быструю повторную проверку недавно изменённого кода).
  • Ускоренная кастомизация (конфигурация существующих детекторов, а также написание индивидуальных, доступных только данному заказчику; программный интерфейс для разработки пользовательских детекторов-плагинов);
  • Ускоренная адаптация к работе с новым окружением (добавление новых компиляторов в течение 1-2 недель, в сложных случаях – до 2 месяцев);
  • Полная совместимость с нормативными документами и требованиями регуляторов (ФСТЭК РФ).
  • Возможность использования для реализации обеспечительных мер ГОСТ Р 56939-2016 и процедур «Методики выявления уязвимостей и недекларированных возможностей в программном обеспечении» ФСТЭК России (при необходимости сертификации ПО для использования на территории России).
  • Svacer − комплексный пользовательский интерфейс просмотра предупреждений, сервер хранения и управления результатами анализа. Поддерживает многопользовательский режим и различные фильтры данных. Svacer – это:
    • Разметка и отчёты:
      • широкие возможности сравнения и разметки результатов, пользовательские фильтры детекторов, навигация по коду и трассе предупреждения;
      • выгрузка отчётов в формате PDF, CSV, JSON;
      • аннотация результатов работы пользовательскими атрибутами и файлами;
      • возможность разметки результатов в исходном коде в виде специальных комментариев (режим редактирования), ведение истории работы с комментариями;
      • гибкий пользовательский интерфейс с поддержкой вкладок.
    • Совместная работа и управление:
      • богатая ролевая модель, позволяющая гибко настраивать права пользователей и организаций по работе с данными;
      • групповые операции работы с проектами, пользователями, разметкой и др.;
      • поддержка разметки различных версий одного проекта, перенос разметки между версиями, ветками и др.;
      • поддержка LDAP для аутентификации пользователей;
      • доступ ко всем данным через API;
      • импорт и экспорт собранных данных: разметки, исходного кода, комментариев, детекторов (в том числе пользовательских).
    • Интеграция в CI/CD:
      • интеграция с Visual Studio Code и предоставление интерфейса командной строки для интеграции в типовые CI/CD-процессы;
      • поддержка работы в контейнерах.
    • Поддержка открытого формата SARIF: позволяет импортировать результаты работы других анализаторов, а также экспортировать результаты вместе с разметкой, комментариями, исходным кодом.

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

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

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

    Svace – основной анализатор Samsung с 2015 года. Применяется для проверки собственного ПО компании на базе ОС Android и исходного кода ОС Tizen, которая используется в смартфонах, информационно-развлекательных системах и бытовой технике Samsung. С 2017 года Svace проверяет все изменения, присланные для рецензирования и включения в ОС Tizen. C 2020 года Svace применяется также в компании Huawei.

    В России Svace используется более чем в 100 компаниях и лабораториях, в том числе в ОАО «РусБИТех», АО «Лаборатория Касперского», Postgres Professional, ООО «Код Безопасности», МВП «СВЕМЕЛ» и др.

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

    • Платформы, на которых работает анализатор 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# не поддерживается); архитектура 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; для C#, Java, Kotlin – платформы, на которых работает анализатор.
    • Платформы и архитектуры, на которых работает Svacer: архитектура x86-64; ОС Linux (версия ядра 3.10+, версия glibc 2.17+), ОС Windows (начиная с Windows 10) и WSL (версий 1 и 2); macOS на x86-64 (начиная с версии 10.12 Sierra).

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

    • Для С/С++ (версий до 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# 11): Roslyn, Mono.
    • Для Java (версий до Java 17): OpenJDK Javac Compiler, Eclipse Java compiler.
    • Для Kotlin: Kotlin 1.8.
    • Для Go: Go 1.21.

    Схема работы

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

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

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

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

    Справочный центр «Сервера для хранения и обработки результатов статического анализа Svacer»

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

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

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

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

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