当前位置: 首页 > 科技观察

又一编程神器来了!微软开源软件特性源代码分析工具

时间:2023-03-13 18:54:06 科技观察

现代软件开发通常涉及数百个组件来构建应用程序,这些组件可能是由组织中的另一个团队、外部供应商或开源社区中的某个人编写的,有这样做有很多好处,例如发布时间、质量和互操作性,但有时它会带来隐藏的风险。尽管您信任您的团队,但他们编写的代码通常只是整个应用程序的一小部分。这些外部元件你了解多少?在某种程度上,您和团队一样信任这些组件。为了提高软件质量,规避开源软件固有的风险,微软开源了其内部的源代码分析器ApplicationInspector,它可以识别软件中的一些特性和元数据。ApplicationInspector不同于典型的静态分析工具,它不仅限于检测不良的编程实践,而是揭示代码中有趣的特征,它根据500多个规则模式报告内容,并进行特征检测,包括影响安全的特征,例如使用加密技术。在这里,让我们看一下这段代码:我们可以看到一段程序代码,从一个URL下载内容,写入文件系统,然后执行一个shell命令列出文件的详细信息。如果您通过应用程序检查器运行这段代码,它会识别以下内容:数千行代码,现代Web应用程序通常使用数百个这样的组件。ApplicationInspector专为大型应用程序而设计。ApplicationInspector是一个跨平台的命令行工具,可以生成多种格式的输出,包括JSON和交互式HTML。下面是一个HTML报告的示例:上面报告中的每个图标代表源代码中标识的一个函数。展开功能点击链接后,可以查看相关代码。ApplicationInspector包括一个可过滤的置信度指示器,以帮助最大限度地减少误报匹配以及可自定义的默认规则和条件匹配逻辑,具有数百种功能检测模式,涵盖许多流行的编程语言,并且对以下类型的功能有很好的支持:应用程序框架(开发、测试)云/服务API(MicrosoftAzure、AmazonAWS和GoogleCloudPlatform)加密相关(对称、非对称、散列和TLS)数据类型(敏感的个人身份信息)操作系统功能(平台身份、文件系统,registry,anduseraccounts)安全特性(认证和授权)目前,ApplicationInspector在Github上获得了266个Star和23个Fork(地址:https://github.com/Microsoft/ApplicationInspector),有兴趣的小伙伴不妨试试看。