在多数企业里,安全团队大多扮演防守方角色,抵御来自外部的攻击,为了加强安全防护,部分企业会委托外部安全团队担任攻击方,检测企业内部是否存在安全漏洞或风险,除了委托外部团队进行检测,也有企业选择创建自己的安全检测团队(Offensive Security Team),曾在IBM担任软件工程师,现在在台湾乐天担任网络安全防御部门经理的Peter Chi在今年台湾安全大会中分享企业创建安全检测团队的重要性及实务经验。
Peter Chi表示,大多数企业重视安全防御,内部安全团队多为SoC、安全事件回应团队,部分对内部或产品安全重视的大型企业或跨国公司,在内部创建自己的安全检测团队。他以个人以往的工作经验说明安全检测团队,和外部团队相比,企业安全检测团队为内部员工,具备黑客思维,使用相同工具,来模拟外部黑客的攻击,协助企业改善防御,由于时常会看到隐秘的资料,安全检测团队也必须坚守道德原则。
检测产品安全、提升内部安全意识
然而安全检测团队企业内扮演什么角色?他以产品开发流程为例,在产品设计(Design)阶段,攻击检测团队可以威胁建模,或是在设计阶段参与讨论,以攻击方的角度来查看设计上是否有弱点。
传统上,企业在产品推出之后,为了维护产品安全,委托外部安全团队执行动态扫描、渗透测试,但是Peter Chi指出,等到产品推出才发现存在漏洞,会增加安全风险。企业若有自己的安全检测团队,在产品开发上游阶段,产品完成开发后的验证阶段时,由检测团队协助验证产品的安全性,执行动态扫描、安全测试、渗透测试等。
不只是产品开发,他认为,安全检测团队在企业内也能协助内部训练,例如员工的安全意识训练,或是让开发团队了解如何安全开发,借助检测团队的攻击方角色,让开发人员意识到开发上原本认为不危险问题,可能遭黑客利用延伸扩大可怕的攻击。
安全检测团队也能模拟黑客的真实攻击,进行渗透测试或红队演练,如同委托外部团队的攻击测试服务。此外,还可以负责评估众多的安全服务,利用攻击测试找出适合企业的安全防护服务。
除了上述的角色及好处外,Peter Chi认为和传统委托外部团队测试相比,企业拥有内部的安全检测团队,能降低委外泄密风险、满足法遵的要求。另外,每家企业的安全策略不同,例如对一定严重程度的漏洞或风险处理方式不同,企业委托外部团队,安全策略可能产生不一致的情形,内部安全检测团队可避免该问题。
内部检测团队降低磨合、依需求定制化测试
许多企业会委托外部团队提供安全检测服务,每次可能和不同团队合作,由于安全检检测涉及企业内部机密,与委外团队合作也存在保密问题,同时内外合作也需要磨合期,而企业也不容易累计相关经验。
当企业有自己的安全检测团队,首先是能让不同团队间的沟通变得容易,由于是内部团队,在长期合作下降低磨合问题,也能增进不同团队间信赖感,企业内部检测团队能够累计相关经验,从攻击方的角度,协助企业的产品、内部安全防御更好。另外,委外检测程序代码,外部检测团队逆向工程,或需要读程码,以了解程序设计的逻辑,就会存在保密问题,相反地,内部检测团队则能配合企业内政策、公司文化,支持查看程序代码,以及来自开发团队的安全需求。
另外,在委托外部单位作检测时,企业基于维持正常运营需要或是内部政策,会要求企业不要测试或擅动某个系统或数据库,就需要和委外企业就测试范围反复沟通确认,如果是针对产品检测,外部合作企业还需要根据不同产品的特性设计检测,需要时间熟悉每个产品特性。
Peter Chi指出,企业委托外部企业协助检测,实务上受限于预算有限,需要考虑执行检测的次数及范围,要对产品检测,还是要对整个公司检测,当企业有自己安全检测团队,相较比较熟悉每个产品特性,缩短学习曲线,内部沟通效率也能够提升,并且配合企业的需要定制化检测,例如针对产品测试,或对某个业务范围作渗透测试。此外,当发现漏洞或安全风险,检测团队可以攻击方思维、经验,判定漏洞或风险的优先性。
对于企业如何创建安全检测团队?他以自己过去经验表示,一种方式是从内部员工通过训练来培养,例如从MIS或网络相关员工选出,进行内部训练,因为是内部员工训练,不需要重新适应公司文化,但这个方式花耗时间较长,且必需考虑到员工的韧性,能否从现有已习惯的工作转换新的工作等等。选择合适的训练资源,包括OWASP、SANS,各种认证、线上课程、安全实战演练等。
另一方式是从外部寻找人才。Peter Chi表示,企业从外部寻找人才组成安全检测团队,可考量应征者的过去工作经验、过去服务的公司类型、拥有的证照、技能,还有应征者是否有良好的道德意识。从外部找人才,训练的时间可能比较少,但需要适应公司文化。
不论从内部培训或从外部找人才,对成员需要定出一套合格标准,例如对公司内部组织流程、规定、使用工具的熟悉,取得的证照,或是设计一套测试,界定是否符合企业安全检测团队的要求。
至于何时是做检测的最佳时机?他认为,产品推出之前或基于法遵规定一定要检测,产品在上市后一段时间可能再作调整,建议最好每年再做一次检测。另外,当开发上有较大变动,开发团队认为有必要作检测时,也能随时依需求进行检测。他也建议,企业最好能从开发团队中指派一位成员,担任和安全检测团队沟通的专业对口,该成员必需了解安全检测术语,熟悉安全检测及开发的共同语言,如此在开发流程中进行安全检测才能顺利进行。企业内的每个团队、每个业务部门是否也需要专业对口,则要视公司规模及需求来决定。
企业要进行安全检测,往往不确定该从哪一处下手,尽管每家企业实例可能不同,他认为,应该从企业的运营模式、专业环境来看,如果销售的产品安装在客户端,应在产品进行检测,如果企业提供服务,则可从外侧防火墙作测试,强化防火墙的阻挡,可缓解程序开发上的弱点。
当检测发现漏洞或安全风险,企业内由谁来决定是否要修补,每个企业决策系统不同,可能是业务单位主管或高层决定,由安全检测团队基于风险的高低给予专业上的建议,以业务发展为主,还是降低风险为主,需要审慎评估。
安全人才从外部提供安全服务,到进入企业In-house成为安全检测团队一员,Peter Chi枚举几项职业生涯发展的好处,例如降低过去在乙方担任安全工程师,和客户间的紧张关系,进入企业成为甲方后,企业内的长期工作轮转、资源规划,更稳定且提供更多的发展机会,例如成员运用过去的安全测试经验,在企业内可往安全检测团队、安全防御发展,或是DevSecOps、内部训练等方向发展,对比于外部安全检测服务,在企业内个人专业发展有更大弹性,甚至在主管鼓励下,投入新技术的研究。