GitHub ha annunciato l'aggiunta di un sistema sperimentale di machine learning per il codice nel servizio Code scanning, per identificare i tipi comuni di vulnerabilità nel codice. Durante la fase di test, questa nuova funzionalità è attualmente disponibile solo per i repository contenenti codice in JavaScript e TypeScript. È stato notato che l'uso del sistema di machine learning ha notevolmente ampliato la gamma di problemi identificabili, in quanto l'analisi non è più limitata alla verifica dei modelli standard e non è vincolata a framework noti. Tra i problemi identificati dal nuovo sistema si citano errori che portano a script cross-site (XSS), distorsione dei percorsi dei file (ad esempio, tramite l'indicazione «/..»), e sostituzione di query SQL e NoSQL.
Il servizio di scansione del codice permette di identificare vulnerabilità nelle fasi iniziali dello sviluppo, attraverso la scansione di ogni operazione «git push» per rilevare potenziali problemi. Il risultato è allegato direttamente alla pull request. In precedenza, il controllo era effettuato usando il motore CodeQL, che analizzava i pattern con esempi tipici di codice vulnerabile (CodeQL consente di creare un pattern di codice vulnerabile per identificare la presenza di vulnerabilità simili in altri progetti). Il nuovo motore, che utilizza l'apprendimento automatico, può identificare vulnerabilità sconosciute poiché non è legato a un approccio basato sulla ricerca di pattern di codice che descrivono vulnerabilità specifiche. Il prezzo di questa capacità è un aumento del numero di falsi positivi rispetto ai controlli basati su CodeQL.
Fonte: opennet.ru
