安全测试解决方案公司 GrammaTech 推出了一个名为 Swap Detector 的开源工具,可用来检测应用程序编程接口(API)使用错误。
Swap Detector 是美国国土安全部科技局静态工具分析现代化项目(Static Tool Analysis Modernization Project,STAMP)赞助的研究项目的一部分,可改善 DevOps 团队的应用安全测试。该工具可以让开发人员和 DevOps 团队能够识别由于交换函数参数导致的错误(这些错误也可能存在于部署的代码中)。
GrammaTech 研究副总裁 Alexey Loginov 称,“传统的静态分析技术并没有利用开源领域现有的代表无错误编码实践的大量信息。通过 Swap Detector,我们将大数据分析技术,也就是我们所说的 Big Code 分析,应用到 Fedora RPM 开源库中,以确定正确的 API 使用基准。这让我们开发的错误检测能力远远超过了传统程序分析方法的可扩展性和准确性。 ”
Swap Detector 接口集成了各种静态分析工具,例如 Clang Static Analyzer、Clang-Tidy 和 PyLint。最初,Swap Detector 的研发侧重于 C/C++ 程序方面,但如今其已适用于其他语言的程序,特别是对解释型和非编译型的语言来说非常有利。
Swap Detector 采用多种错误检测技术,并将它们层叠在一起以提高准确性。例如,将调用站点中使用的参数名称与相应声明中使用的参数名称进行比较。此外,它还使用了 “Big Code”技术,应用从大量代码样本中收集的已知良好 API 使用模式的使用情况的统计信息,并将统计上异常的使用情况标记为潜在的错误。为了提高报告警告的精度,Swap Detector 还对这两种技术的输出采用了减少假阳性的策略。
关键词: