Проекты:
К.ф.-м.н. Алексей Бородин, Дмитрий Журихин, Сергей Сыромятников | — Анализ программ на компилируемых языках программирования (C/C++/Java/Kotlin/Go); — Разработка обобщённого AST-анализатора для разных языков программирования (Java/Kotlin/Go); — Девиртуализация вызовов Java/C++ методов; — Анализ программ на динамических языках (Python, JavaScript), в том числе: девиртулиазация вызовов; обобщенный AST-анализа; поддержка межпроцедурного и чувствительного к путям анализа (выведение типов, детекторы и проч); — Разработка детекторов ошибок на основе Clang Static Analyzer; — Разработка детекторов ошибок в программах: использования неинициализированной памяти, целочисленные переполнение, разыменование нулевых указалей, утечки памяти и ресурсов; — Разработка детекторов потенциальных уязвимостей, утечек приватных данных; — Поиск ошибок на уровне классов для C++/Java; — Моделирование коллекций языков Go/Java; — Статическое символьное выполнение и детекторы на его основе; — Методы повторного анализа кода. |
К.ф.-м.н. Валерий Игнатьев | 1. Статический анализ иcходного кода. Поиск ошибок в программах на языке C# (SharpChecker/Svace): — Разработка детекторов ошибок безопасности / потенциальных уязвимостей, таких как утечка данных, внедрение кода или данных, например, SQL injection. — Поддержка кеширования резюме функций для повторного анализа. 2. Генерация больших датасетов для дообучения и тестирования больших языковых моделей и других ML подходов: — по результатам статического анализатора; — метрики; — абстрактное синтаксическое дерево; — граф вызовов, граф зависимостей; — символы, граф типов. 3. Использование больших языковых моделей в статическом анализе исходного кода. 4. Поиск ошибок безопасности в исходном коде на языках С и C++ методами статического анализа помеченных данных (Irbis): — Улучшение интеграции со Svace; — Разработка менеджера ресурсов для достижения масштабируемости и эффективной работы на разных аппаратных платформах; — Поддержка Windows. 5. Поиск ошибок по истории коммитов в репозитории. 6. Языково-независимый поиск ошибок вида «перепутанная переменная» в исходном коде с помощью методов машинного обучения. Верификация найденных предупреждений с помощью больших языковых моделей. |