0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习进行静态分析的步骤

如意 来源:企业网D1Net 作者:Lee Doyle 2020-12-28 16:08 次阅读

机器学习人工智能这两种技术在许多领域广泛应用,尤其是在营销分析和网络安全方面,它们在这些领域的成功应用促使有些人试图将它们用于所有方面。这其中包括使用机器学习系统创建用于定位安全漏洞的静态代码分析器。

其中一些应用尝试取得了一定的成功:Facebook、亚马逊和Mozilla公司现在都提供了某种形式的机器学习驱动的静态代码分析器。但是,正如了解机器学习基础的任何人都知道的那样,这些方法也存在一些固有的局限性。

机器学习静态分析器

在过去的几年里,人们看到市场上出现了大量的机器学习驱动的静态分析器。其中一些是由热心的业余爱好者开发的;另一些是由科技巨头开发的,Facebook、亚马逊和Mozilla现在都在提供这样的工具,而且在发布每一个版本时都承诺会彻底改变开发过程。

实际上,这些工具在搜索漏洞和错误时为开发人员节省了时间。以下了解一下市场上主流的一些机器学习静态分析器:

1.DeepCode

DeepCode可能是Java、JavaScript和Python最著名的漏洞搜索程序。DeepCode还提供了一个机器学习模块,开发人员称其为“开发人员的语法”。

DeepCode的机器学习模块通过查看开发人员在处理大量项目时所做的大量更改来工作。通过学习,DeepCode可以为开发人员提供针对他们正在解决的问题的建议解决方案,并捕获以前出现的错误。

DeepCode仍然包含一些限制。该系统的开发者声称,自从2018年起将支持采用C ++语言,开发人员可以通过其插件使用C ++和DeepCode。

2.Infer

Infer已经存在了将近十年,并于2013年被Facebook公司收购,作为基于机器学习原理的静态代码分析器的基础。由于多种原因,Infer作为静态分析器已变得非常流行:它支持多种语言,并且可以与AWS和Oculus结合使用。最重要的是,该项目的源代码于2015年开放,从而推动了项目的快速发展。

尽管它很受欢迎,即使是使用Infer的开发人员也承认,即使在Facebook项目中,它生成的警告中也只有80%是有用的。它将发现指针取消引用和内存泄漏错误,但是仍然存在Infer无法检测到的错误类别,包括类型转换异常和未验证的数据泄漏。

3.Source{d}

Source {d}是一个开源静态代码分析器和开发管理器,它不仅致力于为管理者提供有关特定软件项目进度的信息,而且还为开发人员提供了许多工具。作为静态应用程序安全测试协议的一部分,它可以执行许多有用的SAST功能,其中包括分析字节码和二进制文件以及应用程序源代码中的漏洞。

该软件的主要优点之一是其源代码是完全透明的,并且可以在GitHub存储库中使用,从而使开发人员可以从根本上构建自己的机器学习增强型代码分析器。

这就是说,Source {d}在隔离代码错误方面非常有限。它使用Babelfish服务将特定的代码实例转换为通用语法树,并从那里可以简化和建议对代码的编辑,使其更易于使用。在使用代码时,这可以为开发人员节省大量的时间,但这并不是一个完整的静态分析器。

其他的静态分析器

除了这三种解决方案之外,还有一些新兴的静态分析器有望实现。Clever-commit是Mozilla公司的一个项目,但是在细节方面仍然令人沮丧。CodeGuru是亚马逊公司的机器学习增强型静态代码分析器,但目前仅适用于Java。Embold是一个用于错误分析的启动平台,提供可视化的代码依存关系,但在可使用的语言方面也受到限制。

所有这些系统对于开发人员都非常有用,但只有在将它们与特定语言结合使用的情况下,并且仅在经过培训以实现特定结果的地方,这些功能才是有用的。换句话说,支持机器学习的静态代码分析器(一种可以在多种语言和环境中捕获错误和故障的多功能工具)的承诺尚未实现。

开发爱好者会说这只是因为机器学习驱动的静态分析器仍需要进一步开发。然而,重新考虑机器学习系统的实际工作方式表明,这些问题可能会持续存在一段时间。

