微软近日开源了其内部使用的软件特征源码分析工具 Application Inspector。
现代软件开发实践通常需要基于数百个现有组件中构建应用,无论它们是由组织中的另一个团队、外部供应商还是开源社区中的某个人编写的。这样虽然会带来许多好处,比如加快开发进度、软件质量与互操作性等,但同时也会带来隐藏的复杂性和风险。
应对这种情况,微软介绍其内部使用的工具是 Application Inspector,这是一个软件特征源码分析器,可以通过使用静态分析和可自定义的基于json的规则引擎来识别软件源码特征,了解程序的功能。
此工具与传统的静态分析工具的不同之处在于,它不会尝试识别“好”或“坏”的模式,而是会根据500多种规则模式报告发现的内容,并进行特征检测,包括影响安全性的特征,例如加密技术的使用等。
在以下示例中,Application Inspector将识别出以下功能:
• FileOperation.Write
• Network.Connection.Http
• Process.DynamicExecution
这些功能可以告诉我们很多程序的相关信息。
Application Inspector包含一个可过滤的置信度指示器,可帮助最大程度减少误报匹配以及可自定义的默认规则和条件匹配逻辑,其带有数百种功能检测模式,涵盖了许多流行的编程语言,并且对以下类型的特征提供了良好的支持:
• 应用程序框架(开发、测试)
• 云/服务API(Microsoft Azure、Amazon AWS和Google Cloud Platform)
• 密码学相关(对称、非对称、哈希和TLS)
• 数据类型(敏感的个人身份信息)
• 操作系统功能(平台标识、文件系统、注册表和用户帐户)
• 安全功能(身份验证和授权)