作者|薛明伟
编辑|孙瑞瑞
在各行业数字化进程的快速推进和网络安全攻防效果至上、合规趋严的态势下,软件开发面临的不仅仅是功能效能的提升,而是如何在不同开发模式下融合安全要求和能力,构建高效、安全的软件开发体系。
2021 年 10 月 21-23 日举办的 QCon 全球软件开发者大会(上海站),默安科技首席安全开发架构师薛明伟结合自身多年的行业经验,分享如何在多样化的研发体系各个阶段融入安全要求与能力。
以下是演讲内容整理。
1为什么要做开发安全体系?
参照 CNVD 统计数据,大量漏洞层发生在应用层。在近年来的大量攻防演练实战中,应用程序也被认为是最容易被攻破的地方之一。应用程序内生安全缺陷凸显的现状也引起了国家法律和行业监管层面的重视。开发安全体系是应用安全的解法,也是满足合规要求的必经之路。
2开发安全体系在设计阶段的“要和不要”
3 如何实现开发安全体系的成功转变
开发安全体系真正落地的关键问题是能否高效运营。高效运营需要依赖于 4 个核心因素:
从具体实现来看,以上 4 个核心因素都有相应的、比较有效的方法。
1. 流程自动化:建设应用安全运营平台
一个基础的应用安全运营平台应包含 3 个关键功能,分别是
2. 卡点推覆盖:如何设置质量门禁
(1)安全评审(威胁建模)与 SAST安全评审需要结合项目管理平台等,确保所有项目过审,在代码合入时做卡点,只有已备案的分支允许合入;安全评审校验完成后自动进行白盒代码扫描,Gitlab 根据扫描结果判断是否允许代码合入。
(2)安全编码培训与 IAST安全编码培训针对新人入职,自动创建培训与考试,通过后开通工作权限;还可以当某位程序员产出的同一种类漏洞超过一定阈值则自动收回权限,强制完成安全考试,考试通过后恢复权限。这里讨论的 IAST 指的是被动 IAST,可以设立以下质量门禁:
(3)容器安全检查在容器安全检查的卡点主要体现在以下 3 个方面:
3. 能力高可靠:威胁建模 /SAST/IAST/ 容器安全
(1)威胁建模更多发挥的是指导和培训的作用,往往在基础开发安全体系相对完善的单位中更为流行。威胁建模一般采用基于场景的问卷形式,研发的使用和学习成本相对较低,但也存在基于历史经验、针对新场景“无计可施”的缺点,建议针对新的业务场景,可在问卷完成后增加人工安全审核,提高威胁模型的可靠性。
(2)SAST 的作用因其误报等问题在近年来的市场应用中有所削弱,但 SAST 其中一个显著作用是作为 IAST 的缓冲,尤其是在业务并发量非常多的环境中,如果把所有安全检查全部放在测试阶段,整个流程运转必然会面临一定的“拥塞”局面。另外,想要提高 SAST 的扫描质量,无论是提高检出率还是降低误报,需要结合自身企业的开发框架和技术栈自定义大量扫描规则,有一定的规则运营成本。
(3)IAST 主要讨论的还是被动插桩,其优势也是业内公认的,如支持检测敏感数据、加密脱敏的场景,误报率低等;由于 IAST 技术实现原理不同,相对于 SAST,它的规则定制量会少很多;但存在一定的流程运营成本,需要在发布到测试环境的中完成插桩操作。
(4)在容器安全中,目前如能在构建、部署、运行三个阶段中做到安全控制已经相对比较理想,包括镜像安全检查,安全基线、Kubernetes 安全配置等检查,运行时的微隔离、网络通信监控、pod 运行进程监控等。
4. 制度与宣发:安全规范与安全文化建设
组织内部依据安全流程编写详细的安全制度和相应的奖惩制度,再根据制度发布关键的“安全红线”,重点解决“故意绕过安全措施”、“故意编写后门逻辑”等技术手段较难解决的问题。当然安全制度也要根据开发安全体系实际运营情况不断调整。
安全文化也可通过日常宣贯、定制化安全培训、考试激励以及纳入 KPI 等手段逐渐建立起来。
4 开发安全体系从 0 到 1 的步骤与建设收益
下图详细罗列了从 0 到 1 建设开发安全体系的建议步骤。除了前期整体的建设步骤,关键效果的显现离不开最后的精细化运营,即查缺补漏,重点解决一些痛点,例如越权漏洞的检测。
默安科技根据多年来为各行业客户建设开发安全体系的经验,总结了完整体系建设的关键收益:
演讲嘉宾介绍:
薛明伟,默安科技首席安全开发架构师,曾服务于数家国内大型互联网企业;独立负责国家最高安全等级的千万级日活互联网平台全站开发安全体系建设工作;有多年支撑千万级日活的应用安全相关平台和工具的开发和运营经验。
如果你对大前端安全感兴趣,欢迎关注将于 12 月 5-6 日在深圳举办的 GMTC 全球大前端技术大会。会议共计设置 15 个大前端方向的热门专题,你将在「大前端安全」专题看到其他团队是怎么做业务风险防控和业务合规的。点击阅读原文了解更多。
目前会议报名仅剩最后 11 天,购票及其他问题请咨询票务小姐姐小倩:18514549229(微信同电话)