在Scala代码中找不到路径遍历漏洞

时间:2018-12-03 19:31:54

标签: scala sonarqube spotbugs find-sec-bugs

我一直在尝试使用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-bug的所有规则都是Java规则,所以我想知道它们是否不能在scala上运行,或者我可以做一些其他事情来使其生效。

在此先感谢您,如果您需要其他任何信息,我们很乐意为您提供。

1 个答案:

答案 0 :(得分: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"]