编程语言的微软开源软件特征源码分析工具

    作者:猿妹编译更新于: 2020-02-04 15:32:50

    大神带你学编程,欢迎选课

    又一个编程神器来了!微软开源软件特征源码分析工具。编程语言(programming language)是一种被标准化的交流技巧,用来向计算机发出指令,定义计算机程序,让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动的一种计算机语言。

    编程语言可以分成机器语言、汇编语言、高级语言三大类。计算机领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。

    为了提高软件的质量,避免开源软件的固有风险,微软开源了其内部使用的源码分析器是 Application Inspector,可以识别软件中的一些特性和元数据。

     编程语言的微软开源软件特征源码分析工具_编程语言_Java视频_Javascript视频_课课家

    现代软件开发通常涉及数百个组件来构建应用程序,这些组件可能是来自组织中的另一个团队,外部供应商,或开源社区中的某个人编写的,这样做有很多好处,诸如发布时间、质量和互操作性,但有时会带来隐藏的风险。

    尽管你信任自己的团队,但是他们编写的代码通常只占整个应用程序的一小部分,你对这些外部组件了解多少呢?从某种程度来说,你对这些组件的信任程度和团队是一样的。

    为了提高软件的质量,避免开源软件的固有风险,微软开源了其内部使用的源码分析器是 Application Inspector,可以识别软件中的一些特性和元数据。

    Application Inspector与典型的静态分析工具的不同之处在于,它并不局限于检测糟糕的编程实践,相反的,它会在代码中显示一些有趣的特性,它会根据 500 多种规则模式报告发现的内容,并进行特征检测,包括影响安全性的特征,例如加密技术的使用等。

    这边,我们一起来看一下这段代码:

    我们可以看到一段程序代码,它从URL下载内容,将其写入文件系统,然后执行shell命令以列出该文件的详细信息。如果通过Application Inspector运行此代码,它就会识别出以下内容:

    • FileOperation.Write
    • Network.Connection.Http
    • Process.DynamicExecution

    在这个小例子中,手动检查代码片段以识别那些相同的功能很简单,但是许多组件包含成千上万行代码,现代web应用程序经常使用数百个这样的组件。而Application Inspector就是专门为大规模的应用程序设计。

    Application Inspector是一个跨平台的命令行工具,可以生成多种格式的输出,包括JSON和交互式HTML。以下是HTML报告的示例:

    上方报告中的每个图标代表源代码中标识的功能。展开功能后单击链接,你就可以查看相关代码。

    Application Inspector 包含一个可过滤的置信度指示器,可帮助最大程度减少误报匹配以及可自定义的默认规则和条件匹配逻辑,其带有数百种功能检测模式,涵盖了许多流行的编程语言,并且对以下类型的特征提供了良好的支持:

    • 应用程序框架(开发、测试)
    • 云/服务 API(Microsoft Azure、Amazon AWS 和 Google Cloud Platform)
    • 密码学相关(对称、非对称、哈希和 TLS)
    • 数据类型(敏感的个人身份信息)
    • 操作系统功能(平台标识、文件系统、注册表和用户帐户)
    • 安全功能(身份验证和授权)

    目前,Application Inspector 已经在Github上获得266个Star,23个Fork(Github地址:https://github.com/Microsoft/ApplicationInspector)感兴趣的伙伴们赶紧尝试下吧。

    编程语言是人类控制电脑的手段,所以绝大多数编程语言都试图使这个过程更加强大和简单。也正因此这个领域诞生了数百种编程语言,不过其中许多编程语言目前已经不再使用,还有一些可能在未来几年里会过时,然而还有很多语言将不断发展,在目前以及未来都占有重要的位置。

课课家教育

未登录

1