融入游戏元素不仅可以激励开发人员优先考虑安全性,而且要以一种引人入胜、有益的方式做到这一点。
翻译自 Level Up: Gamify Your Software Security by **Iram Shmueli 是 JIT 的联合创始人,目前担任首席研究和创新官。 IRAM是一名软件工程师和安全研究员。 他在工程领域拥有超过20年的实践经验,并担任过高级管理职位。 软件开发的挑战不仅仅是编写,而是确保整个软件开发生命周期的安全性。
与其他工程领域一样,我们理解游戏化提供了应对这一挑战的创新方法--无论是通过Wilco等平台提高技能,还是通过Secure Code Warrior学习安全最佳实践。 游戏化使整个生态系统得以发展和发展技能。 游戏化不仅仅是练习和提高你的技能。 将类似游戏的元素融入实际工程和生产系统的安全实践中,不仅鼓励开发人员优先考虑安全性,而且以更有趣和更有价值的方式做到这一点。 这听起来可能有点可怕,就像玩生产系统一样,但事实并非如此。 为了确保我们勾选了正确的安全框,这里有一些通过游戏化嵌入安全性的新方法,这对开发人员来说可能是一项乏味的任务。
游戏化并不是安全领域的新趋势。 通过CTF(夺旗)挑战赛和红蓝队模拟,我们获得了一些最重要的学习和知识,为实践学习增添了竞争元素。
游戏化已成为提升行业技能的重要方式,随着竞争对手变得越来越复杂,强大的安全性对业务连续性至关重要。 以下是一些有趣的想法,用于将游戏化嵌入到工程工作流程中,以提高开发人员在进行软件安全实践时的乐趣。
首先是互动挑战。 这些挑战源于现实世界的安全问题。 引入与安全相关的日常小挑战,例如识别代码段中的潜在风险,以鼓励开发人员在了解不断变化的威胁时快速思考并应用最佳实践,以应对实际生产系统中的威胁。
通过以快速、日常参与的形式引入安全挑战,游戏化将安全置于开发人员的首要考虑位置,让他们了解新出现的威胁。
与引入个人挑战的方式相同,您可以通过团队竞赛鼓励协作解决问题和点对点学习。
您可以在特定时间段内执行团队冲刺或其他类似挑战,以嵌入安全性。
共同解决安全挑战可以培养协作文化,并增加一些健康和有趣的竞争精神。
我们都喜欢外部激励因素,无论是 GitHub 上的星星、论坛和群组中的徽章和贴纸。 那么,为什么不创建一个安全奖励系统呢?
这使得开发人员可以通过成功地将安全措施集成到他们的**中来获得积分、徽章或地位,并认可他们的成就。
浅色还是深色模式? 每个人都有自己的个人偏好,这就是为什么今天大多数用户界面都提供这两种体验的原因。
Visual Studio Code 和其他应用提供了无数的主题和可自定义性,开发人员喜欢能够控制他们花费大部分时间的环境。 提供主题和可定制的界面是保持培训在视觉上引人入胜和个性化的绝佳方式。 引人入胜的可视化仪表板可跟踪和显示安全指标,从而创建更加个性化的体验,使进度和成就可见且有益。 就像那些让玩家不断回来解锁下一个成就的游戏一样,它是任何游戏化项目的基础和支柱。
实施学习系统和计划,参与者可以在完成任务后升级,对自己的成就和技能水平感到成就感。 每个级别都将为学习者提供上升通道和梯度体验,以跟踪和欣赏他们的进步。
与支持工程师通常因解决问题的速度和数量而获得奖励的方式类似,也可以采用类似的想法来推进组织中的安全实践和卫生标准。 使用排行榜来鼓励健康的竞争精神,并表彰个人或团队对安全做出的杰出贡献。 这些排行榜可以在整个组织内共享,例如每天在专用的 Slack 频道上共享。
这是除上述徽章和其他奖励之外的另一种形式。 我见过组织对其他战略举措的认可计划,例如“最佳博客”或“最佳演讲者”,甚至向获得这些头衔的人颁发特殊的连帽衫或纪念品,赋予他们独特性和声望。
这可以为公司比外部活动更具战略意义的领域带来巨大价值:我们系统和产品的安全性。 奖励和认可在告知团队他们的贡献受到重视方面大有帮助。
当我们长大后,花了很长时间才上升到不同的空手道乐队级别。 从那时起,竞技体育也发生了变化,今天有“中间”双色乐队,让儿童和青少年看到进步,并希望继续投资于健身和技能发展。
学习安全也是如此。 通过确保游戏化元素适应各种技能水平,从初学者到经验丰富的开发人员,您可以让所有人都能访问和参与安全实践,并更容易保持对学习的承诺,因为更容易实现成就之间的里程碑。
毋庸置疑,为了让这些想法真正适用于您的团队,游戏化元素应该无缝集成到日常开发人员工作流程中。 如果您不努力使安全实践成为开发过程中自然且常规的一部分,它们就不会被采用。
如果您选择其中一些或一些想法,请确保它们与您现有的流程和工作流程紧密集成,以便您可以获得最大的回报和收益。
归根结底,我们希望提高开发人员的技能,以应对日益增长的威胁和攻击面,这是安全工程团队无法独自完成的任务。 因此,保持内容新鲜度、挑战和场景与最新的安全趋势保持同步至关重要。
确保引入新的挑战和场景以保持参与并确保持续学习,以帮助防止生产系统中的下一个重大事件。
归根结底,如果开发人员不采用游戏化,他们就错过了目标。 与任何新产品、流程、功能或计划一样,为开发人员建立一个反馈循环以提供有关游戏化元素的意见非常重要。
这将有助于确保平台根据他们的需求和挑战进行发展,与现实世界的工作流程保持一致,令人满意地参与,并使结果足够有价值。
最终,将游戏化集成到软件安全实践中为提升软件开发团队的安全防御态势提供了一个令人兴奋的机会。
通过提高安全性的交互性、吸引力和回报性,开发人员更有可能将安全性视为其工作流程的基本组成部分,从而产生更强大、更安全的软件产品。
这些只是如何将这些原则应用于开发人员日常工作流程的几个示例,以尝试以开发人员喜欢的方式提升组织中的安全技能。