跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
取样电阻捷比信 · 专业器件主题站

市场上主流的机器学习静态分析仪

机器学习和人工智能广泛应用于许多领域,尤其是在市场分析和网络安全方面。它们在这些领域的成功应用促使某些人尝试在所有领域中使用它们。这包括使用机器学习系统创建用于定位安全漏洞的静态代码分析器。这些应用程序尝试中的一些已经取得了一些成功:Facebook,Amazon和Mozilla公司现在提供了某种形式的机器学习驱动的静态代码分析器。但是,正如任何了解机器学习基础的人都知道的那样,这些方法也有一些固有的局限性。机器学习静态分析器在过去的几年中,人们已经看到市场上出现了许多机器学习驱动的静态分析器。其中一些是由狂热的爱好者开发的。其他是由技术巨头开发的。 Facebook,Amazon和Mozilla现在都提供了这样的工具,每个版本都有望从根本上改变开发过程。实际上,这些工具在搜索漏洞和错误时为开发人员节省了时间。以下是市场上一些主流的机器学习静态分析器:1. DeepCode DeepCode可能是最著名的Java,JavaScript和Python漏洞搜索程序。 DeepCode还提供了机器学习模块,开发人员将其称为“开发人员语法”。 DeepCode的机器学习模块通过查看开发人员在处理大量项目时所做的大量更改来工作。通过学习,DeepCode可以为开发人员提供针对他们正在解决的问题的建议解决方案,并捕获先前的错误。 DeepC ++ ode仍然包含一些限制。该系统的开发人员声称将从2018年开始支持C ++语言,并且开发人员可以通过其插件使用C ++和DeepCode。 2. InferInfer已经存在了将近十年,并于2013年被Facebook收购,作为基于机器学习原理的静态代码分析器的基础。由于许多原因,Infer作为静态分析器已变得非常流行:它支持多种语言,并且可以与AWS和Oculus结合使用。最重要的是,该项目的源代码于2015年开放,促进了该项目的快速发展。尽管它很受欢迎,但即使使用Infer的开发人员也承认,即使在Facebook项目中,它生成的警告中只有80%是有用的。它会发现指针取消引用和内存泄漏错误,但是仍然存在Infer无法检测到的错误类别,包括类型转换异常和未验证的数据泄漏。 3. Source {d} Source {d}是一个开源静态代码分析器和开发管理器。它不仅致力于为管理人员提供有关特定软件项目进度的信息,而且还为开发人员提供了许多工具。作为静态应用程序安全测试协议的一部分,它可以执行许多有用的SAST功能,包括分析字节码和二进制文件以及应用程序源代码中的漏洞。该软件的主要优点之一是其源代码是完全透明的,可以在GitHub存储库中使用,因此开发人员可以从根本上构建自己的机器学习增强型代码分析器。这意味着Source {d}在隔离代码错误方面非常受限制。它使用Babelfish服务将特定的代码实例转换为通用语法树,然后从那里简化并建议对代码的编辑,使其更易于使用。这可以在使用代码时为开发人员节省大量时间,但这不是完整的静态分析器。其他静态分析器除了这三种解决方案之外,还有望实现一些新兴的静态分析器。聪明地提交是Mozilla的一个项目,但是细节仍然令人沮丧。 CodeGuru是Amazon的机器学习增强型静态代码分析器,但目前仅适用于Java。 Embold是用于错误分析的启动平台,提供可视代码依赖关系,但在可以使用的语言方面也受到限制。所有这些系统对开发人员都非常有用,但是只有与特定语言结合使用,并且仅在经过培训以达到特定结果的地方,它们才有用。换句话说,支持机器学习的静态代码分析器(一种可以在多种语言和环境中捕获错误和失败的多功能工具)的承诺尚未兑现。开发爱好者会说,这仅仅是因为由机器学习驱动的静态分析器仍需要进一步开发。但是,重新思考机器学习系统的实际工作方式表明,这些问题可能会持续一段时间。结论最后,人们需要理解的是。机器学习技术仍处于起步阶段,可能会发现许多有用的应用程序