写点什么

测试人员可以做些什么来确保软件安全

  • 2026-01-12
    北京
  • 本文字数:1521 字

    阅读完需:约 5 分钟

 Sara Martinez 在Online TestConf上的演讲“确保软件安全”中说到,一个安全的软件开发生命周期意味着将安全融入到计划、设计、构建、测试和维护各个阶段,而不是在最后阶段才匆忙添加。测试人员不是漏洞查找者,而是早期的防御者,从第一个冲刺开始构建安全性和质量。文化第一,自动化第二,全程持续测试和监控;她认为,这就是如何让安全成为一种习惯,而不是紧急演练的方式。

 

通用弱点枚举(Common Weakness Enumeration, CWE)统计数据显示,超过 85%的软件弱点来自于我们如何实现代码,大约 60%可以追溯到设计决策。Martinez 说,这意味着产品的基础、架构和构建方式对产品的安全性有着巨大的影响。她补充说,一旦产品上线,就要密切关注它,运行漏洞扫描,并在问题出现时尽快修补,以领先于攻击者。

 

安全的软件开发生命周期看起来很像常规的 SDLC,但每个步骤都内置了安全性,Martinez 解释道:

 

* 它首先定义明确的安全需求,并在规划和设计时运行威胁建模。

* 在开发过程中,遵循安全编码实践,审查依赖关系,并使用安全测试自动化工具或依赖项* 扫描器来尽早捕获弱点。

* 测试超越了 DAST、渗透测试和其他安全检查的功能,以发现真正的攻击路径。

* 一旦产品上线,你就可以通过安全部署、持续监控和快速补丁管理来保证它的安全。

 

Martinez 认为,安全的软件从文化开始,就像质量一样。这不是一个清单,而是关于开发者、测试人员、运维人员和管理人员之间的责任分担:

 

每个公司都应该创建适合其产品的行动计划,查看安全软件开发指南,并确保安全实践是日常工作的一部分。自动化是关键;将安全分析工具引入 CI/CD 管道,以便及早和一致地发现弱点。

 

Martinez 提到不要忘记测试的人为方面:添加与安全需求相关的特定功能测试用例,以便团队保持对诸如弱输入验证、风险角色和权限配置或访问控制等问题的警觉。

 

Martinez 说,许多最严重的事件仍然来自旧的、众所周知的攻击,我们可以通过正确的工具和实践来预防这些攻击。现在,我们面临着新的挑战,比如与 AI 相关的漏洞,它们正在重塑格局:

 

例如,许多公司正在使用 AI 来生成代码,但他们没有扫描它或应用安全开发实践,因此他们最终将已知的漏洞引入到他们的产品中。

 

我学到了很多,但我知道我永远也学不完。安全性是一个移动的目标,安全性测试是一个持续的挑战,这正是使它成为一个如此迷人、不断变化的世界的原因。

 

InfoQ 就软件安全问题采访了Sara Martinez

 

InfoQ:测试人员在安全方面扮演什么角色?

 

Sara Martinez:测试员是我们拥有的最好的安全秘密武器之一。我认为我们的角色不仅仅是检查功能是否有效;我们很容易注意到可能变成大漏洞的小问题,比如弱输入验证、有风险的角色和权限配置,或者访问控制。

 

团队需要在安全软件开发生命周期(SSDLC)中共担安全责任,比如挑战安全需求、帮助进行威胁建模,以及运行静态和动态安全自动扫描以尽早发现问题。测试人员可以通过确保快速验证修复并集成到 CI/CD 中来保持管道中的安全性。

 

InfoQ:我们有哪些关于漏洞和弱点的数据,我们如何使用这些数据?

 

Martinez:像 CWE (Common Weakness Enumeration)和 CVE (Common Vulnerabilities and Exposures)这样的数据标准为我们提供了一种描述软件弱点和现实世界漏洞的共享语言。这些数据不仅仅用于报告;自动化扫描器实际上使用这些引用来检测代码和正在运行的应用程序中的漏洞。

 

我认为这也是发现攻击者趋势的好方法。在过去的几年里,顶级 CVE 一直被跨站点脚本(XSS)和 SQL 注入等问题所主导,这些问题继续影响着很大比例的软件产品。使用这些数据可以帮助团队确定测试的优先级,关注安全编码实践,并对攻击者真正利用的东西保持警惕。

 

原文链接:

https://www.infoq.com/news/2026/01/ensure-software-security/