Intel pubblica ControlFlag 1.2, uno strumento per rilevare anomalie nel codice sorgente

Intel ha pubblicato il rilascio di ControlFlag 1.2, un toolkit che consente di identificare errori e anomalie nel codice sorgente utilizzando un sistema di machine learning addestrato su una grande quantitΓ  di codice esistente. A differenza dei tradizionali analizzatori statici, ControlFlag non applica regole giΓ  pronte, in cui Γ¨ difficile prevedere tutte le opzioni possibili, ma si basa su statistiche sull'uso di vari costrutti linguistici in un gran numero di progetti esistenti. Il codice ControlFlag Γ¨ scritto in C++ ed Γ¨ open source con licenza MIT.

La nuova versione si distingue per l'implementazione del supporto completo per il rilevamento e l'apprendimento delle anomalie basato su modelli di codice comuni per il linguaggio C++. Nelle versioni precedenti veniva fornito un supporto simile per i linguaggi C e PHP. Il sistema Γ¨ adatto per identificare vari tipi di problemi nel codice, dall'identificazione di errori di battitura e tipi non corrispondenti, all'identificazione di anomalie nelle istruzioni if ​​e controlli NULL mancanti nei puntatori. Il sistema viene addestrato costruendo un modello statistico dell'array di codice esistente di progetti open source in C, C++ e PHP, pubblicato su GitHub e repository pubblici simili.

Nella fase di addestramento, il sistema determina modelli tipici per la costruzione di strutture nel codice e costruisce un albero sintattico di connessioni tra questi modelli, riflettendo il flusso di esecuzione del codice nel programma. Di conseguenza, si forma un albero decisionale di riferimento che unisce l'esperienza di sviluppo di tutti i codici sorgente analizzati. Il codice in esame viene sottoposto a un processo simile di identificazione di modelli che vengono confrontati con un albero decisionale di riferimento. Grandi discrepanze con i rami vicini indicano la presenza di un'anomalia nel modello in esame.

Intel pubblica ControlFlag 1.2, uno strumento per rilevare anomalie nel codice sorgente


Fonte: opennet.ru

Aggiungi un commento