Ошибки в FreeBSD
Добавлено: 2017-04-06 12:03:26
Разработчики статического анализатора PVS-Studio вновь решили проверить FreeBSD и продемонстрировать, что даже в таких серьезных и качественных проектах можно найти ошибки. О чем написали статью в своем блоге - https://www.viva64.com/ru/b/0496/. Хотя данный проект регулярно проверяется Coverity, в нем нашлось определенное количество потенциальных уязвимостей (CWE).
Как пишет автор статьи, на поиск потенциальных уязвимостей он потратил всего 2-3 часа, но оформлял статью около 3 недель. Причиной задержки послужило то, что PVS-Studio выдал огромное количество предупреждений общего назначения, с которыми надо было разбираться, проводя настройку анализатора. Большинство ложных предупреждений возникает из-за разных макросов в проверяемом проекте, которые легко убрать, используя механизмы, предусмотренные в PVS-Studio. Далее автор приводит примеры настройки инструмента с примерами.
Помимо стандартных ошибок Copy-Paste и опечаток также удалось обнаружить 56 потенциальных уязвимостей. Конечно, только немногие из найденных CWE ошибок могут превратиться в CVE (подробнее про различие CWE и CVE можно почитать тут https://www.viva64.com/ru/b/0486/). Однако, чем больше ошибок, попадающих под классификацию CWE, будет найдено с помощью статического анализа, тем лучше.
Безусловно польза статического анализатора будет лучше, если его использовать не от случая к случаю, а регулярно. Единичная проверка, подобная той, что описана в статье, может служить хорошей рекламой анализатора, но не принесёт проверенному проекту существенной пользы. Вся суть статического анализа сводится к тому, что многие ошибки можно исправить на самом раннем этапе. Дополнительно, так легче поддерживать вывод анализатора чистым и не искать ошибки среди сотен ложных срабатываний. Здесь полная аналогия с предупреждениями компилятора.
p.s. Это уже вторая проверка FreeBSD с помощью PVS-Studio. Отчет 2016 года можно посмотреть по ссылке - https://www.viva64.com/ru/b/0377/