Via slashdot. Um leitor anônimo compartilhado o presente relatório da É FOSS:
Jenny Guanni Qu, pesquisadora do [fundo CV] Pebblebed, analisaram 125.183 bugs de 20 anos do histórico de desenvolvimento do kernel Linux (em Git). As descobertas mostram que o erro médio leva 2,1 anos para ser encontrado. [Embora a mediana seja de 0,7 anos, com a média possivelmente distorcida por "outliers" descobertos após anos de esconderijo.] O bug de vida mais longa, um buffer transborda em código de rede, passou despercebido por 20,7 anos! [Mas 86,5% dos insetos são encontrados em cinco anos.]
A pesquisa foi realizada contando com a tag Fixes: que é usada no desenvolvimento do kernel. Basicamente, quando um commit corrige um bug, ele inclui uma tag apontando para o commit que introduziu o bug. Jenny escreveu uma ferramenta que extraiu essas tags do histórico git do kernel que remonta a 2005. A ferramenta encontra todos os commits de fixação, extrai o hash de commit referenciado, puxa datas de ambos os commits e calcula o prazo. Quanto ao conjunto de dados, inclui mais de 125k registros de Linux 6.19-rc3, cobrindo bugs de abril de 2005 a janeiro de 2026. Destes, 119.449 foram commits de fixação únicos de 9.159 autores diferentes, e apenas 158 bugs tiveram IDs CVE atribuídos.
Levou seis horas para montar o conjunto de dados, de acordo com o post do blog, que conclui que a porcentagem de bugs encontrados dentro de um ano melhorou drasticamente, de 0% em 2010 para 69% em 2022. O post do blog diz que isso provavelmente pode ser atribuído a:
- The Syzkaller fuzzer (lançado em 2015)
- Detectores dinâmicos de erros de memória como KASAN, KMSAN, higienizadores KCSAN
- Melhor análise estática
- Mais contribuidores revisando código
Mas "Estamos simultaneamente pegando novos bugs mais rápido E lentamente trabalhando através de ~5400 bugs antigos que têm sido escondidos por mais de 5 anos."
Eles também desenvolveram um modelo de IA chamado VulnBERT que prevê se um commit introduz uma vulnerabilidade, alegando que de todos os commits de introdução de bugs, ele pega 92,2%. "O objetivo não é substituir os revisores humanos, mas apontá-los para os 10% dos commits mais prováveis de serem problemáticos, para que eles possam focar a atenção onde importa..."