结论

最后,人们要了解的是。机器学习技术仍处于起步阶段,并可能在许多开发领域中找到许多有用的应用程序。但是需要知道,机器学习技术仍然很难改变静态分析工具的构建方式。

从最根本的角度来说,这是因为静态分析与机器学习平台本质上是不同的。与用于运行人工智能和机器学习系统的模糊的概率逻辑不同,错误隔离和修复需要精确的、可重复的方法。最终人们不希望静态分析器根据其他示例指出代码可能出错,并且想确切地知道它是否能够工作。

遗憾的是,只有通过明确编码的分析器才能实现这种确定性。至少现在是这样。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8375

    浏览量

    132397
  • 静态分析
    +关注

    关注

    1

    文章

    39

    浏览量

    3872
收藏 人收藏

    评论

    相关推荐

    机器学习的基础内容

    学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析
    发表于 08-20 08:07

    机器学习的基础内容

    :随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习
    发表于 11-24 06:00

    机器学习的基础内容介绍

    学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析
    发表于 01-12 08:12

    机器学习的基础内容汇总

    人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习
    发表于 02-28 06:12

    什么是机器学习? 机器学习基础入门

    的指导下,这个过程从数据开始。也就是说,我们嵌入式系统产生的大量数据。机器学习开发过程的第一步是收集数据,并在数据输入模型之前对其进行标记。标记是一个关键的分类步骤,也是我们将一组输入
    发表于 06-21 11:06

    机器学习模型切实可行的优化步骤

    这篇文章提供了可以采取的切实可行的步骤来识别和修复机器学习模型的训练、泛化和优化问题。
    的头像 发表于 05-04 12:08 2624次阅读

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

    机器学习和人工智能这两种技术在许多领域广泛应用,尤其是在营销分析和网络安全方面,它们在这些领域的成功应用促使有些人试图将它们用于所有方面。这其中包括使用机器
    的头像 发表于 12-27 09:50 1406次阅读

    共射极放大电路的静态分析步骤 静态工作点调整方法

      共射极放大电路的静态分析是指对该电路在直流偏置下的电性能进行分析静态分析的目的是确定晶体管
    发表于 02-27 11:10 1w次阅读

    机器学习之关联分析介绍

    数据挖掘中应用较多的技术是机器学习机器学习主流算法包括三种:关联分析、分类分析、聚类
    的头像 发表于 03-25 14:13 1761次阅读

    机器学习之分类分析与聚类分析

    数据挖掘中应用较多的技术机器学习机器学习主流算法包括三种:关联分析、分类分析、聚类
    的头像 发表于 03-27 14:13 4705次阅读

    使用Azure和机器学习进行传感器数据分析

    电子发烧友网站提供《使用Azure和机器学习进行传感器数据分析.zip》资料免费下载
    发表于 06-16 10:57 1次下载
    使用Azure和<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>进行</b>传感器数据<b class='flag-5'>分析</b>

    使用机器学习进行预测

    电子发烧友网站提供《使用机器学习进行预测.zip》资料免费下载
    发表于 07-04 10:22 0次下载
    使用<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>进行</b>预测

    使用 RAPIDS RAFT 进行机器学习和数据分析的可重用计算模式

    使用 RAPIDS RAFT 进行机器学习和数据分析的可重用计算模式
    的头像 发表于 07-05 16:30 559次阅读
    使用 RAPIDS RAFT <b class='flag-5'>进行</b><b class='flag-5'>机器</b><b class='flag-5'>学习</b>和数据<b class='flag-5'>分析</b>的可重用计算模式

    什么是静态代码分析静态代码分析概述

    静态分析可帮助面临压力的开发团队。高质量的版本需要按时交付。需要满足编码和合规性标准。错误不是一种选择。 这就是开发团队使用静态分析工具/源代码分析
    的头像 发表于 07-19 12:09 1540次阅读
    什么是<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>?<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>概述

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器学习算法模型 机器
    的头像 发表于 08-17 16:11 1064次阅读