一句话:为云端 SAST 工具设计 IDE 原型,用户研究显示代码扫描频率提高三倍,漏洞修复时间有望减少。
将静态应用安全测试(SAST)工具集成到 CI/CD 是保障代码质量与安全的最佳实践。这些云基 SAST 工具通常通过 Web 界面提供结果,但开发者更希望在 IDE 中直接查看发现。然而,CI/CD 中的 SAST 工具运行较慢,难以在编码时反馈。本文通过开发者访谈了解期望,据此为现有云基 SAST 工具实现 IDE 原型。可用性测试表明,该 IDE 方案促进了更频繁的工具交互:代码扫描次数增加三倍,更好地融入工作流;虽然修复性能无统计显著提升,但修复脆弱代码的时间有希望减少。
Integrating static analyses into continuous integration (CI) or continuous delivery (CD) has become the best practice for assuring code quality and security. Static Application Security Testing (SAST) tools fit well into CI/CD, because CI/CD allows time for deep static analyses on large code bases and prevents vulnerabilities in the early stages of the development lifecycle. In CI/CD, the SAST tools usually run in the cloud and provide findings via a web interface. Recent studies show that developers prefer seeing the findings of these tools directly in their IDEs. Most tools with IDE integration run lightweight static analyses and can give feedback at coding time, but SAST tools used in CI/CD take longer to run and usually are not able to do so. Can developers interact directly with a cloud-based SAST tool that is typically used in CI/CD through their IDE? We investigated if such a mechanism can integrate cloud-based SAST tools better into a developers’ workflow than web-based solutions. We interviewed developers to understand their expectations from an IDE solution. Guided by these interviews, we implemented an IDE prototype for an existing cloud-based SAST tool. With a usability test using this prototype, we found that the IDE solution promoted more frequent tool interactions. In particular, developers performed code scans three times more often. This indicates better integration of the cloud-based SAST tool into developers’ workflow. Furthermore, while our study did not show statistically significant improvement on developers’ code-fixing performance, it did show a promising reduction in time for fixing vulnerable code.
DOI 原文 ·
@inproceedings{paperbot6470,
title = {IDE support for cloud-based static analyses},
author = {Linghui Luo and Martin Schäf and Daniel Sanchez and Eric Bodden},
booktitle = {FSE},
year = {2021},
doi = {10.1145/3468264.3468535}
}