Через слэшдот. Анонимный читатель поделился Этот доклад из Это ФОСС:
Дженни Гуанни Ку, исследователь из фонда VC Пебблбед, Анализ 125 183 ошибок за 20 лет истории разработки ядра Linux (на Git). Полученные данные показывают, что средний срок обнаружения ошибки составляет 2,1 года. [Хотя медиана составляет 0,7 года, средняя, возможно, перекошена «выбросами», обнаруженными после многих лет скрытия.] Самый долгоживущий баг, переполненный буфером сетевого кода, оставался незамеченным в течение 20,7 лет. [Но 86,5% багов обнаруживаются в течение пяти лет.]
Исследование было проведено, опираясь на исправления: тег, который используется в разработке ядра. В основном, когда фиксация фиксирует ошибку, она включает в себя тег, указывающий на фиксацию, которая ввела ошибку. Дженни написала инструмент, который извлек эти теги из истории ядра, начиная с 2005 года. Инструмент находит все фиксирующие обязательства, извлекает хеш, на который ссылаются, вытягивает даты из обоих обязательств и вычисляет временные рамки. Что касается набора данных, то он включает в себя более 125 тыс. записей. Linux 6.19-rc3, охватывающие баги с апреля 2005 года по январь 2026 года. Из них 119 449 были уникальными фиксирующими фиксациями от 9 159 разных авторов, и только 158 ошибок имели идентификаторы CVE.
На сбор данных ушло шесть часов, Согласно сообщению в блоге, который приходит к выводу, что процент ошибок, обнаруженных в течение одного года, резко улучшился, с 0% в 2010 году до 69% к 2022 году. В сообщении в блоге говорится, что это может быть связано с:
- The Syzkaller Fuzzer (выпущен в 2015 году)
- Динамические детекторы ошибок памяти, такие как KASAN, KMSAN, KCSAN
- Лучший статический анализ
- Больше участников просматривают код
«Мы одновременно ловим новых жуков быстрее и медленно прорабатываем около 5400 древних жуков, которые прятались более 5 лет».
Они также разработали модель искусственного интеллекта под названием VulnBERT, которая предсказывает, вводит ли обязательство уязвимость, утверждая, что из всех фактических обязательств по введению ошибок оно достигает 92,2%. Цель состоит не в том, чтобы заменить людей-рецензентов, а в том, чтобы указать им на 10% обязательств, которые, скорее всего, будут проблематичными, чтобы они могли сосредоточить внимание там, где это имеет значение.