📜  2020 年 5 大开源和免费静态代码分析工具

📅  最后修改于: 2021-10-21 05:33:32             🧑  作者: Mango

如果您是软件开发人员或代码安全分析师,您通常需要分析源代码以检测安全漏洞并维护安全的质量代码。但是您的代码中可能存在许多难以手动发现的问题。毕竟,我们还是人,所以即使是最资深的安全分析师也会遗漏一些安全漏洞。来拯救我们的源代码分析工具,一个强大的工具,可以快速自动检查引擎盖下的一切,甚至不需要执行代码,成为人眼的完美伴侣。

2020 年排名前 5 的开源和免费静态代码分析工具

源代码分析工具也被称为静态应用程序安全测试工具或 SAST 工具,旨在向开发人员提供他们可能在代码中引入的问题的即时反馈,这与在软件开发生命后期发现漏洞相比非常有用循环 (SDLC)。

随着从一开始就创建质量安全代码的增加,出现了更大的转向采用这些工具。现在市场上没有大量可用的工具,但商业选项对于初创公司和自由职业者来说太贵了,但不用担心,这里列出了一些顶级的免费和开源静态代码分析工具。

1. VisualCodeGrepper

VisualCodeGrepper 是一款针对常用最流行编程语言的超快速且功能强大的源代码分析工具,彻底的扫描工具,VisualCodeGrepper 是 C、C++、C#、VB、 PHP、 Java、PL/SQL 和 COBOL 的自动化工具,可大大加快代码速度通过识别不安全代码来审查流程。它尝试在注释中查找可以指示损坏代码的短语,并通过统计数据和饼图提供详细报告。它有一些很棒的功能,对于任何进行代码分析的人来说都非常有用,尤其是在时间成本很高的情况下:

  • 使用此工具,您可以分析大多数现代和旧流行的编程语言,如 C、C++、 Java、 PHP、COBOL 等。只需指定您使用的语言即可正确识别和分析代码。
  • 您可以根据项目的类型和复杂性运行多个扫描操作。在可能的操作中,它可以帮助您触发代码的完整扫描过程,在此过程中,会立即弹出一个新窗口,chard 显示每个组件,以便更好地分析。
  • 为整个代码库提供一个漂亮的饼图,显示代码、空白、注释和错误代码的相对比例。
  • 显示一个列表以查看每个项目以及可能的错误、安全漏洞评论数量、整个项目的百分比以及潜在的不安全标志和代码位。
  • 执行许多复杂的检查,并允许您使用每种语言的配置文件添加要搜索的任何不良功能。
  • 尝试在注释中查找一系列可能表明代码损坏的短语。
  • 智能搜索以查找缓冲区溢出和有符号或无符号比较。

2. 撕裂

RIPS(Re-Inforce Programming Security)是一种针对PHP、 Java和 Node.Js 的特定语言静态代码分析工具。它可以自动检测PHP和Java应用程序中的安全漏洞,是应用程序开发的理想选择。该工具支持所有主要的PHP和Java框架。它可以部署为自托管软件或用作云服务。具有 SDLC 集成和相关行业标准。除了 RIPS 之外,没有其他工具可以检测到最复杂的安全漏洞,这些漏洞深深嵌套在代码中,非常准确,因此它是分析代码的理想选择。

  • 使用本地安装在本地扫描代码以保护代码隐私。还通过安全且高度可扩展的基于云的平台 (SaaS) 提供在线扫描,无需本地安装或维护开销。
  • 无缝的全自动安全测试和代码漏洞报告。因此,在与构建工具、IDE 和问题跟踪器以及任何其他自定义工具集成后,可以带来自动化设施。
  • 它在整个开发生命周期中跟踪您的应用程序进度,并立即发现代码中的风险和漏洞,以便您尽快修复问题,
  • 该工具因其速度而广受欢迎。它以闪电般的速度扫描您的代码,即使在不到 20 分钟的时间内扫描了 22 亿行的巨大磁代码。
  • 在 RISP 分析引擎的帮助下独立扫描多种编程语言,考虑语言的细节以获得最准确的分析。
  • 通过一种非常独特的方法,该工具可以检测一些其他扫描仪可能会遗漏的安全漏洞。

3. 刹车手

它是一个免费的开源代码漏洞扫描器,专为 Ruby on Rails 应用程序设计。它是一个静态代码分析器,它扫描 Rails 应用程序代码以发现开发过程中任何阶段的安全问题。与许多其他网络安全扫描器不同,此工具查看您的应用程序的源代码,因此无需设置整个应用程序堆栈即可使用它。扫描应用程序代码后,它会生成所有安全问题的详细报告。

  • 只需运行此工具,无需任何必要的配置。安装后无需事先设置或配置。
  • 在开发过程的任何阶段随时运行。只需使用 rails new 生成一个新应用程序并立即检查,
  • 提供更完整的应用程序覆盖。该分析器可以在安全漏洞变得可利用之前识别它们。
  • 提供灵活的测试,执行的每个检查都是独立的,因此可以使用 Barkman 进行灵活的测试,
  • 它比“黑匣子”网站扫描仪快得多,甚至可以在几分钟内扫描大型应用程序。

4. 探伤者

它是一个免费、简单的程序,可扫描 C 或 C++ 源代码,可快速识别可能的安全漏洞并生成按风险级别排序的报告。它作为开源软件提供,对于在程序广泛发布给公众之前快速查找和消除潜在的安全问题非常有用。它非常易于使用,并且专门设计为易于安装,python 的 pip 附带一个简单的用户指南。它与通用弱点枚举 (CWE) 兼容,并获得了 CII 最佳实践通过徽章。它对初学者非常有用,它简单介绍了静态源代码分析工具。它旨在作为命令行工具在 Unix、Cygwin、基于 Linux 的系统和 macOS 上使用,并且只需要Python 2.7 或Python 3。

  • 容易安装,也容易使用。它是开始进行代码分析的完美工具。
  • 它是免费的开源软件,具有 OSI 批准的许可证,
  • 即使您无法构建软件也能工作
  • 它非常快,可以在相对较短的时间内检查较大的程序
  • 它具有更高的命中密度(每千行源代码的命中数)。

5. 强盗

它是一个免费工具,专门用于查找Python代码中的常见安全问题。它使用适当的插件处理每个文件,并生成Python代码中可能存在的安全错误的详细报告。它是具有 Apache License 2.0 的开源软件。该工具可在开发期间或之后用于在将代码投入生产之前查找Python代码中的常见安全问题,或使用该工具分析现有项目并查找可能的缺陷。

  • 用于扫描Python代码的命令行界面。
  • 支持 CSV、HTML 或 JSON 文件。
  • 允许指定基线报告的路径,以忽略您认为不是问题的已知漏洞。
  • 使用预提交进行版本控制集成。
  • 允许用户编写和注册检查和格式化程序的扩展。
  • 永远欢迎成为 Bandit 的开源项目贡献者!

结论

在这些代码审查工具的帮助下,通过消除程序中可能的错误来提高软件的质量。这些工具使审查过程自动化,从而最大限度地减少了代码的审查任务,并通过定位在开发的初始阶段未被注意到的问题来提高软件的整体质量。由于商业工具并不适合所有人,并且有一系列开源静态源代码分析选项,但只有少数是好的,因此您应该根据您的项目和编程语言使用给定的强大工具。