- PVSM.RU - https://www.pvsm.ru -

PVS-Studio как SAST решение

PVS-Studio и SAST

До недавнего времени в своих статьях мы позиционировали PVS-Studio как инструмент для выявления ошибок в коде. При этом мы почти не рассматривали PVS-Studio в контексте безопасности. Попробуем немного исправить эту ситуацию и взглянем на инструмент с точки зрения тестирования защищённости приложений и DevSecOps практик.

PVS-Studio является средством статического тестирования защищённости приложений (Static Application Security Testing, SAST). Другими словами, анализатор PVS-Studio выявляет не только опечатки, мёртвый код и другие ошибки, но и потенциальные уязвимости.

Инструмент работает в среде Windows, Linux, macOS и анализирует код программ на языке С, C++ и C#. К концу 2018 года планируется поддержка языка Java.

Для удобства специалистов, которые будут использовать PVS-Studio как SAST инструмент, анализатор отображает свои предупреждения на Common Weakness Enumeration [1], SEI CERT Coding Standards [2], а также поддерживает стандарт MISRA [3] (сейчас находится в процессе реализации).

Таблицы соответствий диагностик [4] PVS-Studio различным стандартам:

  1. Соответствие CWE [5]
  2. Соответствие SEI CERT [6]
  3. Поддержка MISRA (планируем реализовать до конца 2018 года)

Наиболее распространённой классификацией предупреждений SAST инструментов является Common Weakness Enumeration (CWE). Посмотрим, использую язык CWE, как анализатор PVS-Studio помогает предотвратить уязвимости.

Если обратиться к базе данных общеизвестных уязвимостей информационной безопасности (CVE [7]), то выясняется, что часто причиной уязвимостей в программах являются не какие-то недоработки в системе безопасности, а обыкновенные программные ошибки. Национальный институт стандартов и технологий (NIST) подтверждает это, заявляя, что 64% уязвимостей в программах связаны с ошибками в коде.

Именно такие ошибки, которые потенциально могут привести к уязвимостям, и описаны в CWE. Соответственно, если ошибку можно классифицировать как CWE, есть вероятность, что она может эксплуатироваться как уязвимость и в итоге пополнить список CVE. Для наглядности можно использовать изображение воронки:

Ошибки, CWE, CVE

Есть множество ошибок. Часть из них представляют опасность с точки зрения безопасности и поэтому классифицируются согласно CWE. Некоторые CWE-ошибки можно эксплуатировать и они представляют собой уязвимости.

Да, на практике только очень малая часть из найденных CWE-ошибок представляет опасность и является уязвимостями. Однако если вы разрабатываете security-critical приложения и заботитесь о безопасности пользователей, то должны крайне серьезно отнестись к этим ошибкам. Устраняя CWE-ошибки, вы защищаете своё приложение от многих уязвимостей.

Теперь взаимосвязь между ошибками, PVS-Studio и уязвимостями становится очевидной. Анализатор PVS-Studio находит ошибки и многие из них классифицирует как CWE. Исправляя эти ошибки, вы делаете своё приложение более надёжным. Обнаружение в продукте уязвимости может серьёзно затронуть его репутацию. Исправляя ошибки анализатора, вы существенно сокращаете этот риск на наиболее раннем этапе разработки — написании кода.

Анализатор PVS-Studio, как и любой другой инструмент, не даёт гарантий, что в коде нет уязвимостей. Однако если PVS-Studio предотвратит, например, 50% потенциальных уязвимостей, это уже замечательно.

Дополнительно предлагаем ознакомиться со статьёй "Как PVS-Studio может помочь в поиске уязвимостей? [8]", где показаны ошибки, которые приводили к уязвимостям, и которых можно было бы избежать при использовании в процессе разработке инструмента PVS-Studio.

Начните использовать PVS-Studio в качестве SAST решения: скачать PVS-Studio [9].

Автор: Андрей Карпов

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/287121

Ссылки в тексте:

[1] Common Weakness Enumeration: https://cwe.mitre.org/

[2] SEI CERT Coding Standards: https://wiki.sei.cmu.edu/confluence/display/seccode/SEI+CERT+Coding+Standards

[3] MISRA: https://www.misra.org.uk/

[4] диагностик: https://www.viva64.com/ru/w/

[5] Соответствие CWE: https://www.viva64.com/ru/cwe/

[6] Соответствие SEI CERT: https://www.viva64.com/ru/cert/

[7] CVE: https://cve.mitre.org/

[8] Как PVS-Studio может помочь в поиске уязвимостей?: https://www.viva64.com/ru/b/0514/

[9] скачать PVS-Studio: https://www.viva64.com/ru/pvs-studio-download/

[10] Источник: https://habr.com/post/418143/?utm_source=habrahabr&utm_medium=rss&utm_campaign=418143