Вебинар: Использование статических анализаторов кода при разработке безопасного ПО - 19.12
PVS-Studio является средством статического тестирования защищённости приложений (Static Application Security Testing, SAST). Другими словами, анализатор PVS-Studio выявляет не только выход за границы массива, опечатки, мёртвый код и прочие ошибки, но и потенциальные уязвимости.
Существует два подхода к выявлению уязвимостей в коде.
В первом случае анализатор, основываясь на базе общеизвестных уязвимостей CVE, производит поиск опасных фрагментов кода. Это похоже на то, как работают антивирусы. Подход эффективен для выявления известных уязвимостей, которые могли попасть в проект при использовании старых библиотек или методом Copy-Paste.
Рассмотренный подход не отвечает на вопрос, что делать с ещё не выявленными уязвимостями и новым написанным кодом.
Поэтому существует второй подход, когда превентивно выявляются и исправляются участки кода, содержащие дефекты безопасности. Инструмент PVS-Studio на данный момент реализует именно эту стратегию.
Существует база Common Weakness Enumeration (CWE), описывающая паттерны ошибок, которые при стечении обстоятельств можно начать эксплуатировать как уязвимости. На практике только малая часть из найденных CWE-ошибок представляет опасность. С точки зрения разработчика, нет смысла рассуждать, можно или нет использовать тот или иной дефект для атаки. Нужно просто исправить все эти дефекты, и тем самым повысить надёжность приложения.
Анализатор PVS-Studio поддерживает классификацию ошибок согласно CWE. Если PVS-Studio выдал предупреждение и сопоставил его с одним из CWE ID, то обнаружена потенциальная уязвимость, которую следует исправить.
Рекомендуем ознакомиться с ретроспективной статьёй "Как PVS-Studio может помочь в поиске уязвимостей". В ней рассматриваются некоторые уязвимости, которые можно было бы выявить с помощью PVS-Studio ещё на этапе написания кода.
Внедрите статический анализатор кода PVS-Studio в ваш процесс разработки, чтобы повысить качество и надёжность разрабатываемых вами проектов.
0