Analiza ispravaka grešaka u kernelu Linux — u prosjeku se greške uočavaju nakon 2 godine

Objavljeni su rezultati studije o vremenu potrebnom za otkrivanje i ispravljanje pogrešaka u jezgri. LinuxPodaci su dobiveni analizom ispravaka 125 000 grešaka označenih u Git repozitoriju oznakom "Fixes:", koja upućuje na commit u kojem je greška uvedena. Prosječno vrijeme otkrivanja grešaka u kernelu bilo je 2.1 godina. Ako uzmemo u obzir samo greške ispravljene u 2025. godini, ta je brojka iznosila 2.8 godina.

30% grešaka ispravili su isti programeri koji su ih i uveli. 56.9% grešaka ispravljeno je unutar godine dana. 13.5% grešaka ostalo je neotkriveno dulje od 5 godina (ako uzmemo u obzir samo greške ispravljene 2025. godine, ta brojka iznosi 19.4%). Zbog neravnomjerne raspodjele, medijan životnog vijeka kernel greške bio je 8 mjeseci za uzorak od 2005. godine i 1 godina za greške ispravljene 2025. godine. Najdugovječnija greška bila je prekoračenje međuspremnika u ethtoolu, ispravljena nakon 20.7 godina.

 Analiza ispravaka grešaka u kernelu Linux - u prosjeku se greške uočavaju nakon 2 godine

Dinamika otkrivanja pogrešaka značajno se razlikuje od prosjeka za neke podsustave. Na primjer, u CAN bus driveru i SCTP stogu, identificiranje problema traje u prosjeku oko 4 godine, u IPv4 stogu - 3.6 godina, USB i TTY - 3.5, Netfilter i mrežni stog - 2.9, VM - 1.8, GPU - 1.4, BPF - 1.1 godina.

 Analiza ispravaka grešaka u kernelu Linux - u prosjeku se greške uočavaju nakon 2 godine

Vremena otkrivanja koreliraju s vrstama grešaka: prosječno vrijeme otkrivanja uvjeta utrke bilo je 5.1 godina, prekoračenja cijelih brojeva 3.9, korištenja nakon oslobađanja 3.2, prekoračenja međuspremnika i curenja memorije 3.1, brojanja referenci 2.8 te dereferenciranja i zastoja NULL pokazivača 2.2 godine.

Statistika također odražava utjecaj uvođenja novih alata za automatizirano otkrivanje pogrešaka, statičku analizu i testiranje koda, kao što su Syzkaller, KASAN, KMSAN i KCSAN. Na primjer, 2010. godine nijedna pronađena greška nije ispravljena unutar godine dana. U međuvremenu, 2014. godine 31% grešaka pronađeno je unutar godine dana, 2018. godine ta je brojka iznosila 54%, a 2022. godine ta je brojka iznosila 69%.

Dobivena statistika korištena je za stvaranje modela strojnog učenja VulnBERT, koji predviđa ranjivosti u commitima. Prilikom testiranja na commitima iz 2024. godine, točnost detekcije bila je 92.2% sa stopom lažno pozitivnih od 1.2% (za usporedbu, prethodno dostupni CodeBERT model otkrio je 89.2% problema sa stopom lažno pozitivnih od 48.1%).

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster