﻿# Новые возможности по поиску угроз безопасности и защищённости в PVS\-Studio 7\.12

Безопасность\. Что для вас значит это слово? В наше время компании тратят много усилий для того, чтобы их продукт был защищён от взлома и разного рода утечек информации\. PVS\-Studio решил помогать своим пользователям в данном направлении и расширять функционал в этой области\. Поэтому одним из главных новшеств предстоящего релиза станет появление в анализаторе новых возможностей обеспечения безопасности и защищённости кода\. Об этом и будет рассказано в данной статье\.

![0811_New_SAST_Feature_ru/image1.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image1.png)

## Пару слов о нас в плане безопасности и защищённости

На данный момент PVS\-Studio развивается не только как статический анализатор для поиска дефектов качества кода \(quality control решение\), но и как решение для поиска дефектов защищённости \(security\) и безопасности \(safety\)\. В контексте защищённости мы являемся SAST\-решением\. SAST \(Static Application Security Testing\) – это разновидность статического анализа кода, ориентированная на поиск потенциальных уязвимостей защищённости\. Такой анализ может выявить большое количество дефектов, в том числе даже тех, которые не успели проявить себя\. Что касается безопасности, то это уже другое направление, которое ориентировано на обеспечение надёжности и отказоустойчивости программ\.

Как вы понимаете из названия данной статьи, мы расширяем свой функционал в данных областях\. Ранее у нас уже были различные таблицы соответствия стандартам безопасности и защищённости на нашем сайте\. Но пользоваться этим было не очень удобно, ведь в непосредственно результаты работы анализатора эта информация не попадала\. Теперь же мы не только делаем использование данных возможностей анализатора более дружелюбным для пользователей \(например, путём интеграции в интерфейсы наших IDE плагинов\), но и расширяем уже имеющуюся базу, добавляя поддержку новых стандартов\. Дополнительным толчком к этому для нас стало упоминание PVS\-Studio в отчете Static Application Security Testing, Q3 2020 от компании Forrester Research – одного из ведущих исследователей влияния новых и инновационных технологий на бизнес\-процессы и рынок\. Подробнее об этом и том, как мы развились в SAST и safety решение, вы можете почитать [тут](https://pvs-studio.ru/ru/blog/posts/0759/)\. 

## Новые возможности

Ну и чтобы не тянуть время, давайте сразу обозначим, что конкретно было добавлено\. Итак, новое, безопасное и классное в PVS\-Studio:

* В анализатор добавлены новые группы диагностик OWASP ASVS и The AUTOSAR C\+\+14 Coding Guidelines\. Раньше соответствие диагностических правил PVS\-Studio данным стандартам было доступно только на нашем сайте\. Новых диагностических правил получилось более 50 штук\!
* В результатах работы анализатора теперь выдаётся информация о соответствии срабатываний стандарту безопасного написания кода SEI CERT\. Раньше эта информация также была доступна только на сайте PVS\-Studio\.
* Доработан интерфейс наших плагинов для Visual Studio, JetBrains Rider, IntelliJ IDEA для удобной работы с сообщениями анализатора, имеющими идентификаторы стандартов безопасности и защищённости\.
* Поддержаны новые группы диагностик \(OWASP, AUTOSAR\) в PlogConverter\.
* Поддержаны новые диагностики \(OWASP, AUTOSAR\) в SonarQube на уровне тегов\. Провели работу по классификации наших диагностических правил по OWASP Top 10\.

Примечание\. В предыдущих версиях уже были поддержаны такие стандарты безопасности, как MISRA C:2012 и MISRA C\+\+:2008\. Для них на момент написания статьи реализовано 74 диагностических правила\.

Ещё у нас поддержано соответствие наших диагностик наиболее распространённой классификации потенциальных уязвимостей – CWE \(Common Weakness Enumeration\)\. Количество диагностик, которые подходят под данную классификацию у нас уже [514](https://pvs-studio.ru/ru/pvs-studio/sast/cwe/)\.

## Новые группы диагностик

Поговорим немного о новых группах диагностик \(OWASP и AUTOSAR\), которые ранее присутствовали только на нашем сайте в виде сопоставлений\. В новом релизе PVS\-Studio 7\.12 мы добавляем диагностики из этих стандартов в виде отдельных групп правил со своими номерами, документацией и всеми остальными присущими нашим диагностическим правилам вещами\. То есть, проверяя проект, анализатор вам будет выдавать предупреждения для новых групп, по аналогии с остальными предупреждениями\. Раньше из всех security и safety правил отдельные группы были только у диагностик PVS\-Studio, соответствующих стандартам MISRA C и C\+\+\.

А вообще, что это за слова такие странные: OWASP, AUTOSAR? Давайте немного разъясним ситуацию\.

The AUTOSAR C\+\+14 Coding Guidelines — это набор руководств для написания кода на языке C\+\+14, который предназначен для работы в системах, где важны безопасность и отказоустойчивость\. Основной сферой применения данного документа является автомобильная промышленность\. Но он также может быть использован и в других отраслях, занимающихся разработкой встраиваемых систем\.

Для данного стандарта мы создали отдельную группу и выделили ей номера с 3500 по 3999\. Сопоставление этих диагностик со стандартом AUTOSAR вы можете посмотреть [здесь](https://pvs-studio.ru/ru/pvs-studio/sast/autosar/)\.

[OWASP Application Security Verification Standard](https://owasp.org/www-project-application-security-verification-standard/) — это список требований к безопасности приложений и тестов, которые могут использоваться архитекторами программного обеспечения \(ПО\), разработчиками, тестировщиками, специалистами по защищённости приложений, продавцами и пользователями инструментов для разработки, сборки, тестирования и верификации защищённых приложений\. 

Как вы поняли, в отличие от стандарта организации AUTOSAR, OWASP ASVS не привязан к какому\-то конкретному языку\. Поэтому у нас реализованы диагностики этого типа на всех анализируемых нами языках \(C, C\+\+, C\#, Java\)\. Данные диагностические правила получили свою [группу](https://pvs-studio.ru/ru/pvs-studio/sast/owasp/) и номера с 5000 по 5999\.

Теперь перейдём к CERT\. [SEI CERT Coding Standard](https://wiki.sei.cmu.edu/confluence/) – это набор стандартов написания ПО для повышения надёжности и безопасности ПО на языках C, C\+\+, Java и Perl\. Эти стандарты разрабатываются координационным центром CERT \(CERT Coordination Center, CERT/CC\)\. Их сопоставление с правилами PVS\-Studio представлено [здесь](https://pvs-studio.ru/ru/pvs-studio/sast/cert/)\.

Однако, в случае с CERT, мы не стали создавать новую группу диагностик\. Причиной этому послужило то, что под этот стандарт попадает значительная часть наших диагностик общего назначения \(General Analysis\)\. Но не переживайте, информацию о том, что диагностика — это конкретное CERT правило, вы всё равно узнаете\. Она точно так же добавляется в результат работы анализатора, как OWASP ASVS или AUTOSAR C\+\+14 Coding Guidelines\. 

При этом у нас продолжается поддержка таких стандартов, как MISRA C:2012 и MISRA C\+\+:2008\. Это стандарты разработки программного обеспечения, основная цель которых – улучшить безопасность, переносимость и надёжность программ для встраиваемых систем \([сопоставление](https://pvs-studio.ru/ru/pvs-studio/sast/misra/)\)\.

К слову, мы не планируем останавливаться на достигнутом и будем делать все больше и больше новых диагностик, направленных на поиск ошибок безопасности и защищённости\. Об этом, в том числе, мы говорим и в нашей [дорожной карте на 2021 год](https://pvs-studio.ru/ru/blog/posts/0797/)\.

## В плагинах

Ну вот мы и добавили новые диагностики\. А где же посмотреть результат их работы? Ну конечно же, в наших плагинах\! На сегодняшний день мы поддерживаем отображение информации о стандартах безопасности в плагинах для трех IDE\. Это Visual Studio \(для версий с 2010 по 2019\), JetBrains Rider и IntelliJ IDEA\. Чтобы плагины могли отображать эти новые срабатывания, были сделаны следующие доработки:

* Добавлен новый столбец SAST, в который выводится вся информация о MISRA C:2012, MISRA C\+\+:2008, The AUTOSAR C\+\+14 Coding Guidelines, OWASP ASVS, SEI CERT Coding Standard из предупреждений\.
* Убран столбец MISRA\. Теперь вся информация заносится в столбец SAST\. Этот же столбец будет использоваться в будущем и при поддержке нами новых стандартов\.
* Добавлены кнопки для новых стандартов, которые позволяют вам убирать соответствующие предупреждения из отображения\. В настройках добавлена возможность полного или частичного выключения\\включения диагностических правил для этих категорий\.

Приведу пару картинок, чтобы вы имели представление, как это выглядит\. В плагине для Visual Studio 2019 это выглядит вот так:

![0811_New_SAST_Feature_ru/image2.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image2.png)

Точно такой же функционал мы добавили в Rider и в IntelliJ IDEA\. Вот так это выглядит в Rider:

![0811_New_SAST_Feature_ru/image3.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image3.png)

## PlogConverter

Мы не могли забыть про нашу утилиту, которая позволяет конвертировать отчеты в различные форматы\. Теперь все наши типы отчётов, в которые можно конвертировать результаты работы анализатора, поддерживают OWASP и AUTOSAR\. Для примера посмотрим на, возможно, самый часто используемый тип для конвертации – [FullHtml](https://pvs-studio.ru/ru/docs/manual/0038/)\. Этот тип позволяет вам изучать отчет в браузере: красиво и удобно, если нет возможности напрямую работать с плагином в вашей среде разработки\. Плюс такой отчёт или ссылку на него удобно рассылать по почте\.

Собственно, быстренько получили нужный файл и давайте теперь его посмотрим\. Как вы видите, в заголовке можно увидеть новое поле Total Warnings \(OWASP\), которое говорит, сколько у вас потенциальных ошибок из этой категории:

![0811_New_SAST_Feature_ru/image4.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image4.png)

Вот так отображается сам SAST столбец:

![0811_New_SAST_Feature_ru/image5.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image5.png)

## SonarQube

Хочется немного сказать и о нашей интеграции с SonarQube\. Мы предоставляем плагин, который позволяет добавлять сообщения, найденные анализатором PVS\-Studio, в базу сообщений сервера SonarQube\. Далее вы можете фильтровать сообщения, осуществлять навигацию по коду для анализа ошибок, анализировать динамику количества ошибок, оценивать уровень качества кода проекта и так далее\.

На данный момент мы расширяем возможности нашего плагина, добавляя теги для диагностик, относящихся к OWASP, AUTOSAR группам\. Сейчас сообщения группы OWASP выглядят вот так:

![0811_New_SAST_Feature_ru/image6.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image6.png)

Также мы провели работу по классификации наших диагностических правил по OWASP Top 10\. [OWASP Top 10](https://owasp.org/www-project-top-ten/) – это рейтинг самых опасных векторов атак на веб\-приложения\. Каждое место в этом рейтинге имеет описание и примеры сценариев атаки, а также ссылки на правила из стандарта OWASP ASVS и классификацию CWE, которые к нему относятся\. Для примера вы можете [посмотреть](https://owasp.org/www-project-top-ten/2017/A1_2017-Injection), как выглядит одно из мест рейтинга\. 

В OWASP Top 10 входят такие уязвимости, как: 

1. инъекции;
1. сломанная аутентификация;
1. раскрытие конфиденциальных данных;
1. внешние объекты XML;
1. нарушенный контроль доступа;
1. неверная конфигурация безопасности;
1. межсайтовый скриптинг;
1. небезопасная десериализация;
1. использование компонентов с известными уязвимостями;
1. недостаточное ведение журнала и мониторинг\.

В SonarQube же они отображаются вот здесь:

![0811_New_SAST_Feature_ru/image7.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image7.png)

Сделано это по аналогии с тем, как у нас уже отображается CWE, который вы тоже можете видеть на скриншоте\. Для этого мы используем специальную вкладку Security Category\. Приведу пример, как выглядит заполненный CWE:

![0811_New_SAST_Feature_ru/image8.png](https://import.viva64.com/docx/blog/0811_New_SAST_Feature_ru/image8.png)

## Заключение 

Как вы видите, этот релиз у нас вышел достаточно насыщенным\. Анализатор получил новые группы диагностик для стандартов OWASP ASVS и AUTOSAR C\+\+14 Coding Guidelines\. В результаты работы анализатора дополнительно стала выводиться информация о соответствии срабатываний стандарту SEI CERT\. Интерфейс наших плагинов \(Visual Studio, JetBrains Rider, IntelliJ IDEA\) обновился для удобной работы с сообщениями анализатора, имеющими идентификаторы стандартов безопасности и защищённости\. Ещё и PlogConverter с SonarQube научились работать с новыми группами диагностик \(OWASP, AUTOSAR\)\. И все это только то, что касается направления безопасности и защищённости\!

Данное направление очень важно\. Ведь устранение всякого рода уязвимостей на этапе разработки программного обеспечения снижает шанс возникновения угроз безопасности в будущем\. Благодаря этому компании не придётся нести финансовые потери или терять свой рейтинг\. Поэтому мы стараемся помогать своим пользователям избежать проблем, связанных с безопасностью и защищённостью\.

Будьте счастливы и следите за состоянием своего кода\. Спасибо за внимание\!