to the top
close form
Для получения триального ключа
заполните форму ниже
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Новые возможности по поиску угроз безоп…

Новые возможности по поиску угроз безопасности и защищённости в PVS-Studio 7.12

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

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 решение, вы можете почитать тут.

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

Ну и чтобы не тянуть время, давайте сразу обозначим, что конкретно было добавлено. Итак, новое, безопасное и классное в 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.

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

Поговорим немного о новых группах диагностик (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 вы можете посмотреть здесь.

OWASP Application Security Verification Standard — это список требований к безопасности приложений и тестов, которые могут использоваться архитекторами программного обеспечения (ПО), разработчиками, тестировщиками, специалистами по защищённости приложений, продавцами и пользователями инструментов для разработки, сборки, тестирования и верификации защищённых приложений.

Как вы поняли, в отличие от стандарта организации AUTOSAR, OWASP ASVS не привязан к какому-то конкретному языку. Поэтому у нас реализованы диагностики этого типа на всех анализируемых нами языках (C, C++, C#, Java). Данные диагностические правила получили свою группу и номера с 5000 по 5999.

Теперь перейдём к CERT. SEI CERT Coding Standard – это набор стандартов написания ПО для повышения надёжности и безопасности ПО на языках C, C++, Java и Perl. Эти стандарты разрабатываются координационным центром CERT (CERT Coordination Center, CERT/CC). Их сопоставление с правилами PVS-Studio представлено здесь.

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

При этом у нас продолжается поддержка таких стандартов, как MISRA C:2012 и MISRA C++:2008. Это стандарты разработки программного обеспечения, основная цель которых – улучшить безопасность, переносимость и надёжность программ для встраиваемых систем (сопоставление).

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

В плагинах

Ну вот мы и добавили новые диагностики. А где же посмотреть результат их работы? Ну конечно же, в наших плагинах! На сегодняшний день мы поддерживаем отображение информации о стандартах безопасности в плагинах для трех 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

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

0811_New_SAST_Feature_ru/image3.png

PlogConverter

Мы не могли забыть про нашу утилиту, которая позволяет конвертировать отчеты в различные форматы. Теперь все наши типы отчётов, в которые можно конвертировать результаты работы анализатора, поддерживают OWASP и AUTOSAR. Для примера посмотрим на, возможно, самый часто используемый тип для конвертации – FullHtml. Этот тип позволяет вам изучать отчет в браузере: красиво и удобно, если нет возможности напрямую работать с плагином в вашей среде разработки. Плюс такой отчёт или ссылку на него удобно рассылать по почте.

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

0811_New_SAST_Feature_ru/image4.png

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

0811_New_SAST_Feature_ru/image5.png

SonarQube

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

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

0811_New_SAST_Feature_ru/image6.png

Также мы провели работу по классификации наших диагностических правил по OWASP Top 10. OWASP Top 10 – это рейтинг самых опасных векторов атак на веб-приложения. Каждое место в этом рейтинге имеет описание и примеры сценариев атаки, а также ссылки на правила из стандарта OWASP ASVS и классификацию CWE, которые к нему относятся. Для примера вы можете посмотреть, как выглядит одно из мест рейтинга.

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

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

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

0811_New_SAST_Feature_ru/image7.png

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

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). И все это только то, что касается направления безопасности и защищённости!

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

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

Популярные статьи по теме
Под капотом SAST: как инструменты анализа кода ищут дефекты безопасности

Дата: 26 Янв 2023

Автор: Сергей Васильев

Сегодня речь о том, как SAST-решения ищут дефекты безопасности. Расскажу, как разные подходы к поиску потенциальных уязвимостей дополняют друг друга, зачем нужен каждый из них и как теория ложится на…
PVS-Studio 7.22: Visual Studio Code, Qt Creator, .NET 7

Дата: 16 Дек 2022

Автор: Сергей Васильев

Вышел новый релиз PVS-Studio — 7.22. В него вошли плагины для Visual Studio Code и Qt Creator, поддержка анализа проектов на .NET 7, доработки механизма Best Warnings, новые диагностики и не только. …
Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

Дата: 03 Ноя 2022

Автор: Андрей Москалёв

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-ата…
PVS-Studio 7.21: GitLab Code Quality, Unreal Engine

Дата: 19 Окт 2022

Автор: Сергей Васильев

Вышел новый релиз PVS-Studio – 7.21. В этой заметке описали основные улучшения анализатора и собрали материалы от нашей команды, вышедшие в последнее время: статьи, опросы и записи докладов с конфере…
Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?

Дата: 06 Сен 2022

Автор: Никита Липилин

Современные приложения почти всегда используют сторонние библиотеки. Если библиотека содержит уязвимость, то уязвимым может оказаться и использующее её приложение. Но как определить наличие таких про…

Комментарии (0)

Следующие комментарии next comments
close comment form
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо