Intel опубликовала инструмент поиска ошибок в коде ControlFlag версии 1.0

Системная ошибка pixabay.com
Системная ошибка pixabay.com

Первую полноценную версию инструмента «интеллектуального» поиска ошибок в исходных кодах программ на языках программирования C и C++ ControlFlag 1.0 опубликовала компания Intel 18 ноября в публичном хранилище проекта на ресурсе GitHub.

Проект ControlFlag отличается от статических анализаторов кода. Он не пытается анализировать код с использованием набора готовых правил, а использует модели глубокого обучения для анализа на основе собранной статистики из исходных кодов множества программ.

Для обучения берутся исходные коды открытых программных проектов, опубликованных на GitHub и других хранилищах текстов программ. На этапе обучения ControlFlag определяет типовые шаблоны построения конструкций в программном коде и строит синтаксическое дерево связей между этими шаблонами, отражающее поток выполнения кода.

В качестве результат обучения формируется дерево принятия решений, с которым позже и сравниваются выявленные шаблоны в текстах анализируемой программы. Значительная разница при сравнении (порог разницы задан формулой) свидетельствует об аномалиях в анализируемом коде.

Для демонстрации команда разработки продукта представила результаты анализа двух популярных программных продуктов с открытым исходным кодом — OpenSSL и cURL. Обе программы проходят регулярную проверку с помощью статически анализаторов.

ControlFlag выявила незначительные ошибки в исходных текстах обеих программ. Ошибки являются, по всей видимости, опечатками. Но они могут служить потенциальной причиной некорректного поведения программ.