L'analisi della correzione degli errori nel kernel Linux — in media gli errori vengono notati dopo 2 anni

Sono stati pubblicati i risultati di uno studio sul tempo di rilevamento e correzione degli errori nel kernel Linux. I dati sono stati ottenuti analizzando la correzione di 125.000 errori contrassegnati nel repository Git con il tag «Fixes:», che si riferisce al commit in cui si è verificato l'errore. Il tempo medio di rilevamento degli errori nel kernel è stato di 2,1 anni. Considerando solo gli errori corretti nel 2025, questo valore è salito a 2,8 anni.

Il 30% degli errori è stato corretto dagli stessi sviluppatori che li hanno introdotti. Il 56,9% degli errori viene risolto entro un anno. Il 13,5% degli errori sono rimasti non rilevati per oltre 5 anni (considerando solo gli errori corretti nel 2025, la percentuale è del 19,4%). A causa della distribuzione irregolare, il tempo mediano di esistenza di un errore nel codice del kernel è stato di 8 mesi per il campione dal 2005 e di 1 anno per gli errori corretti nel 2025. L'errore che è rimasto più a lungo nel codice è stato un overflow del buffer in ethtool, corretto dopo 20,7 anni.

L'analisi della correzione degli errori nel kernel Linux - in media gli errori vengono notati dopo 2 anni

La dinamica di rilevamento degli errori differisce significativamente dalla media per alcune sottosistemi; ad esempio, nel driver del bus CAN e nello stack SCTP, il rilevamento dei problemi richiede in media circa 4 anni, nello stack IPv4 3,6 anni, in USB e TTY 3,5, in Netfilter e stack di rete 2,9, in VM 1,8, in GPU 1,4 e in BPF 1,1 anno.

L'analisi della correzione degli errori nel kernel Linux - in media gli errori vengono notati dopo 2 anni

Il tempo di rilevamento è correlato ai tipi di errori: il tempo medio di rilevamento degli errori legati alle condizioni di race è stato di 5,1 anni, per overflow intero di 3,9, per accesso dopo il rilascio della memoria di 3,2, per overflow del buffer e perdite di memoria di 3,1, per conteggio dei riferimenti di 2,8 e per dereferenza di puntatore nullo e deadlock di 2,2 anni.

Nelle statistiche ottenute si evidenzia anche l'influenza dell'introduzione di nuovi strumenti per la ricerca automatizzata di errori, analisi statica e test del codice, come Syzkaller, KASAN, KMSAN e KCSAN. Ad esempio, nel 2010 non sono state registrate correzioni di errori rilevati nell'arco di un anno. Nel 2014, durante lo stesso periodo, veniva rilevato il 31% degli errori, nel 2018 il 54% e nel 2022 il 69% degli errori.

Le statistiche ottenute sono state utilizzate per creare il modello di machine learning VulnBERT, che permette di prevedere la presenza di vulnerabilità nei commit. Durante i test sui commit del 2024, la precisione nella rilevazione degli errori è stata del 92,2% con un tasso di falsi positivi dell'1,2% (a titolo di confronto, il modello CodeBERT precedentemente disponibile rilevava l'89,2% dei problemi con un tasso di falsi positivi del 48,1%).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster