这是之前写的一篇关于建设产品安全团队的建议方案,并就此跟想组建安全团队的业务BG领导进行了友好且热烈的交流。
1、总体思路:
1.1、 明确需要做哪些事情,并按优先级排序,再找到合适的专业人员去实施。
1.2、 人员(特别是资深人员)并不总是可获得,有些事情短期内也不太可能做得起来,初期花钱买一些安全产品、服务或相关的安全解决方案不失为一种快速有效的方法,但不可过于依赖,否则后期受制于人并且还没有自己的经验积累。
2、SDL
2.1、SDL简介:
SDL全称是安全开发生命周期。它有微软最早提出的,在软件工程师中实施,是帮助解决软件安全问题的方法。SDL是一个安全保证的过程,它在开发的所有阶段都引入了安全和隐私的原则。
2.2、分阶段实施原则:
详细信息如下附件所示:
2.3、SDL内容讲解:
以下对SDL流程中的部分内容的实施目的以及实施方法进行描述。
2.3.1、安全培训:
培训可以从漏洞原理、漏洞检测、漏洞利用和漏洞防御几个维度进行,每次培训可以1个或多个维度进行讲解,培训的内容可以是跟业务贴切的内容,比如web应用安全、移动应用安全、互联网业务安全等等。
漏洞原理:
让全体人员对漏洞有个基本认识。
漏洞检测:
主要面向于测试人员的培训。hv目前缺乏安全测试人员的积累,也积极在测试人员中挖掘对这方面感兴趣的人才。
漏洞利用:
让全体人员(特别是开发人员)对漏洞的危害有一个深刻的认识,让大家意识到,XSS不再是弹一个框,内存越界(缓冲区溢出)不仅仅是一个功能BUG。
漏洞防御:
主要针对开发人员的培训。不少开发人员苦于在业务上投入过多的精力,并无太多时间学习安全知识,但渴求知道如何在开发中避免安全问题。
2.3.2、安全设计:
hv业务正在快速的发展,部分业务如果不在前期考虑安全设计,后期必将面临安全质量低和修复成本大的问题,但安全设计不仅仅在于考虑解决可能面临的安全风险,也要考虑如何去平衡用户体验、成本和性能等因素,因此,前期安全人员需要针对具体的业务场景,设计一套最优化的安全解决方案。
2.3.3、安全开发:
提升开发人员的安全开发意识和能力是一个长期的过程,但基于目前hv开发人员普遍安全意识不足,要在短期内改变这个现状并不是太现实,并且开发人员主要还是聚焦在业务层面上,如果每个开发人员都要在安全上投入过多的精力,也会导致产生较大的损耗,因此,给予开发人员一份好的安全开发标准以及把安全能力“组件化”,能够让业务开发人员投入产出比达到最大。
2.3.4、安全验证:
(1)、安全自动化测试:
hv不断拓展新业务以及版本不断迭代更新,安全人员面临着无法更快更全面地进行安全测试的问题,目前更多处于半自动或手动测试的阶段,已无法满足业务发展需求。因此,让安全测试自动化必定是一种趋势。
(2)、人工渗透测试:
自动化测试只能解决通用型的安全问题,业务和逻辑层面的问题终究需要人的参与来发现和解决,而这些问题往往具有隐蔽性和更具危害性的特点。因此,定期的人工渗透测试显得非常重要。
2.3.5、安全运营:
服务上线后可能会遭到外来攻击的风险,一些防御性的工作是安全保证必不可少的部分,入侵检测和WAF等系统,可以在安全事件发生后的第一时间进行响应,并有助于事后定损。此外,具备一定条件后,公司可以建立自己的应急响应中心,并通过圈子对外推广,通过奖励机制鼓励白帽子上报漏洞,可以第一时间获取漏洞信息,减少损失。
3、人员补充建议
第一阶段:
此阶段属于人员紧缺阶段,要求人员覆盖能力强(建议招聘资深专业人员),需要负责以上红色部分的岗位职责。
安全架构师:
负责安全需求/设计以及实施阶段的安全工作。
安全测试工程师:
负责验证、发布和应急响应阶段安全工作。
注:安全培训(红色部分)是每个安全岗位的职责要求。
第二阶段:
第一阶段稳定后考虑进入第二阶段。此阶段人员充足(也可考虑招聘有基础的应届生),考虑安全建设走向专业化和精细化,要求人员基本上能够覆盖红色和绿色的岗位职责。
安全架构师:
和第一阶段一样,职责不变。
安全测试工程师:
负责验证阶段和安全培训的第二阶段(绿色部分)的安全工作。
安全运维工程师:
负责发布阶段的安全工作。
安全应急响应工程师:
负责应急响应阶段安全工作。
安全开发工程师:
负责“其它”部分的安全工作。
注:安全培训(红色部分)是每个安全岗位的职责要求。
4、业务对比
将传统业务和互联网业务进行划分。YS一套包括了软件、硬件和云平台的解决方案,即既卖产品也卖在线服务,在这种互联网模式下,涵盖了所有SDL流程的内容,即在安全面上属于一个全集,此外,由于互联网产品面向公网,每天都可能遭受来自外界的扫描和攻击,并且产品迭代更新速度很快,对安全人员有非常高的要求。传统行业偏向卖产品或离线解决方案,虽然目前产品也会联网,但对SDL中的部分内容显然会弱化很多(比如发布阶段的内容以及和互联网业务相关的安全),因此,其对于安全的偏重点和关注点可以说只属于互联网的一个子集(这是我个人在前东家传统行业部门和在hv互联网业务部门得出的结论)。
5、个人建议:
由以上综述,个人认为安全部建设可以有两个方案:
5.1、由互联网业务建设,并向全公司推广和实施,理由可参考item4。
5.2、集团的安全部和互联网安全部可分开建设。此方案在大多数大型企业(BAT和华为等)均存在,集团安全部和业务所属安全部并不矛盾,互联网需要自己的专属安全团队满足互联网业务快速发展的需求,实时保证在线业务和用户群体的安全。