
Microsoft已发布Microsoft Application Inspector,这是一个用于分析源代码的跨平台开源(!)工具。
Application Inspector与传统的静态分析工具的不同之处在于,它不会尝试识别“好”或“坏”模式。 他将报告说,他将基于500多个规则模板的初始集合进行检测,这些规则模板用于检测功能,包括影响安全性的功能(例如使用密码术等)。
Application Inspector的主要目标是系统地,可扩展地识别源代码功能,而其他典型的静态分析器中找不到这些功能。 这使开发人员和安全专家可以验证组件的预期目标,例如,所使用的库仅执行其中声明的操作。
现代应用程序严重依赖于公司外部编写的软件,这会带来风险。 Application Inspector可以通过检查源代码来帮助确定应用程序的有趣特征,与“手动”分析相比,可以节省大量时间。
该应用程序是基于.NET Core的客户端工具,因此它将在Windows,Linux或macOS上运行,并且不需要提升的特权以及本地数据库,网络通信或遥测。 要启动它,只需运行标准dotnet命令行即可,例如,如果运行的是Linux或macOS或Windows AppInspector.exe,则调用dotnet ApplicationInspector.dll。
> dotnet AppInspector.dll or on *Windows* simply AppInspector.exe <command> <options> Microsoft Application Inspector 1.0.17 ApplicationInspector 1.0.17 (c) Microsoft Corporation. All rights reserved ERROR(S): No verb selected. analyze Inspect source directory/file/compressed file (.tgz|zip) against defined characteristics tagdiff Compares unique tag values between two source paths tagtest Test presence of smaller set or custom tags in source (compare or verify modes) exporttags Export default unique rule tags to view what features may be detected verifyrules Verify rules syntax is valid help Display more information on a specific command version Display version information
您可以根据需要添加/编辑/删除标准规则或模式。 也可以将您自己的规则添加到默认集的单独路径中,然后保存默认集或使用命令行选项将其排除。
测试和应用领域:
- 控制流:动态代码执行,流程管理。
- 密码:加密,散列,秘密,随机化。
- 操作系统操作:文件系统,环境变量,网络操作,用户帐户,Windows注册表。
- 数据:JSON / XML,秘密/访问密钥,敏感个人数据,SQL / ORM。
- 数据处理:对象序列化(XML / JSON),Flash,PDF,Silverlight,音频/视频媒体使用或解析,蓝牙,蜂窝,RPC。
- 框架:开发,测试,依赖关系。
默认情况下,Application Inspector会生成一个基于html的报告,以说明功能,项目摘要和找到的元数据。 还支持JSON和TEXT输出格式选项。

GitHub项目页面 。