Analyse von Fehlerbehebungen im Linux-Kernel — im Durchschnitt werden Fehler nach 2 Jahren bemerkt.

Die Ergebnisse der Untersuchung zur Entdeckungs- und Behebungszeit von Fehlern im Linux-Kernel wurden veröffentlicht. Die Daten stammen aus der Analyse von 125.000 Fehlern, die im Git-Repository mit dem Tag „Fixes:“ gekennzeichnet sind, der auf den Commit verweist, in dem der Fehler aufgetreten ist. Die durchschnittliche Entdeckungszeit für Fehler im Kernel betrug 2,1 Jahre. Betrachtet man nur die Fehler, die im Jahr 2025 behoben wurden, liegt dieser Wert bei 2,8 Jahren.

30 % der Fehler wurden von denselben Entwicklern behoben, die die Fehler verursacht haben. 56,9 % der Fehler werden innerhalb eines Jahres behoben. 13,5 % der Fehler blieben über 5 Jahre unentdeckt (bei den im Jahr 2025 behobenen Fehlern lag dieser Wert bei 19,4 %). Aufgrund der ungleichmäßigen Verteilung betrug die mediane Existenzzeit eines Fehlers im Kernel-Code 8 Monate für die Stichprobe seit 2005 und 1 Jahr für die Fehler, die 2025 behoben wurden. Der am längsten im Code verbliebene Fehler war ein Bufferüberlauf in ethtool, der nach 20,7 Jahren behoben wurde.

Analyse der Fehlerbehebung im Linux-Kernel - im Durchschnitt werden Fehler nach 2 Jahren bemerkt.

Die Fehlererkennungsdynamik weicht deutlich vom Durchschnittswert für einige Teilsysteme ab. So dauert die Problemerkennung im CAN-Bus-Treiber und im SCTP-Stack im Durchschnitt etwa 4 Jahre, im IPv4-Stack 3,6 Jahre, bei USB und TTY 3,5 Jahre, bei Netfilter und im Netzwerkstack 2,9 Jahre, bei VMs 1,8 Jahre, bei GPUs 1,4 Jahre und bei BPF 1,1 Jahre.

Analyse der Fehlerbehebung im Linux-Kernel - im Durchschnitt werden Fehler nach 2 Jahren bemerkt.

Die Erkennungszeit korreliert mit den Fehlertypen: Die durchschnittliche Zeit zur Entdeckung von Fehlern, die mit Race Conditions zusammenhängen, betrug 5,1 Jahre, bei Integer Overflow 3,9 Jahre, beim Zugriff nach Freigabe des Speichers 3,2 Jahre, bei Pufferüberlauf und Speicherlecks 3,1 Jahre, bei der Zählerverwaltung 2,8 Jahre, und beim Dereferenzieren von Nullzeigern sowie bei Deadlocks 2,2 Jahre.

In den erhobenen Statistiken zeigt sich auch, dass die Einführung neuer Werkzeuge zur automatisierten Fehlererkennung, statischen Analyse und Code-Testung, wie Syzkaller, KASAN, KMSAN und KCSAN, einen Einfluss hat. Beispielsweise gab es im Jahr 2010 keine dokumentierten Fehlerkorrekturen, die im Laufe des Jahres gefunden wurden. Im Jahr 2014 wurden jedoch 31 % der Fehler innerhalb eines Jahres identifiziert, 2018 waren es 54 % und 2022 sogar 69 % der Fehler.

Die erhaltenen Statistiken wurden zur Erstellung des maschinellen Lernmodells VulnBERT verwendet, das die Vorhersage von Schwachstellen in Commits ermöglicht. Bei Tests an Commits aus dem Jahr 2024 lag die Fehlererkennungsgenauigkeit bei 92,2 % mit einer Fehlalarmquote von 1,2 % (zum Vergleich: Das zuvor verfügbare Modell CodeBERT identifizierte 89,2 % der Probleme bei einer Fehlalarmquote von 48,1 %).

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster