企业安全建设之如何建立开发人员安全冠军项目
2022-5-31 11:50:0 Author: www.4hou.com(查看原文) 阅读量:14 收藏

导语:想要保护应用程序安全的公司面临着安全团队人手不足和软件开发人员普遍缺乏安全意识的挑战。开发人员安全冠军是指在软件开发团队中充当安全联络员,并在最需要的地方嵌入应用程序安全的开发人员。

在软件开发团队设立安全冠军或接口人可以扩展你的安全团队,解决更接近源代码的应用程序安全问题。

摘要

想要保护应用程序安全的公司面临着安全团队人手不足和软件开发人员普遍缺乏安全意识的挑战。开发人员安全冠军是指在软件开发团队中充当安全联络员,并在最需要的地方嵌入应用程序安全的开发人员。创建和支持冠军的项目需要做好投资和规划。在制定开发人员安全冠军计划时,需要考虑如何向上级证明这一点、建立正确的领导层、确定和培训开发人员安全冠军、支持和奖励你的安全冠军,以及衡量成功与否这五大步骤。

应用程序安全性需要开发人员的参与来改进

多年来,应用程序安全缺陷(包括弱点和漏洞)一直是导致外部入侵的主要原因,在今天来看这仍然成立。在 Forrester 的安全调查中,安全决策者将网络应用程序攻击列为最常见的外部入侵原因,软件漏洞位列第四。安全专家的回应是采用一系列安全工具,尽可能早地、经常地在软件开发生命周期中解决缺陷。然而,如果没有具有安全意识的开发人员,组织很可能会一次又一次地被黑客发现重复出现的相同漏洞。Zoom 亲眼目睹了对应用程序安全性缺乏关注会如何影响声誉并导致业务损失,即使在产品成熟的环境中也是如此。不幸的是,在COVID-19大流行期间突然转向完全远程工作,加剧了只依赖安全部门管理应用程序安全的团队问题,并突出了糟糕的安全文化的风险。太多的公司依赖于个人安全签名或随意的对话,而不是内置在管道中的自动化工具。适应远程团队和缺乏安全意识的开发人员的组织将难以高效、一致地解决安全缺陷。

招聘:研发团队需要有安全意识的文化

构建安全应用程序需要开发人员和安全专家的共同参与。开发人员必须通过创建安全代码来在应用程序安全中扮演关键角色,但他们很少有能力扮演这个角色,而且经常不知道安全的重要性。另一方面,安全专家很清楚应用程序的安全问题,但他们不能修复代码,并且经常发现自己参与得太晚了。在最好的情况下,这会导致连接的断开,从而导致安全缺陷的增加和修复时间的延长。在最坏的情况下,我们会看到安全和开发之间的文化冲突,这种冲突造成了一种非常有害的局面,甚至关于安全编码实践的对话都变得不可能。两支球队都在挣扎是因为:

软件开发课程不教授应用程序安全性。开发人员被教导要开发产品。他们没有被教导要安全地构建产品。事实上,我们发现,美国排名前40的计算机科学项目中都不需要安全编码或安全设计课程。如果优秀的开发人员在安全知识有限的情况下开始了他们的第一份工作,他们在何时何地开始工作?

各个组织都在努力聘请应用程序安全专家。与大多数安全技能一样,应用程序安全专家很难找到。29%的安全决策者表示,缺乏具备适当安全技能的员工是其组织面临的最大IT安全挑战之一,他们的公司需要具备应用安全技能和经验的人员。专业知识的差距使得区分缺陷的优先级、选择正确的应用安全工具以及减少修复高优先级问题的时间变得更加困难。

安全团队并不生活在开发人员的世界里。安全和开发团队成员有不同的汇报结构,不同的动机,并且互动的机会有限。而且,当安全和开发团队会面时,在诊断和修复缺陷的过程中,紧张程度很高,时间也很紧迫,安全编码的培训也不是优先考虑的。

开发人员安全冠军是你的团队需要的影响者

Forrester将安全冠军定义为:

安全团队的扩展成员,他们在组织中扮演不同的角色,将安全语言翻译成每个人都能理解的语言。

开发人员安全冠军是一种特定类型的安全冠军,他们是软件开发团队的成员,专注于将应用程序安全翻译成其他开发人员都能理解的语言。在开发团队中加入安全冠军可以帮助你:

弥合安全与开发之间的鸿沟。作为内部人员,开发人员安全的拥护者在他们的团队中有信誉,这可能需要数月的时间来复制。当安全问题或问题出现时,安全冠军人员将作为第一线,与开发人员一起澄清和解释风险,促进开发人员和安全人员之间的讨论。

“我们认为,安全部门扩大其在组织中的影响力,并创建一个安全冠军网络,这将比外界认为的对其团队有更多的知识和影响力。(赛琳娜·赵,Adobe安全运营项目经理)

将安全知识扩展到安全团队之外。冠军将接受基础应用程序安全问题和补救策略方面的培训,并将这些知识带回他们的团队。这有助于开发团队在这个过程中做出正确的决策,并减少安全在以后突然提出安全性需求的可能性。

只需五步就可建立一个有效的安全冠军项目

值得信任的数字业务需要同理心,而开发人员安全冠军非常适合在团队内部和安全团队中建立同理心。他们是团队内部安全问题的局部联络点。冠军们接受过应用安全原则和策略方面的培训,但通常不被认为是深度专家——相反,他们与团队合作,解决常见的安全问题,并在需要时帮助安全团队提出更复杂的问题。冠军首先是开发人员,安全冠军的角色只是他们工作的一部分。要成功地创建一个开发人员安全冠军项目,安全主管必须执行以下五个步骤(详见下图)。

第一步:说明理由

安全专业人员必须将开发人员安全冠军项目视为已获批准和资助的正式项目。监督、培训、工具和奖励都是要花钱的——如果没有某种形式,一个项目将难以起步,长期来看也不会繁荣。最近推出冠军项目的公司强调获得组织的支持的重要性,包括执行团队、开发经理和潜在的冠军本身。为了让你的开发人员安全冠军项目变得强大,安全专家必须:

展示安全需求。在某些情况下,领导层团队会受到其他安全漏洞或事件的启发。一位项目经理指出,引人注目的行业事件促使高级领导层迅速采取行动,从而更易于接受。在其他情况下,安全专业人士必须更清楚地展示风险。一家电子公司的国际标准化组织聘请了道德黑客进行红队训练,然后将前30至40名开发负责人召集到一个房间进行观察。红队的成功为开发领导支持该项目提供了动力。

明确定义冠军的角色。开发经理会关注投入的时间,并且可能不理解最适合担任冠军角色的个人类型。为了帮助协调开发团队的领导,安全团队需要提供指导,说明开发人员应该花多少百分比的时间来做安全冠军的工作,该工作将是什么,以及你希望冠军做什么。安全冠军和开发负责人必须在角色如何与现有职责相适应方面保持一致,并理解冠军的工作是帮助团队的其他成员解决安全问题,而不是自己做所有的安全工作。

“沟通总是非常重要的。在每个团队中,我们介绍了我们的项目,要求安全冠军做什么,以及我们如何合作——安全团队、经理和安全冠军。(Oleg Garasym, Talend高级信息安全分析师)

第二步:与合适的安全主管启动你的项目

你的开发人员安全冠军项目必须聘请应用程序安全负责人提供培训,让冠军了解新工具和趋势,并确保冠军在与开发团队合作时获得所需的支持。如果你的团队中还没有这些资源,你必须雇佣应用安全架构师或第三方服务来启动和管理程序。为了确保安全团队给予开发人员足够的关注,你必须:

