【问题标题】:Path traversal vulnerabilities not found at Scala code在 Scala 代码中未发现路径遍历漏洞
【发布时间】:2019-05-05 03:39:40
【问题描述】:

我一直在尝试使用 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 上不起作用,或者我可以做些什么来使它起作用。

提前致谢,如果您需要任何额外信息,请告诉我,我很乐意为您提供。

【问题讨论】:

    标签: scala sonarqube spotbugs find-sec-bugs


    【解决方案1】:

    看起来发生这种情况的主要原因是由于某些原因明确排除了 Scala 错误模式:

    SonarQube 架构在多语言支持方面存在很多限制。 它与声纳源插件设计密切相关。

    • 语言不能有相同的扩展名 (https://jira.sonarsource.com/browse/MMF-672)
    • 存储库不能包含适用于多种语言的规则。 (如果您只有 Scala 代码,则除非您有一个 Java 文件,否则不会启用 Java 核心规则)
    • 传感器与语言定义耦合(取决于声明它的最流行的插件)。
    • 等等等等。

    来源:https://github.com/spotbugs/sonar-findbugs/issues/108#issuecomment-305909652

    可以在此处查看所有排除项: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"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多