Pull to refresh
583
22
Андрей Карпов @Andrey2008

Директор по маркетингу

Send message
Но останавливаем то мы именно уязвимости. :) Метод — найти и предотвратить их заранее.
Если честно, не понятна о какой ситуации идёт речь. Есть подозрение, что с кодом всё-таки что-то не так. Прошу привести конкретный синтетический пример, на котором выдаётся ложное срабатывание, и мы обсудим его.
Если честно, не понятна о какой ситуации идёт речь. Есть подозрение, что с кодом всё-таки что-то не так. Прошу привести конкретный синтетический пример, на котором выдаётся ложное срабатывание, и мы обсудим его.
Мне кажется, Вы путаетесь. То, что мы ищем, и есть дефект безопасности (CWE). Ошибка в коде (дефект) может стать причиной уязвимости. Поэтому есть смысл писать «потенциальная уязвимость», что мы и делаем.

Но нет смысла писать «потенциальны дефект» (какой-же он потенциальный, когда вот она ошибка!).
Гм… Казалось бы, мы и не путаем CWE и CVE и как раз я вчера про это рассуждал в статье "PVS-Studio: поиск дефектов безопасности". И я везде и пишу о потенциальных уязвимостях (они-же дефекты безопасности, т.е. CWE).

Что касается перечисленных вами проблем, то мы их ищем, что не раз демонстрировалось в различных статьях.
Пока мы считаем, что не готовы идти дальше. Если пойдём, то скорее всего это будет Java.
Не знаю, не смотрел. Одну из двух. Или они это не осиливают. Или сами собой не пользуются. :)

В целом же ничего удивительно. Задача PVS-Studio в том и состоит, чтобы быть лучше компиляторов в плане поиска дефектов.
Почему полезно использовать PVS-Studio? Потому, что он находит неинициализированные переменные в LLVM! Use of Uninitialized Variable (CWE-457).
предупреждения о неэффективном коде

Такие предупреждения уже есть, хотя их пока немного. Мы называем их микро-оптимизации.
Данные ошибки ещё не подтвержденные уязвимости (CVE), а только потенциальные уязвимости. Можно их использовать или нет — это сложная исследовательская задача, интересная не нам пользователям, а злоумышленникам. Нам же пользователям/разработчикам интересно побыстрее исправить эти ошибки от греха подальше.

Про проверки. Да, где-то их может не хватать. Но, например, всё перечисленное здесь возникло не из-за отсутствия проверок, а из-за ошибок в коде.

Что нужно делать? Это целый комплекс мер, который тянет на книгу. Но точно могу сказать, одна из мер, это использование статических анализаторов кода, таких как PVS-Studio. :)
Тишина. Тогда сам комментарий оставлю. :)

Ещё примеры поиска уязвимостей в коде FreeBSD:

  1. CWE-467
  2. CWE-570
  3. CWE-571
  4. CWE-571
  5. CWE-571
  6. CWE-476
  7. CWE-563
  8. CWE-563
  9. CWE-561
  10. CWE-561
Теперь и анализтор PVS-Studio начинает смотреть в сторону CWE. PVS-Studio: поиск дефектов безопасности.
вот когда предупреждает про одинаковое тело просто метода и const метода — огорчает. Может стоит дополнить правило, что если у методов одинаковые имена и списки аргументов, но различный const у возвращаемого значения и самого метода, то для них не предупреждать об одинаковом теле?
Если я всё правильно понял, то такого срабатывания быть не должно. Прошу привести синтетический пример, на котором воспроизводится ложное срабатывание. Можно в почту.
Всё равно так делать НЕЛЬЗЯ. Например, перед массивом может храниться его размер. И не важно, что для int[] это не обязательно. Да и вообще нет смысла рассуждать. Это UB. Точка.
Ды фигня тут получилась, бывает. Перефразируя поговорку, не ошибается в статьях только то, кто их не пишет. :)
Мы столько кода и багов перелопачиваем, что сложно сосредоточиться.

Information

Rating
267-th
Works in
Date of birth
Registered
Activity

Specialization

Specialist
C++
C
Software development