软件开发安全:从角色到分析方法的全面解析
1. DevSecOps与SRE角色概述
在软件开发过程中,安全问题并非某个人能够独立解决的,整个团队都肩负着安全责任,如同对待质量问题一样。由此诞生了DevSecOps的理念,它强调开发、安全和运维的协同合作。
不过,在生产链中,并非每个人都能在所有方面表现出色,大家各有所长,在DevSecOps组织中,有些成员更关注开发(Dev)领域,而有些则在运维(Ops)领域展现优势。
而站点可靠性工程师(SRE)是一个比较特殊的角色。这个术语最初源自谷歌,SRE负责处理服务的可靠性问题。他们的工作指标是错误预算,即假设软件存在错误,这些错误会导致服务停机,因此为每个服务设定了特定的错误预算或停机预算。SRE的目标是在预算范围内工作,并将停机时间视为一种可投资的资源,用于系统的改进。但因漏洞、损坏或网络攻击导致的停机时间会从该预算中扣除。
SRE需要在系统的健壮性和新功能的引入之间找到平衡。他们最多可将50%的工作时间用于运维领域,以实现系统的自动化;其余时间则作为开发者参与新功能的实现。那么,SRE是否也负责安全工作呢?以SolarWinds事件为例,在价值链中,谁对解决漏洞问题最具影响力,这值得我们深入探讨。
2. 静态和动态安全分析
安全分析主要有两种类型,即静态应用安全测试(SAST)和动态应用安全测试(DAST)。
2.1 静态应用安全测试(SAST)
SAST专注于应用程序的静态分析,旨在识别和定位已知的漏洞。它是一种白盒测试过程,需要访问被测试应用程序的源代码,但不需要运行时环境,也无需执行应用程序,这就是“静态”的含义。 <
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