确定一名经理来推动该计划。不管你的项目规模和成熟度如何,你都需要有人来帮助管理它。对于规模较小的组织,这意味着要找一位应用程序或产品安全架构师与开发团队合作。在大型组织中,你需要一名项目经理或产品安全负责人来帮助推动该项目。一家金融服务机构的安全高级副总裁聘请第三方专业服务公司设计并实施其开发人员安全冠军项目,并指派银行的软件安全支持主管与第三方合作来帮助运行该项目。

雇佣富有同理心的专家。在雇佣安全架构师或安全工程师与开发人员的安全捍冠军打交道时,要寻找那些会说开发人员语言的人。作为Advisor360°的首席信息官,亚历克斯·坎宁安(Alex Cunningham)雇佣了一名最初做研发出身的信息安全架构师,帮助他获得了开发团队的信任。他要求开发经理参与面试过程,以确保架构师很适合他们。如果你找不到有直接开发经验的人,那就雇佣一个能理解开发人员所面临的角色和压力的人。

“理解开发人员的挣扎。开发人员是修复安全漏洞的人。如果你不听他们的话,如果你得不到他们的反馈,那么你就解决不了问题。”(Sue McTaggart,Advantasure高级安全架构师)

第三步:确定并训练你的冠军

为了有效地扩展,需要在每个开发团队选择一个冠军。建立一批训练有素的开发人员安全冠军可能需要时间,你可能需要分组选择和培训他们。然而,一些安全负责人指出,在第一批培训结束后,其他开发人员热切地报名参加未来的培训。随着时间的推移,一些冠军可能会选择增加他们的应用程序安全知识,并承担更重要的安全领导角色,无论是在开发团队还是安全团队。要取得类似的成功,你必须:

寻找详细说明角色承担的工作后毛遂自荐的冠军。要求开发经理挑选冠军的结果是好坏参半的,特别是如果经理不能完全理解角色和角色承担的责任。一名安全负责人描述了与经理任命的冠军们会面时的情景,他们对这个项目的内容一无所知。相反,应该向开发经理详细说明角色的工作,并让开发人员者自愿或自行选择。Zane Lackey 现在是信号科学的联合创始人和CSO,他在描述自己在Etsy打造安全冠军的经历时指出,他从为工程团队举办午餐和学习开始,他们回滚了补丁,并向他们展示了如何发现和利用代码中以前存在的漏洞:“这样做以后,真的自行选择出了一群突然发现安全性非常有趣的开发人员。”

随着时间的推移扩大培训。安全冠军的一些培训项目相当广泛,有多个层次的培训。Adobe 有一个安全腰带系统,第一级是基于网络的培训可以得到一个绿色腰带,而棕色腰带和黑色腰带需要完成特殊项目才能获得,当开发人员获得相应的腰带后将被鼓励在博客上发布他们正在进行的安全项目。一家成立不到一年的金融服务公司称其冠军为“绝地武士”,并举办为期三天的训练营来培养学徒。学徒最终可以成为绝地武士甚至绝地大师,但这需要时间——第一步是培养学徒。预计需要一段时间才能达到成熟度,并从定义明确的第一级培训开始,其他级别有待定义。

第四步:支持并奖励你的冠军

安全团队和冠军之间持续的沟通和会议将使冠军在第一次训练结束后很长时间内保持忙碌。要维持和发展开发人员安全冠军计划,安全专家必须:

知道对你的冠军来说什么是重要的。企业文化将有助于决定什么样的激励措施对冠军企业最有价值。在某些情况下,特殊的徽章和认可可能是诱人的。Adobe为完成腰带级别的人提供T恤、背包和其他奖品,那些达到最高黑带级别的人会在一个仪式上得到认可。其他的安全团队用他们的一些预算把冠军带到安全会议上,比如BlackHat。一位安全部门的领导曾希望得到认可或代币会很有吸引力,但她发现,她的冠军们是在寻找金钱和职业发展。

