首页 > 代码库 > 产品安全团队建设建议

产品安全团队建设建议

这是之前写的一篇关于建设产品安全团队的建议方案,并就此跟想组建安全团队的业务BG领导进行了友好且热烈的交流。

1、总体思路:

1.1、        明确需要做哪些事情,并按优先级排序,再找到合适的专业人员去实施。

1.2、        人员(特别是资深人员)并不总是可获得,有些事情短期内也不太可能做得起来,初期花钱买一些安全产品、服务或相关的安全解决方案不失为一种快速有效的方法,但不可过于依赖,否则后期受制于人并且还没有自己的经验积累。

2、SDL

2.1SDL简介:

         SDL全称是安全开发生命周期。它有微软最早提出的,在软件工程师中实施,是帮助解决软件安全问题的方法。SDL是一个安全保证的过程,它在开发的所有阶段都引入了安全和隐私的原则。

2.2、分阶段实施原则:

技术分享

详细信息如下附件所示:

技术分享

2.3SDL内容讲解:

         以下对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和华为等)均存在,集团安全部和业务所属安全部并不矛盾,互联网需要自己的专属安全团队满足互联网业务快速发展的需求,实时保证在线业务和用户群体的安全。

产品安全团队建设建议