Анализ исправлСния ошибок Π² ядрС Linux — Π² срСднСм ошибки Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· 2 Π³ΠΎΠ΄Π°

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ исслСдования Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ обнаруТСния ΠΈ устранСния ошибок Π² ΠΊΠΎΠ΄Π΅ ядра Linux. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Π½Π°Π»ΠΈΠ·Π° исправлСния 125 тысяч ошибок, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Π² Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‚Π΅Π³ΠΎΠΌ Β«Fixes:Β», ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΌΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка. Π‘Ρ€Π΅Π΄Π½Π΅Π΅ врСмя обнаруТСния ошибок Π² ядрС составило 2.1 Π³ΠΎΠ΄Π°. Если Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки, исправлСнныС Π² 2025 Π³ΠΎΠ΄Ρƒ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ составил 2.8 Π³ΠΎΠ΄Π°.

30% ошибок Π±Ρ‹Π»ΠΈ исправлСны Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ внСсли ошибки. 56.9% ошибок ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π°. 13.5% ошибок ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 5 Π»Π΅Ρ‚ (Ссли Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки, исправлСнныС Π² 2025 Π³ΠΎΠ΄Ρƒ β€” 19.4%). Из-Π·Π° нСравномСрности распрСдСлСния ΠΌΠ΅Π΄ΠΈΠ°Π½Π½ΠΎΠ΅ врСмя сущСствования ошибки Π² ΠΊΠΎΠ΄Π΅ ядра составило 8 мСсяцСв для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с 2005 Π³ΠΎΠ΄Π° ΠΈ 1 Π³ΠΎΠ΄ для ошибок, исправлСнных Π² 2025 Π³ΠΎΠ΄Ρƒ. НаиболСС Π΄ΠΎΠ»Π³ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΠ²ΡˆΠ΅ΠΉΡΡ Π² ΠΊΠΎΠ΄Π΅ ошибкой стало ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° Π² ethtool, устранённоС спустя 20.7 Π»Π΅Ρ‚.

 Анализ исправлСния ошибок Π² ядрС Linux - Π² срСднСм ошибки Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· 2 Π³ΠΎΠ΄Π°

Π”ΠΈΠ½Π°ΠΌΠΈΠΊΠ° обнаруТСния ошибок Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ отличаСтся ΠΎΡ‚ срСднСго значСния для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подсистСм, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ ΡˆΠΈΠ½Ρ‹ CAN ΠΈ стСкС SCTP выявлСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² срСднСм Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 4 Π»Π΅Ρ‚, Π² IPv4-стСкС β€” 3.6 Π»Π΅Ρ‚, USB ΠΈ TTY β€” 3.5, Netfilter ΠΈ сСтСвой стСк β€” 2.9, VM β€” 1.8, GPU β€” 1.4, BPF β€” 1.1 Π³ΠΎΠ΄.

 Анализ исправлСния ошибок Π² ядрС Linux - Π² срСднСм ошибки Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· 2 Π³ΠΎΠ΄Π°

ВрСмя обнаруТСния ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ошибок: срСднСС врСмя обнаруТСния ошибок, связанных с состояниями Π³ΠΎΠ½ΠΊΠΈ, составило 5.1 Π»Π΅Ρ‚, цСлочислСнным ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ β€” 3.9, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ послС освобоТдСния памяти β€” 3.2, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΎΠΉ памяти β€” 3.1, подсчётом ссылок β€” 2.8, Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ указатСля ΠΈ Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ β€” 2.2 Π³ΠΎΠ΄Π°.

Π’ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ статистикС Ρ‚Π°ΠΊΠΆΠ΅ прослСТиваСтся влияниС внСдрСния Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ поиска ошибок, статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ тСстирования ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Syzkaller, KASAN, KMSAN ΠΈ KCSAN. НапримСр, Π² 2010 Π³ΠΎΠ΄Ρƒ Π½Π΅ Π±Ρ‹Π»ΠΎ зафиксировано исправлСний ошибок, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π°. Π’ Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ Π² 2014 Π³ΠΎΠ΄Ρƒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π° Π²Ρ‹ΡΠ²Π»ΡΠ»ΠΎΡΡŒ 31% ошибок, 2018 Π³ΠΎΠ΄Ρƒ β€” 54%, Π° Π² 2022 Π³ΠΎΠ΄Ρƒ β€” 69% ошибок.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ статистика Π±Ρ‹Π»Π° использована для создания ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния VulnBERT, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ уязвимостСй Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…. ΠŸΡ€ΠΈ тСстировании Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… Π·Π° 2024 Π³ΠΎΠ΄ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ обнаруТСния ошибок составила 92.2% ΠΏΡ€ΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний 1.2% (для сравнСния Ρ€Π°Π½Π΅Π΅ доступная модСль CodeBERT выявляла 89.2% ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний 48.1%).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