“在本环节中,已经不再涉及到SDL中的“工具”,转而向“流程”。产品发布前的最后一道关卡,做最终的安全验收。无论是否能满足安全质量要求,产品均有可能发布上线,但一定得有兜底的措施。”
01
—
安全目标
对于符合安全部门要求的产品,放行发布上线;对不符合安全要求的产品,理论上则不允许上线。然而在实际的场景中,业务和安全孰轻孰重一直是热议的话题,即使是在大型互联网公司也会存在部分业务优先。但在放行不达标产品前,需要将安全风险降低和安全责任抛出,并制定一系列的第二或第三选择安全方案进行兜底,切实起到公司安全投入有产出、安全赋能产品的初衷。
02
—
安全活动
在发布审核阶段,安全活动主要围绕最终安全评审、安全绿色通道开展。
1)最终安全评审
最终安全评审内容包括:安全设计checklist自检报告、静态代码扫描报告、web漏洞扫描报告、人工安全测试(前三项在安全测试阶段已经完成check,且为人工安全测试的充分条件),以及人工安全测试发现的高中危漏洞是否有遗留。
2)安全绿色通道
面对不同情况下的“业务优先”,安全部门需要预留特殊通道为不符合安全要求的产品做好准备。此时,需要关注以下三点:
03
—
安全实践
1)简单的最终安全审核
上线前的安全审核,往往会提前开始于测试阶段进行,到发布上线前的审核工作相对简单很多,比如仅看该项目是否包含安全提测工单、安全提测是否通过。除此之外,审核后需要手工或自动配置域名转发、边界防火墙映射等,故这部分工作一般由非安全测试人员负责,最终安全评审实际意义上也就是最终安全审核。
2)绿色通道具体流程
在实际的产品研发中,无论是因为产品经理没有预留足够的时间,还是发现漏洞较多或修复成本较大,难以在一定时间内修复,总会碰到申请绿色通道。一般有以下流程:
04
—
持续优化
该环节的需要关注点在已知风险告知,难点在遗留漏洞跟进闭环,可能存在绕过的点在安全审核。其中需要优化和加强的便是安全审核,建立一定的机制进行check,确定业务方是否:
然而,最终安全审核是否被“旁路”,很大程度上取决于现有的研发流程。因为SDL并不是要求业务方一起来玩一套新的流程,而是在现有研发流程中适当加入必要的安全活动。针对已经存在的问题和难题,如果从流程上难以解决,可以通过立规矩、技术手段发现特例、依据进行处罚等方式进行补强。然而,这些都不是一蹴而就,需要循序渐进的发现和优化。