Analiza corectării erorilor în kernelul Linux — în medie, erorile sunt observate după 2 ani

Au fost publicate rezultatele studiului privind timpul de detectare și remediere a erorilor în codul nucleului Linux. Datele au fost obținute în urma analizei a 125 de mii de erori, marcate în repositoul Git cu eticheta „Fixes:”, referitoare la commit-ul în care a apărut eroarea. Timpul mediu de detectare a erorilor în nucleu a fost de 2,1 ani. Dacă luăm în considerare doar erorile corectate în 2025, acest indicator a fost de 2,8 ani.

30% din erori au fost corectate de aceiași dezvoltatori care le-au introdus. 56,9% din erori sunt remediate în decurs de un an. 13,5% din erori au rămas neobservate mai mult de 5 ani (dacă analizăm doar erorile remediate în 2025 — 19,4%). Din cauza distribuției inegale, timpul median de existență al unei erori în codul nucleului a fost de 8 luni pentru eșantionul din 2005 și de 1 an pentru erorile corectate în 2025. Cea mai persistentă eroare din cod a fost o depășire de buffer în ethtool, remediată după 20,7 ani.

Analiza corectării erorilor în nucleul Linux - în medie, erorile sunt observate după 2 ani.

Dinamica detectării erorilor variază semnificativ de media pentru anumite subsisteme; de exemplu, în driver-ul autobuzei CAN și în stiva SCTP, identificarea problemelor durează în medie aproximativ 4 ani, în stiva IPv4 — 3,6 ani, USB și TTY — 3,5, Netfilter și stiva de rețea — 2,9, VM — 1,8, GPU — 1,4, BPF — 1,1 ani.

Analiza corectării erorilor în nucleul Linux - în medie, erorile sunt observate după 2 ani.

Timpul de detectare corelează cu tipurile de erori: timpul mediu de detectare a erorilor legate de stările de competiție a fost de 5,1 ani, depășire de întreg — 3,9, acces după eliberarea memoriei — 3,2, depășire de buffer și scurgeri de memorie — 3,1, numărarea referințelor — 2,8, dereferentisarea unui pointer nul și blocajele reciproce — 2,2 ani.

Statisticile obținute arată de asemenea influența introducerii de noi instrumente pentru căutarea automatizată a erorilor, analiza statică și testarea codului, cum ar fi Syzkaller, KASAN, KMSAN și KCSAN. De exemplu, în 2010 nu au fost înregistrate corecturi ale erorilor identificate într-un an. În timp ce în 2014 se identificau în decursul unui an 31% din erori, în 2018 — 54%, iar în 2022 — 69% din erori.

Statisticile obținute au fost folosite pentru a crea modelul de învățare automată VulnBERT, capabil să prezică prezența vulnerabilităților în comituri. În testarea pe comituri din anul 2024, acuratețea detectării erorilor a fost de 92,2%, cu o rată de alarme false de 1,2% (pentru comparație, modelul anterior CodeBERT identifica 89,2% din probleme, cu o rată de alarme false de 48,1%).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster