Выпуск ControlFlag 1.0, инструмента для выявления ошибок в коде на языке Си
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Компания Intel опубликовала первый значительный релиз инструментария ControlFlag 1.0, позволяющего выявлять ошибки и аномалии в исходных текстах, используя систему машинного обучения, натренированную на большом объёме существующего кода. В отличие от традиционных статических анализаторов, ControlFlag не применяет готовых правил, в которых трудно предусмотреть все возможные варианты, а отталкивается от статистики использования всевозможных языковых конструкций в большом числе существующих проектов. Код ControlFlag написан на языке С++ и открыт под лицензией MIT.
Система обучается путём построения статистической модели имеющегося массива кода открытых проектов, опубликованных в GitHub и подобных публичных репозиториях. На стадии обучения система определяет типовые шаблоны построения конструкций в коде и строит синтаксическое дерево связей между этими шаблонами, отражающее поток выполнения кода в программе. В итоге формируется эталонное дерево принятия решений, объединяющее опыт разработки всех проанализированных исходных текстов. Для проверяемого кода выполняется похожий процесс определения шаблонов, которые сверяются с эталонным деревом принятия решений. Большие расхождения с соседними ветвями свидетельствуют о наличии аномалии в проверяемом шаблоне.
В качестве примера возможностей ControlFlag разработчиками был проведён анализ исходных текстов проектов OpenSSH и cURL:
- В OpenSSL были выявлены аномальные конструкции "(s1 == NULL) ∧ (s2 == NULL)" и "(s1 == NULL) | (s2 == NULL)" , не соответствующие обычно используемому шаблону "(s1 == NULL) || (s2 == NULL)". В коде также были выявлены аномалии в выражениях "(-2 == rv)" (минус был опечаткой) и "BIO_puts(bp, ":") <= 0)" (в контексте проверки успешного завершения функции должно было быть "== 0").
- В cURL выявлена незамеченная статическими анализаторами ошибка при использовании элемента структуры "s->keepon", который имел числовой тип, но сравнивался с булевым значением TRUE.
Из особенностей версии ControlFlag 1.0 отмечается полная поддержка типовых шаблонов для языка Си и возможность выявления аномалий в условных выражениях "if". Например, при анализе фрагмента кода "if (x = 7) y = x;" система определит, что обычно в операторе "if" для сравнения числовых значений используется конструкция "переменная == число", поэтому с большой вероятностью указание "переменная = число" в выражении "if" вызвано опечаткой. В комплекте предоставляется сценарий, позволяющий загрузить имеющиеся в GitHub репозитории на языке Си и использовать их для построения модели. Также доступны уже готовые модели, позволяющие сразу приступить к проверке кода.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/IntelLabs/c...)
- OpenNews: Выпуск PHPStan 1.0, статического анализатора для кода на языке PHP
- OpenNews: Выпуск cppcheck 2.6, статического анализатора кода для языков C++ и С
- OpenNews: Facebook открыл код статического анализатора Mariana Trench
- OpenNews: Intel открыл код системы машинного обучения ControlFlag для выявления ошибок в коде
- OpenNews: Релиз свободного статического анализатора кода frama-clang 0.0.5
Похожие новости:
- Уязвимости в процессорах AMD и Intel
- Компания Canonical представила сборки Ubuntu, оптимизированные для процессоров Intel
- Intel открыл код системы машинного обучения ControlFlag для выявления ошибок в коде
- Атака на Intel SGX, позволяющая извлечь конфиденциальные данные или выполнить код в анклаве
- [FPGA, Системы сборки, DevOps, Производство и разработка электроники] Continuous Integration для Intel FPGA (Altera)
- [Python, Алгоритмы, Big Data, Машинное обучение, Искусственный интеллект] Open Data Science Odessa Meetup #3
- [Хранение данных, Хранилища данных] DAOS — современный подход к хранению данных
- [Python, Алгоритмы, Big Data, Машинное обучение, Искусственный интеллект] Data Phoenix Digest — 08.07.2021
- [Информационная безопасность] Отделить зерна от плевел: наши наработки по ранжированию индикаторов компрометации
- [Процессоры, IT-компании] Intel и Apple планируют первыми выйти на рынок с 3-нм процессорами TSMC
Теги для поиска: #_controlflag, #_intel
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Компания Intel опубликовала первый значительный релиз инструментария ControlFlag 1.0, позволяющего выявлять ошибки и аномалии в исходных текстах, используя систему машинного обучения, натренированную на большом объёме существующего кода. В отличие от традиционных статических анализаторов, ControlFlag не применяет готовых правил, в которых трудно предусмотреть все возможные варианты, а отталкивается от статистики использования всевозможных языковых конструкций в большом числе существующих проектов. Код ControlFlag написан на языке С++ и открыт под лицензией MIT. Система обучается путём построения статистической модели имеющегося массива кода открытых проектов, опубликованных в GitHub и подобных публичных репозиториях. На стадии обучения система определяет типовые шаблоны построения конструкций в коде и строит синтаксическое дерево связей между этими шаблонами, отражающее поток выполнения кода в программе. В итоге формируется эталонное дерево принятия решений, объединяющее опыт разработки всех проанализированных исходных текстов. Для проверяемого кода выполняется похожий процесс определения шаблонов, которые сверяются с эталонным деревом принятия решений. Большие расхождения с соседними ветвями свидетельствуют о наличии аномалии в проверяемом шаблоне. В качестве примера возможностей ControlFlag разработчиками был проведён анализ исходных текстов проектов OpenSSH и cURL:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 21-Ноя 21:41
Часовой пояс: UTC + 5