Svace — семейство статических анализаторов, разрабатываемых в ИСП РАН с 2003 года.
Мы гордимся, что:
- прошли путь от фундаментальных исследований по анализу до внедрений в крупнейшие российские и зарубежные компании;
- в рамках совместной лаборатории с компанией Samsung показали, как инновационные технологии могут быть «заточены» под специфику конкретных заказчиков;
- добились результатов, которые помогли определить мировой уровень развития анализа, на который ориентируются у нас и за рубежом при создании регуляторики;
- внесли определяющий вклад в формирование научной специальности «Кибербезопасность» в России.
Svace сегодня — это:
- 10 языков, более 70 классов критических ошибок и более 1300 детекторов
- передовой уровень технологий — анализ всей программы целиком (межпроцедурность), раздельный анализ путей выполнения (символьное выполнение), анализ чувствительных данных, анализ статистики, точное построение графа вызовов (девиртуализация). И это далеко не все!
- работа с результатами анализа через графический интерфейс Svacer, в котором можно изучить код и разметить предупреждения небольшой программы, а можно вести десятки проектов различных команд с регулярным проведением анализа, переносом разметки между версиями, пользовательскими фильтрами и статистикой. Именно Svacer поддерживает работу Центра исследований безопасности системного ПО, объединяющего десятки компаний
- программный интерфейс для создания пользовательских детекторов-плагинов, который в простой декларативной манере дает доступ к части анализов из основного «движка». В итоге создание детектора для поиска несложных, специфичных для проекта ошибок сравнимо по трудоемкости с простыми шаблонами запросов для анализаторов уровня синтаксического дерева, но при этом дает значительно более точный результат. Пользователи также могут делиться своими детекторами друг с другом на площадке Svace, получать консультацию разработчиков и предоставлять свои плагины в качестве образцов (подробнее в нашем блоге)
- AI-ассистент для разметки предупреждений анализатора, позволяющий оценивать вероятность истинности предупреждения на основе машинного обучения, управляемого историей разметки (для языков C, C++, C#, Java). Базовыми признаками для оценки служат метрики исходного кода программы, которые дополнительно собираются в ходе анализа. Наилучшая точность предсказания достигается при учете данных прошлой пользовательской разметки. Если результаты анализа загружаются на сервер с такими данными, то дообучение модели для предсказания происходит автоматически (подробнее в нашем блоге).
Svace активно развивается: мы внедряем результаты научных исследований и реализовываем необходимый индустрии функционал. Новые версии Svace выходят ежегодно, а обновления текущей стабильной версии выпускаются каждые два-три месяца. Среди примеров изменений двух последних лет:
- поддержка последних версий языков (C++20, Java 21, Go 1.24, Kotlin 2.0, C#12)
- инфраструктура универсального синтаксического дерева (UAST), которая унифицирует простые детекторы между языками и позволяет в ускоренном темпе добавлять новые. В 2024 году на ее основе добавлен язык JavaScript
- улучшение анализа чувствительных данных и расширение возможностей по пользовательским спецификациям источников и стоков
- работа с предупреждениями через комментарии в коде
- роли пользователей, гибкие фильтры предупреждений, статистика разметки, глобальный полнотекстовый поиск в интерфейсе Svacer
Svace — результат многолетних исследований научной школы системного программирования ИСП РАН, реализованных в инновационном продукте благодаря обратным связям от российской и зарубежной индустрии. Svace внедрен более чем в 200 компаниях, среди которых — ключевые игроки в области ИТ и кибербезопасности, крупнейшие финансовые организации (в том числе ведущие банки России), а также предприятия телекоммуникационного сектора. Вместе мы обеспечиваем технологическую независимость российского бизнеса и всей страны.
Будем рады видеть вас в числе наших заказчиков!