
Ученые из Национального исследовательского университета «МИЭТ» создали новый инструмент, призванный облегчить работу программистов. Этот инструмент позволяет выявлять потенциально опасные участки кода до запуска программы. Итоги разработки представлены в материалах конференции «2025 International Russian Smart Industry Conference (SmartIndustryCon)».
В процессе написания программного обеспечения специалисты часто совершают ошибки, в результате чего в коде могут появляться лишние или даже вредоносные инструкции. Особенно это характерно для студентов-программистов, которые создают множество проектов, требующих тщательной проверки.
Подобные нежелательные элементы способны не только ухудшать производительность приложений, но и наносить вред устройству. Ручной поиск таких «закладок» занимает значительное время и требует много усилий.
Для автоматизации этого процесса в НИУ МИЭТ разработали программный анализатор — своего рода «умного редактора» кода. Он осуществляет проверку программ без их запуска, используя метод статического анализа, и находит потенциально проблемные участки.
Принцип работы основан на лексическом анализе: код разделяется на минимальные элементы, аналогично делению текста на слова. Далее строится дерево разбора — структурное представление исходного кода, на котором с помощью специализированных алгоритмов происходит обнаружение подозрительных команд.
«Существующие решения чаще выявляют гипотетические уязвимости, не всегда отличая их от реальных угроз, и иногда дают ложные срабатывания. Мы научили систему присваивать каждому участку кода показатель «вредоносности», что позволяет точнее выявлять настоящие опасности», — пояснил профессор Евгений Портнов из Института системной и программной инженерии и информационных технологий НИУ МИЭТ.
По словам исследователя, уровень точности разработанного анализатора достигает 96%, что обеспечивает проверку на уровне эксперта.
Помимо выявления явно вредоносных команд, инструмент также находит неэффективные элементы, мешающие производительности, что способствует улучшению качества программ. Хотя часть функций связана с вопросами безопасности, данный инструмент не является антивирусным программным обеспечением в привычном понимании.
Программа рассчитана на широкий круг пользователей с базовыми знаниями программирования — от студентов, проверяющих свои проекты, до профессиональных разработчиков, желающих оптимизировать код перед релизом. Проект выполнен в рамках инициативы «Инфобез: супергерои на страже ваших данных» при поддержке гранта Министерства науки и высшего образования России в рамках Десятилетия науки и технологий.