Уязвимости обхода пути не найдены в коде Scala

Я пытался сканировать мой код с помощью плагинов SonarQube + FindBugs + FindSecBugs.

Идея состоит в том, чтобы обнаружить уязвимости в коде, и, как говорится в теме проекта github, он работает со scala https://github.com/find-sec-bugs/find-sec-bugs

Я установил плагин, как сказано в документации, и попробовал несколько сканирований, но ничего, связанного с уязвимостями в scala, не происходит.

Итак, чтобы выяснить, действительно ли код был хорош или была неправильная конфигурация в моих настройках SonarQube, я пошел на http://find-sec-bugs.github.io/bugs.htm, я взял один из примеров (Потенциальный обход пути), вставил пример кода, и я снова запустил сканер. Не было найдено

Правило (Безопасность - Обход потенциального пути (чтение файла)) активируется в профиле качества, и, несмотря на то, что это профиль Java, он присваивается проекту, поскольку код в упомянутом примере - Scala.

Я заметил, что все правила, относящиеся к find-sec-bugs, являются java, поэтому мне интересно, не работают ли они над scala или есть что-то еще, что я могу сделать, чтобы это сработало.

Заранее спасибо, и дайте мне знать, если вам нужна дополнительная информация, я был бы рад предоставить вам.

1 ответ

Решение

Похоже, что основной причиной этого является то, что шаблоны ошибок Scala явно исключены по некоторым причинам:

С архитектурой SonarQube существует множество ограничений в отношении поддержки нескольких языков. Он тесно связан с плагином Sonar-Source.

  • Язык не может иметь такое же расширение ( https://jira.sonarsource.com/browse/MMF-672)
  • Репозиторий не может содержать правило, применимое к нескольким языкам. (Если бы у вас был только код Scala, основные правила Java не были бы включены, если у вас нет одного Java-файла)
  • Сенсор связан с определением языка (зависит от самого популярного плагина, который его объявляет).
  • и т. д.

Источник: https://github.com/spotbugs/sonar-findbugs/issues/108

Все исключения можно увидеть здесь: https://github.com/spotbugs/sonar-findbugs/commit/526ca6b29fae2684f86b1deba074a4be8a05b67e

В частности, для Scala:

  static exclusions = ['CUSTOM_INJECTION',
                   'SCALA_SENSITIVE_DATA_EXPOSURE',
                   'SCALA_PLAY_SSRF',
                   'SCALA_XSS_TWIRL',
                   'SCALA_XSS_MVC_API',
                   'SCALA_PATH_TRAVERSAL_IN',
                   'SCALA_COMMAND_INJECTION',
                   "SCALA_SQL_INJECTION_SLICK",
                   "SCALA_SQL_INJECTION_ANORM",
                   "PREDICTABLE_RANDOM_SCALA"]
Другие вопросы по тегам