Análise de correções de bugs no núcleo Linux — em média, os erros são notados após 2 anos

Foi publicado o resultado de um estudo sobre o tempo de detecção e correção de erros no código do kernel do Linux. Os dados foram obtidos a partir da análise de 125 mil erros marcados no repositório Git com a tag "Fixes:", referindo-se ao commit onde o erro ocorreu. O tempo médio de detecção de erros no kernel foi de 2,1 anos. Considerando apenas os erros corrigidos em 2025, esse valor foi de 2,8 anos.

30% dos erros foram corrigidos pelos mesmos desenvolvedores que os introduziram. 56,9% dos erros são resolvidos dentro de um ano. 13,5% dos erros permaneceram sem detecção por mais de 5 anos (considerando apenas os erros corrigidos em 2025 — 19,4%). Devido à distribuição desigual, o tempo mediano de existência de um erro no código do kernel foi de 8 meses para a amostra de 2005 e 1 ano para os erros corrigidos em 2025. O erro que mais tempo permaneceu no código foi um estouro de buffer no ethtool, corrigido após 20,7 anos.

Análise da correção de erros no núcleo do Linux - em média, os erros são percebidos após 2 anos.

A dinâmica de detecção de erros difere significativamente da média para alguns subsistemas, por exemplo, no driver de barramento CAN e na pilha SCTP, a identificação de problemas leva em média cerca de 4 anos; na pilha IPv4 — 3,6 anos, USB e TTY — 3,5 anos, Netfilter e a pilha de rede — 2,9 anos, VM — 1,8 anos, GPU — 1,4 anos, BPF — 1,1 ano.

Análise da correção de erros no núcleo do Linux - em média, os erros são percebidos após 2 anos.

O tempo de detecção correlaciona-se com os tipos de erros: o tempo médio de detecção de erros relacionados a condições de corrida foi de 5,1 anos, estouro de inteiro — 3,9 anos, acesso após liberação de memória — 3,2 anos, estouro de buffer e vazamento de memória — 3,1 anos, contagem de referências — 2,8 anos, desreferenciamento de ponteiro nulo e bloqueios mútuos — 2,2 anos.

A estatística obtida também mostra a influência da implementação de novas ferramentas para busca automatizada de erros, análise estática e teste de código, como Syzkaller, KASAN, KMSAN e KCSAN. Por exemplo, em 2010, não houve correções de erros registradas no decorrer do ano; enquanto em 2014, 31% dos erros foram identificados durante o ano, em 2018, 54%, e em 2022, 69% dos erros.

As estatísticas obtidas foram usadas para criar o modelo de aprendizado de máquina VulnBERT, que permite prever a existência de vulnerabilidades em commits. Ao testar os commits de 2024, a precisão na detecção de erros foi de 92,2% com uma taxa de falsos positivos de 1,2% (para comparação, o modelo CodeBERT anterior identificava 89,2% dos problemas com uma taxa de falsos positivos de 48,1%).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster