提升级别:软件安全的游戏化之道

融入游戏元素,激发开发者不仅要将安全置于首位,而且以引人入胜、富有奖励的方式来实现。

译自 Level up: Gamify Your Software Security,作者 Aviram Shmueli 是Jit的联合创始人,目前担任首席研究和创新官。Aviram是一位软件工程师和安全研究人员。他在工程领域有着超过20年的实践经验,并曾担任高级管理职务...

挑战在软件开发中不仅仅是编写代码,还包括确保安全性贯穿整个软件开发生命周期。

与工程的其他领域一样,我们了解到,游戏化提供了创新的方式来应对这一挑战——无论是通过使用诸如Wilco的平台提升技能,还是通过Secure Code Warrior学习安全最佳实践。游戏化使整个生态系统得以不断演进和发展技能。

游戏化不仅仅用于练习和提升技能。将类似游戏的元素融入实际工程和生产系统的安全实践中,可以鼓励开发人员不仅优先考虑安全性,而且以更有趣和有益的方式来做。

这可能听起来有点可怕,就像是在玩弄生产系统,但实际上并非如此。在努力确保我们勾选正确的安全选项时,以下是通过游戏化嵌入安全性的一些新颖方法,可能会让开发人员觉得这并不是一项烦琐的任务。

成就解锁:安全禅境的游戏化

游戏化在安全领域并非新趋势。我们通过CtF(夺旗)挑战和红/蓝团队模拟取得了一些最重要的学习和知识,为实际操作的学习增加了竞争因素。

游戏化已经成为行业内提升技能的重要途径,随着对手变得更为复杂,健壮的安全变得对业务连续性至关重要

以下是一些有趣的创意,可以将游戏化嵌入到工程工作流程中,以增强开发人员在进行软件安全实践时的乐趣。

10种开发人员可享受的安全游戏化方式

1. 每日安全挑战

首先是互动挑战。这些挑战来自现实世界的安全问题。引入与安全相关的小型日常挑战,比如在代码片段中识别潜在风险,鼓励开发人员迅速思考并在学习有关不断演变的威胁的同时应用最佳实践,以便在真实生产系统中应对威胁。

通过以快速、每日参与的形式引入安全挑战,游戏化使安全保持在开发人员的首要注意力中,使其了解新兴威胁。

2. 基于团队的学习

与引入个体挑战的方式相同,您可以通过团队比赛鼓励协作解决问题和同行学习。

您可以在特定时间段内进行团队冲刺或其他类似的挑战,以嵌入安全性。

共同解决安全挑战促进了协作文化,并增添了一些健康而有趣的竞争精神。

3. 安全实施的奖励制度

我们都喜欢外在的激励因素,无论是 GitHub 上的星星,还是论坛和群组中的徽章和贴纸。那么为什么不为安全性创建一个奖励制度呢?

这使得开发人员有可能通过成功将安全措施整合到其代码中来获得积分、徽章或地位,并对他们的成就进行认可。

4. 个性化仪表板与游戏化指标

浅色还是深色模式?每个人都有自己的个人偏好,这就是为什么大多数用户界面今天都提供这两种体验的原因。

Visual Studio Code 和其他应用提供了无数的主题和可定制性,开发人员喜欢能够控制他们花费大部分时间的环境。

提供主题化和可定制的界面是保持培训在视觉上引人入胜且个性化的绝佳方式。引人入胜的视觉仪表板可以跟踪和显示安全指标,创造出更加个人化的体验,使进展和成就可见且有奖励。

5. 进展和级别

就像那些让玩家不断回来解锁下一个成就的游戏一样,这是任何游戏化项目的基础和支柱。

实施一个学习系统和计划,参与者完成任务后可以提升级别,在他们的成就和技能水平上感到成就感。每个级别将为学习者提供一个上升通道和梯度体验,可以跟踪和赞赏他们的进展。

6. 排行榜和认可计划

以下与支持工程师经常因其解决问题的速度和数量而受到奖励类似,可以采用类似的想法来推进组织中的安全实践和卫生标准。使用排行榜来鼓励健康的竞争精神,并认可个人或团队对安全做出的杰出贡献。这些排行榜可以在整个组织中共享,例如每天在专用的 Slack 频道上发布。

这是除了上面提到的徽章和其他奖励之外的另一种形式。我曾见过组织中针对其他战略举措的认可计划,如“最佳博客作者”或“最佳演讲者”,甚至为获得这些头衔的人颁发特别的连帽衫或纪念品,赋予其独特性和威望。

这可以为一个对公司而言应该比外部活动更具战略意义的领域带来巨大的价值:我们系统和产品的安全性。奖励和认可在很大程度上有助于告知团队,他们的贡献是受到重视的。

7. 面向不同技能水平的设计

当我们长大时,晋升到不同的空手道带级需要花费很长时间。竞技体育也自那时以来发生了变化,今天有“中级”两种颜色的带级,使儿童和青少年能够看到进步,并希望继续投入健身和技能发展。

学习安全性也是如此。通过确保游戏化元素适应各种技能水平,从初学者到经验丰富的开发人员,可以使安全实践对所有人都变得可访问和引人入胜——并更容易保持学习的承诺——因为实现成就之间的里程碑更容易达到。

8. 与日常工作流程的整合

毋庸置疑,要使这些想法真正为您的团队发挥作用,游戏化元素应无缝整合到日常开发者工作流程中。如果您不努力使安全实践成为开发过程的自然而常规的一部分,它们就不会被采纳。

如果您选择其中一些或其中几个想法,请确保它们与现有的流程和工作流程紧密结合,以便您能够获得最多的奖励和好处。

9. 定期更新和不断演变的挑战

最终,我们希望提高开发人员的技能,以应对不断增长的威胁和攻击面,安全工程团队单凭自身无法完成这项任务。这就是为什么保持内容新鲜,挑战和场景与最新的安全趋势保持一致至关重要。

确保引入新的挑战和场景,以保持参与度并确保持续学习,以帮助防止在您的生产系统中发生下一次重大事件。

10. 持续改进的反馈循环

最终,如果开发人员不采纳游戏化方案,那就未能达到目标。与任何新产品、流程、特性或计划一样,建立一个反馈循环是重要的,让开发人员对游戏化元素提供意见。

这将有助于确保平台根据他们的需求和挑战发展,与真实的工作流程保持一致,参与其中令人满意,并使结果足够有价值。

总结思考

最终,将游戏化整合到软件安全实践中为提升软件开发团队的安全防御姿态提供了令人兴奋的机会。

通过使安全更具互动性、吸引力和奖励性,开发人员更有可能将安全视为工作流程的基本组成部分,从而产生更强大和安全的软件产品。

这只是如何将这些原则应用于开发人员日常工作流程的一些示例,以尝试以开发人员喜欢的方式提升组织中的安全技能。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注