又一个编程优秀工具来了!微软开源软件特征源码分析工具

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

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

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

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

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

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

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

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

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

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章