Analyse de la correction des erreurs dans le noyau Linux — en moyenne, les erreurs sont remarquées après 2 ans

Les résultats d'une étude sur le temps de détection et de correction des erreurs dans le noyau Linux ont été publiés. Les données proviennent de l'analyse de 125 000 erreurs annotées dans le dépôt Git avec le tag « Fixes : », se référant au commit où l'erreur a été introduite. Le temps moyen de détection des erreurs dans le noyau était de 2,1 ans. En ne considérant que les erreurs corrigées en 2025, ce chiffre était de 2,8 ans.

30 % des erreurs ont été corrigées par les mêmes développeurs qui les ont introduites. 56,9 % des erreurs sont résolues dans l'année qui suit. 13,5 % des erreurs sont restées non détectées pendant plus de 5 ans (en ne tenant compte que des erreurs corrigées en 2025 — 19,4 %). En raison de la répartition inégale, le temps médian d'existence d'une erreur dans le code du noyau a été de 8 mois pour l'échantillon à partir de 2005 et de 1 an pour les erreurs corrigées en 2025. L'erreur la plus persistante dans le code a été un débordement de tampon dans ethtool, corrigé après 20,7 ans.

Analyse des corrections des erreurs dans le noyau Linux - en moyenne, les erreurs sont remarquées au bout de 2 ans.

La dynamique de détection des erreurs varie considérablement par rapport à la moyenne pour certaines sous-systèmes, par exemple, dans le pilote de bus CAN et la pile SCTP, la détection des problèmes prend en moyenne environ 4 ans, dans la pile IPv4 — 3,6 ans, USB et TTY — 3,5 ans, Netfilter et la pile réseau — 2,9 ans, VM — 1,8 ans, GPU — 1,4 ans, BPF — 1,1 an.

Analyse des corrections des erreurs dans le noyau Linux - en moyenne, les erreurs sont remarquées au bout de 2 ans.

Le temps de détection corrèle avec les types d'erreurs : le temps moyen de détection pour les erreurs liées aux conditions de concurrence était de 5,1 ans, pour le débordement d'entier — 3,9 ans, pour les accès à la mémoire libérée — 3,2 ans, pour le débordement de tampon et les fuites de mémoire — 3,1 ans, pour le comptage des références — 2,8 ans, pour la déréférence de pointeur nul et les interblocages — 2,2 ans.

Les statistiques mettent également en évidence l'impact de l'introduction de nouveaux outils pour la détection automatisée des erreurs, l'analyse statique et les tests de code, tels que Syzkaller, KASAN, KMSAN et KCSAN. Par exemple, en 2010, aucune correction d'erreurs n'avait été enregistrée pendant l'année. En 2014, 31 % des erreurs étaient détectées en un an, en 2018 — 54 %, et en 2022 — 69 % des erreurs.

Les statistiques obtenues ont été utilisées pour créer le modèle d'apprentissage automatique VulnBERT, permettant de prédire la présence de vulnérabilités dans les commits. Lors des tests sur les commits de 2024, la précision de détection des erreurs a atteint 92,2 % avec un taux de faux positifs de 1,2 % (pour comparaison, le modèle précédent CodeBERT détectait 89,2 % des problèmes avec un taux de faux positifs de 48,1 %).

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster