Использование PVS-Studio для поиска дефектов безопасности (реклама)
Разработчики PVS-Studio, коммерческого статического анализатора кода на языках C, C++ и C, выступили с инициативой выявления в открытых проектах ошибок, которые могут привести к возникновению уязвимостей. Для упрощения анализа подобных ошибок составлена таблица соответствия предупреждений PVS-Studio и идентификаторов CWE (Common Weakness Enumeration), определяющих типовые ошибки, которые могут привести к появлению уязвимостей. Для примера продемонстрировано несколько предупреждений в Apache httpd, которые потенциально представляют угрозу безопасности.
Анализатор PVS-Studio всегда умел искать слабые места (потенциальные уязвимости) в коде программ, но исторически сложилось, что PVS-Studio позиционировался как инструмент для поиска ошибок, а не потенциальных уязвимостей. Станет та или иная ошибка в коде причиной уязвимости зависит от множества различных факторов - дефект иногда можно эксплуатировать, а иногда нет, как повезет. Существенно то, что, устраняя ошибки, описанные в CWE, программист заранее защищает код от множества уязвимостей.
Команда разработчиков PVS-Studio заинтересовалась устранением потенциальных уязвимостей в различных проектах и решила отражать отдельные мероприятия по поиску уязвимостей в виде небольших еженедельных отчетов. В первом таком отчете разработчики PVS-Studio написали о дефектах в C проектах (CoreFX, MSBuild). Второй отчет более интересен сообществу программистов на C и C++, и рассматривает потенциальные проблемы с безопасностью в таких проектах как FreeBSD, GCC и Clang. Как результат, разработчикам проверенных проектов направлены патчи или заведены сообщения о проблемах.
Дополнительно можно отметить новую статью о том, как и почему статические анализаторы борются с ложными срабатываниями.