提供持续的沟通渠道和支持。培训开发人员的安全冠军并不是一蹴而就的事情。强大的项目为冠军提供了持续的机会,让他们与安全团队和其他团队进行互动。请记住,冠军可能仍然面临来自开发团队的挑战,并将需要来自证券利益相关者的支持和指导。几位安全负责人描述了安全冠军之间的定期简报和会议。Oleg Garasym 指出,Talend为其冠军企业提供了Slack渠道。一些更成熟的项目提供年度峰会或季度论坛。

提供职业发展机会,但要为一些冠军的离职做好准备。顶级冠军可能会成为公共安全福音传道者。有时,一个特别有动力的开发人员安全冠军可能会转移到安全团队。这样做的缺点是,你可能无法留住所有那些新出炉的安全开发人员。另一位CISO提到,前14位冠军中有三位最终在其他地方担任全职安全角色,并称这是他愿意接受的风险。

“我让一个开发团队的领导管理我的安全工程团队。那是我招到的最好的员工。他们已经建立了关系,所以这就形成了一个惊人的反馈循环。(信号科学公司联合创始人兼首席安全官赞恩·拉基)

第五步:度量、监控和改进

一致性度量有助于安全团队根据需要调整计划,并在定期向执行团队和开发领导层报告度量时确保持续支持。要创建关键反馈循环,安全部门必须:

仔细定义指标。即使他们同意指标也很重要,许多公司仍然很难定义正确的成功指标或得到有意义的指标。如果安全团队还引入了其他措施,比如新工具,那么仅将安全改进归功于冠军项目可能会很困难。还要注意诸如bug计数之类的指标,由于团队第一次发现现有的bug,这些指标可能会在短期内增加。相反,要关注诸如修复时间、应用程序覆盖率、SDLC不同阶段漏洞的修复,以及提交给安全团队的问题与在开发团队级别修复的问题的百分比。随着时间的推移,关于重复漏洞类型的指标将成为额外培训和程序的输入。不要忽视与冠军项目直接相关的指标,如冠军的数量和完成的训练量。

衡量参与度。度量活动出席率、冠军参与安全团队的频率,以及冠军反馈。谷歌产品安全总监吉姆·希金斯(Jim Higgins)描述了一种更直接的方法:向其合作伙伴进行季度CSAT调查,以征求反馈。Jim指出,除了提供关系度量和流程改进建议外,CSAT 本身还改善了关系:“寻求反馈的行为有助于建立关系。”

开发人员安全冠军将推动长期成功

不要把开发人员安全冠军看作是一个可以在几年内逐步淘汰的限时解决方案。同样地,一旦安全得到改善,你不会放弃安全工具或培训,开发人员安全冠军是一种长期的组织变革,它扩大了安全团队的规模,建立了意识,并确保开发团队与安全负责人保持强有力的伙伴关系。你需要考虑到以下几点:

开发人员安全冠军对于灌输安全文化至关重要。在你寻求在组织内创建良好安全文化的过程中,请将开发人员安全冠军视为盟友,因为他们有助于影响你的关键威胁社区之一的认可。开发人员安全冠军还与安全专业人士沟通,使安全团队与广大开发社区人性化。

冠军项目培养出更多的安全主管。我们需要更多的安全人才,冠军项目通过培养更多的安全专业人才来服务于安全行业。虽然许多冠军将继续担任开发角色,但其他人将进入安全领导角色,或者利用他们的知识和开发人员安全冠军的临时演讲台,向团队或组织之外的同行进行教育和倡导。

冠军项目比以往任何时候都更加紧迫。在2019冠状病毒大流行期间,突然发现自己完全在家工作的公司意识到,安全不能在筒仓中运行,扩大安全团队的规模至关重要。不要只停留在开发人员安全冠军项目上。利用你在构建开发人员安全冠军项目中的新知识,在整个组织中创建安全冠军,因为这样可以应用帮助构建开发人员安全冠军的相同原则。

本文翻译自:https://www.deepfactor.io/hubfs/Build%20A%20Developer%20Security%20Champions%20Program%20(4)-1.pdf如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/AKy1
如有侵权请联系:admin#unsafe.sh