Objavljeni so rezultati raziskave časa odkrivanja in odpravljanja napak v izvorni kodi jedra Linuxa. Podatki so pridobljeni z analizo odprave 125 tisoč napak, označenih v Git repozitoriju z oznako „Fixes:“, ki se sklicuje na commit, v katerem je nastala napaka. Povprečen čas odkrivanja napak v jedru je bil 2.1 leta. Če upoštevamo le napake, odpravljene leta 2025, je ta čas znašal 2.8 leta.
30% napak so odpravili isti razvijalci, ki so jih tudi naredili. 56.9% napak odstranijo v enem letu. 13.5% napak je ostalo neopaženih več kot 5 let (če upoštevamo le napake, odpravljene leta 2025 — 19.4%). Zaradi neenakomerne porazdelitve je mediana časa obstoja napake v izvorni kodi znašala 8 mesecev za vzorec iz leta 2005 in 1 leto za napake, odpravljene leta 2025. Najdaljša obstoječa napaka v kodi je bila prelivanje pomnilnika v ethtool, odpravljena po 20.7 letih.

Dinamika odkrivanja napak se znatno razlikuje od povprečne vrednosti za nekatere pod sisteme, na primer v gonilniku magistrale CAN in protokolu SCTP, kjer odkrivanje težav v povprečju traja približno 4 leta, v IPv4 stogu — 3.6 leta, USB in TTY — 3.5, Netfilter in omrežni stek — 2.9, VM — 1.8, GPU — 1.4, BPF — 1.1 leta.

Čas odkritja se korelira z vrstami napak: povprečen čas odkrivanja napak, povezanih s tekmovanjem stanj, znaša 5.1 leta, celoštevilsko prelivanje — 3.9, dostop po osvoboditvi pomnilnika — 3.2, prelivanje bufra in puščanje pomnilnika — 3.1, štetje referenc — 2.8, dereferenciranje ničelnega kazalca in medsebojno zaklepanje — 2.2 leta.
V pridobljeni statistiki se prav tako kaže vpliv uvajanja novih orodij za avtomatizirano iskanje napak, statično analizo in testiranje kode, kot so Syzkaller, KASAN, KMSAN in KCSAN. Na primer, leta 2010 ni bilo zabeleženih odpravnitev napak, najdenih v enem letu. Medtem ko je bilo leta 2014 v enem letu odkritih 31% napak, leta 2018 — 54%, leta 2022 pa — 69% napak.
Prejete statistike so bile uporabljene za ustvarjanje modela strojnega učenja VulnBERT, ki omogoča napovedovanje prisotnosti ranljivosti v commitih. Pri testiranju na commitih iz leta 2024 je bila natančnost zaznavanja napak 92,2 % pri stopnji lažnih alarmov 1,2 % (za primerjavo, prej dostopni model CodeBERT je odkril 89,2 % težav pri stopnji lažnih alarmov 48,1 %).
Izvor: opennet.ru
