1、武鑫武鑫/产品安全负责人、产品安全负责人、QAXSRC负责人负责人/奇安信奇安信奇安信网络安全部产品安全负责人、奇安信网络安全部产品安全负责人、QAXSRC负责人、负责人、网络尖刀网络尖刀Z小队成员、小队成员、VSRC2016年第二季度年第二季度“安全专安全专家家”、HCSRC总排行榜第二。总排行榜第二。擅长从攻防视角发现并闭环安全隐患,具备擅长从攻防视角发现并闭环安全隐患,具备5年安全年安全攻防经验,专注于研发安全、安全测试方向,在攻防经验,专注于研发安全、安全测试方向,在SDL、DevSecOps领域有一定研究和落地经验。对外输出四领域有一定研究和落地经验。对外输出四十余篇原创文章,公众号
2、【我的安全视界观】作者。十余篇原创文章,公众号【我的安全视界观】作者。Shift Left在开发安全中的应用分享大纲:从测试视角看左移开发安全左移实践开发安全左移建议Speaker:武鑫(奇安信产品安全负责人)Where Shift-Left?Arthur Hicken:The Shift-Left Approach to Software Testing 测试测试活动尽早活动尽早的介入到软件研发过程中,强调开发工程师开发工程师验证自己编写的代码。(即:开发自测,包括代码逻辑、接口测试等,从效能方面来看也更加合适)Why Shift-Left?图片来自 Capers Jones Applied
3、 Software Measurement:Global Analysis of Productivity and Quality1、85%的缺陷都是在开发人员编码时引入;2、目前大多缺陷都是在测试阶段发现;3、缺陷的修复工作越往后开销越大。What Shift-Left?但开发安全又不仅限于安全测试,还需要安全组织、安全流程、安全规范、安全工具支撑。PlanningCodingBuildingTestingReleasingDeployingOperatingMonitoringCommon Security TestingSecurity Development Life Cycle 类似
4、于测试,安全测试也应该前置。在产品研发流程中,向靠前的环节嵌入相应的安全活动。概念阶段Concept计划阶段Plan开发阶段Development验证阶段Validation发布阶段Launch生命周期管理阶段LifecycleTR1TR2TR3TR4TR5TR6GA安全设计安全编码安全测试发布审核线上运营产品安全设计基线产品安全架构设计产品威胁建模与风险分析编码安全规范静态代码审计第三方开源组件安全治理基础安全扫描自动化安全测试人工安全测试安全质量审核产品安全基线(交付)漏洞情报监测产品安全众测QAXSRC运营 安全组织与流程安全组织与流程 安全技术与培训安全技术与培训OEM-IN 产品安全
5、外部合作产品安全供应商及物料安全供应链安全产品安全应急响应团队PSIRT产品安全BP白盒安全测试专员安全提测流程安全插队流程安全绿色通道产品应急流程交互式安全测试(IAST)人工代码审计安全架构设计安全提测宣贯安全测试培训白盒审计培训开发安全培训基于业务场景的开发安全全景开发安全左移实践源头管控7个实践案例开源治理安全教育开发环境安全编译代码保护运营反馈开发安全左移实践实践1:源头管控(跳出研发流程)源头管控自研产品外购产品三方组件开发安全安全运营安全清单安全响应资产管理安全测试产品研发包括全自研、OEM、外购、引用三方组件等情况l 安全响应:漏洞响应机制 漏洞反馈机制l 安全清单:代码审计报
6、告/渗透测试报告/漏扫报告 系统架构&组件清单信息开发安全左移实践实践2:开源治理(进入研发流程)l 双向治理:攻击成功视角&合规视角(组件黑名单)l 漏洞闭环:安全测试质量触发漏洞整改通知单抄送领导,安全问题群进行公示开源代码漏洞扫描互联网漏洞预警开源组件安全扫描开源组件可利用漏洞库供应链安全分析系统Git开源代码许可证扫描开源代码片段引用扫描Exploit DB 漏洞利用条件漏洞CVSS 7.0漏洞存在公开EXP源代码安全扫描供应链安全分析片段代码引用扫描域账号/产品/部门开源组件名称开源组件版本工单系统开发安全左移实践实践3:安全教育编码安全规范编码安全培训编码安全考试漏洞排名公布安全扫
7、描规则规章制度培训赋能检测手段激励措施开发安全左移实践实践4:开发环境从官网下载并保持更新,不使用破解版网络环境开发工具开发框架编译器开发环境开发网络环境与办公网隔离、与互联网隔离开发编译器从官网下载,使用较新版本,比如:JDK使用不常报高危漏洞的框架且保持更新,比如:Struts2开发安全左移实践实践5:安全编译l 使用编译器(GCC&VS)提供的安全选项加固,防止缓冲区溢出攻击。l 加固范围:C、C+Windows平台Linux平台Android平台VxWork平台缓冲区溢出检查(GS)数据执行保护(DEP)地址空间随机化安全异常处理(SAFESEH)安全开发生命周期检查(SDL)栈保护F
8、S整数溢出检查删除符号表告警选项不可执行代码段写保护终止栈溢出和欠载保护ASLRGOT表保护堆栈不可执行地址无关随机化立即绑定动态库搜索路径visibility开发安全左移实践实践6:代码保护敏感信息泄露监测软件交付物安全代码仓库保护代码仓库分离核心代码仓库不落盘关键代码混淆编译杜绝硬编码密码主战场是GitHub等代码托管平台其次是网盘,不过技术博客要关注软件代码加密终端安全加固代码拉取监控代码外发DLP监控开发安全左移实践实践7:运营反馈SRC收到产品的高危漏洞收到产品的高危漏洞工具黑盒测试工具黑盒测试人工白盒测试人工白盒测试安全设备告警安全设备告警一线运营处置一线运营处置安全测试规则白盒测试能力安全检测规则应急响应能力l 最有效验证防守的方式就是攻击,包括主动和被动,比如红队渗透、外部漏洞悬赏l 每一次在运营阶段发现产品漏洞,就是一次提升的机会,向左层层反馈,查漏补缺持续优化开发安全左移建议Shift Left Approach to Security Development 左移是相对的贯彻纵深防御安全责任共担问题抓大放小安全问题闭环安全运营反馈