IN CHE MODO MICROSOFT UTILIZZA L’APPRENDIMENTO AUTOMATICO PER PROTEGGERE IL SUO CICLO DI SVILUPPO SOFTWARE
Il gigante della tecnologia Microsoft ha recentemente creato un sistema di classificazione dell’apprendimento automatico che mira a proteggere il ciclo di vita dello sviluppo del software. Il sistema di apprendimento automatico aiuta a classificare i bug come sicurezza o non sicurezza e critici o non critici. Ciò fornisce un livello di precisione, simile a quello fornito dagli esperti di sicurezza.
Gli sviluppatori software di Microsoft affrontano diversi problemi e vulnerabilità. Più di 45.000 sviluppatori generano quasi 30.000 bug al mese, che vengono archiviati in oltre 100 repository AzureDevOps e GitHub. Il gigante della tecnologia sta cercando di mitigare queste vulnerabilità.
Dal 2001, il colosso della tecnologia ha raccolto 13 milioni di oggetti di lavoro e bug. Secondo fonti , Microsoft spende circa $ 150.000 per ogni problema per mitigare bug e vulnerabilità.
Tuttavia, secondo gli sviluppatori, poiché ci sono più di 45.000 sviluppatori che stanno già lavorando per risolvere il problema, non è possibile applicare più risorse umane per etichettare meglio e dare priorità ai bug.
Per costruire il modello di apprendimento automatico, il colosso della tecnologia ha usato 13 milioni di oggetti di lavoro e bug per addestrare il modello che avevano raccolto per due decenni. Hanno dichiarato: “Abbiamo utilizzato questi dati per sviluppare un modello di processo e di apprendimento automatico che distingue correttamente tra bug di sicurezza e non di sicurezza il 99% delle volte e identifica con precisione i bug critici di alta priorità del 97% delle volte”.
Dietro il sistema di classificazione
Poiché grandi volumi di dati semi-curati sono adeguati per le attività di apprendimento automatico, i team di scienza e sicurezza dei dati del gigante della tecnologia si sono riuniti per costruire il sistema di apprendimento automatico supervisionato.
Nell’apprendimento supervisionato, un modello di apprendimento automatico impara come classificare i dati da dati pre-etichettati. Gli sviluppatori ML del colosso tecnologico hanno alimentato il modello con un gran numero di bug, che sono organizzati in sicurezza etichettata e altri che non sono etichettati sicurezza.
Per fare in modo che il sistema di classificazione dell’apprendimento automatico funzioni come un esperto di sicurezza, i dati di addestramento sono stati inizialmente approvati dagli esperti di sicurezza prima di essere inseriti nel modello di apprendimento automatico.
Per creare un modello di apprendimento automatico che offra la massima precisione, gli sviluppatori hanno seguito un approccio in azione, che comprende cinque processi:
Raccolta dei dati: per la raccolta dei dati, lo sviluppatore ha identificato tutti i tipi e le fonti di dati e ne ha valutato la qualità
Cura e approvazione dei dati: in questo approccio, l’esperto di sicurezza ha esaminato i dati e ha confermato che le etichette sono corrette
Modellazione e valutazione: in questo approccio, viene selezionata una tecnica di modellazione dei dati, il modello viene addestrato e le prestazioni vengono valutate
Valutazione del modello in produzione: in questo approccio, gli esperti di sicurezza hanno valutato il modello in produzione monitorando il numero medio di bug e rivedendo manualmente un campionamento casuale di bug
Re-training automatizzato: gli sviluppatori hanno quindi effettuato un re-training automatico per assicurarsi che il sistema di modellazione dei bug mantenga il giusto ritmo con i prodotti in continua evoluzione di Microsoft
Come funziona
Gli sviluppatori di ML hanno utilizzato il campionamento statistico per fornire agli esperti di sicurezza una quantità gestibile di dati da esaminare. Per classificare i bug in modo accurato, hanno utilizzato un’operazione del modello di apprendimento automatico in due passaggi.
Il primo passo per il modello di apprendimento automatico è imparare a classificare i bug di sicurezza e non di sicurezza. Nella seconda fase, il modello di apprendimento automatico ha applicato etichette di gravità quali critiche, importanti e di basso impatto ai bug di sicurezza.
Riassumendo
Applicando questo sistema di classificazione dell’apprendimento automatico, gli sviluppatori possono ora classificare accuratamente quali elementi di lavoro sono bug di sicurezza il 99% delle volte. Il modello mostra anche un tasso di accuratezza del 97% quando si tratta di etichettare i bug di sicurezza critici e non critici.
Gli sviluppatori hanno dichiarato: “Questo livello di accuratezza ci dà la sicurezza che stiamo rilevando più vulnerabilità di sicurezza prima che vengano sfruttate”. Hanno aggiunto: “Nei prossimi mesi, open-source la nostra metodologia su GitHub”.