设计 DEF CON Cloud Village CTF 的 7 个经验教训

设计 DEF CON Cloud Village CTF 的 7 个经验教训

从设计 DEF CON Cloud Village CTF PlatoBlockchain 数据智能中汲取的 7 个经验教训。垂直搜索。人工智能。

夺旗 (CTF) 活动既有趣又具有教育意义,为网络安全专业人员提供了一种展示黑客技能的方法,同时在建设性和安全的环境中学习新概念。精心设计的 CTF 使个人和团队面临操作挑战、新颖的攻击路径和创造性场景,这些挑战可以在以后作为进攻性和防御性安全专业人员应用于他们的工作中。

但并非所有 CTF 都是一样的,设计一场成功的 CTF 比赛需要做的不仅仅是提出挑战。除了技术设计挑战之外,还涉及设置环境和实际运行竞赛的操作考虑因素、设置引人入胜的游戏所需的创意规划,以及考虑与游戏化挑战相关的细节,例如如何权衡评分结构已建立。

“作为一名设计师,我希望它 [CTF] 具有挑战性和乐趣。我想奖励那些聪明、真正努力、坚持不懈的人。”Netskope 威胁研究实验室团队首席研究员、去年 DEF CON 云村 CTF 团队负责人 Jenko Hwong 说道。 “它还必须对我们来说是切实可行的。”

有趣且实用是 Hwong 为 DEF CON CTF 带来的心态,这是一项为期数天的大型活动,有超过 400 名个人和团队尝试挑战,并在他的领导下运作了 20 人的团队来运营该活动。作为一名资深研究员和经验丰富的 CTF 参与者,Hwong 在此次活动之前从未运行过 CTF。他第一次尝试这项工作时最大的希望之一就是提高活动中挑战的相关性和现实性,这有时可能成为当今 CTF 中的一个难题。

“有时在这些 CTF 中你会遇到非常艰巨的挑战,但这有什么意义呢?这将是一个解密或加密问题,其中的事件是,“这是一些东西,祝你好运”,然后你必须跳过所有这些可能没有完全脱离现实但并不真正适合更大的障碍故事情节,”他说。 “所以,当我接到电话时,我的想法是‘让我们开始吧,让我们想出一个好故事和一系列好的挑战,这些挑战会很有趣,但也有意义,并且可能与研究渗透测试的现实世界相关,防御措施,现实世界中正在发生的事情。”

然而,当他深入该项目时,他发现特别具有挑战性的一件事是,关于运行 CTF 的信息非常少。大多数文章来自参与者,他们对活动进行评分并解释他们如何解决挑战,但很少提供有关举办活动的最佳实践的信息。因此,他说他和他的团队必须做大量工作,几乎从头开始创造挑战。

“社区通常会分享很多内容,那么我们为什么不分享 CTF 挑战呢?”他说。 “我认为我们可以做得更好。”

本着安全社区共享的精神,他分享了他的团队在此过程中学到的一些重要经验教训,以便负责 CTF 设计的其他人可以从该过程中学习和理解。他的目标是再次举办这项活动,并以去年所学到的为基础。他还希望其他人能够分享他们的最佳实践,甚至技术细节,以便整个安全社区能够提高所提供的 CTF 的质量。

讲故事是关键

Hwong 表示,他的 DEF CON Cloud Village 团队非常热衷于打造引人入胜且有趣的故事情节。他说,他认为这个故事是一个电影剧本,内置了现实的网络场景。对于这次活动,他们选择了有趣又有趣的“侏儒”主题。但重要的不仅仅是故事情节的写作,还有如何在故事中规划技术挑战。

“妖精和侏儒的故事情节涵盖了所有内容,但重要的是,作为安全专业人员,您可能会遇到合理的场景,包括攻击路径和您会遇到的合理防御,”他说。 “作为 CTF 设计师,我们做得越多,学习就越好,CTF 就越有趣。”

采用软件开发方法

Hwong 建议,CTF 创建者绝对应该采用软件开发方法来设计其挑战的技术元素。

“你必须考虑设计、实施和测试,”他说,并解释说,他和他的团队经历了惨痛的教训才知道,在复杂的 CTF 环境中测试挑战是多么困难,而参与者可以通过多种方式操纵这个环境。 。

“所发生的事情——作为主要创建者,我将承担没有指导测试的责任——我们错过了阴性测试通过以及可行性检查,”他说。 “部分原因是我们没有足够的时间进行测试,所以我在挑战正在进行时继续锁定一些环境,这样一些挑战就不会太容易,也没有漏洞。我认为在某一时刻,我最终在一两个小时的某个步骤中做出了一些无法解决的事情。”

因此,他学到的重要教训之一是 CTF 设计人员需要将软件开发的严谨性带到测试和可行性工作的整个过程中。

操作严谨……还有一点咖啡因

软件开发的一丝不苟并不是唯一需要考虑的技术能力。运行 CTF 的工作人员也需要严格的操作严谨性。

“我们有一些出色的人员来运行服务器、AWS 帐户以及 Google 和 Azure 帐户,并确保一切保持运行,并且我们正在监控一切,”他说。 “所有这些事情都必须处理。如果你忽略它,则可能意味着事情会失败、中断或者出现性能问题。”

他们遇到的运营问题之一是参与者和挑战之间发生了一些冲突,因为团队的运营受到限制,无法为 AWS、Google 和 Azure 上的每个参与者创建独立的环境。

“因为是在相同的环境中,所以它可以帮助他们应对其他挑战,如果你面临需要改变环境的挑战,那么你就会让人们互相踩脚,改变一个共享的对象,”他说,并解释说,他和他的团队随着 CTF 的推进,团队必须重置策略,这样参与者就不会互相碰见。

他和他的团队正试图从经验中学习,从时间、精力和费用的角度找出一种实用的方法,为参与者提供一个真正隔离的环境,而不会让整个 CTF 变得不那么可行,因为事情会中断或需要永远执行。

最后,Hwong 表示,在运营方面,CTF 表演者还必须注意他们需要促进团队和参与者之间的持续沟通。

“午夜过后我在 Discord 上,我想,‘我早上有一个演讲要讲,你能去睡觉吗?’”Hwong 开玩笑说,他解释说参与者会提出问题,他们会随时向组织者寻求提示和指导。

设计不同的难度级别很困难

Hwong 警告说,正确确定挑战的难度级别并创建公平的评分系统可能比新手 CTF 组织者最初想象的要困难。他解释说,他的团队设计的一些更简单的关卡对于参与者来说完成起来比他们预期的要困难,而一些更具挑战性的关卡成功完成的参与者数量比预期的要多。

与难度调整挑战齐头并进的是找出一个有意义的评分系统。经过 DEF CON 的经历后,Hwong 成为某种钟形曲线评分系统的支持者。但他表示,问题并不像制定曲线那么简单。还有一个问题是如何规范和平衡大型 CTF 团队在获得挑战积分方面的优势,其中一位参与者在赛后向他提供了反馈。

“因此,如果你的挑战可以划分并由多个玩家并行完成,那么如果我有 10 个人,我的速度就会快 10 倍。所以这是有优势的,”他说。 “他的观点是某种动态的得分水平。如果他真的非常擅长某些事情,他可能是唯一解决该问题的人,并且他将获得最高分。钟形曲线将奖励他,如果这是他在 10 对 XNUMX 方面的专业知识,那么规模并不一定重要。这里有一些有争议的事情,我们必须解决。”

一种可能性是让挑战连续进行,但其缺点是它可能会使 CTF 过于僵化和线性,并且可能会产生瓶颈或依赖关系,从而破坏一个或多个挑战。 Hwong 表示,他还希望看到更多的 CTF 对参与者的技术进行奖励,例如他们在环境中的秘密行动或停靠点(如果他们留下太多脚印和指纹),这是他在设计未来活动时想要探索的一个领域。

但无论如何,动态得分可以缓解一些升级问题,他和他的团队正在努力在来年实现这一目标。

蓝队需要更多有趣的 CTF 挑战

在完成他的第一个 CTF 后,Hwong 也越来越相信这些活动不足以挑战并真正吸引蓝队参与者。

“蓝队的演习往往是这样的:‘我们的环境配置错误,存在很多漏洞。你能去修理它们吗?”他说。 “他们所做的只是测试这些配置是否更改,或者我是否可以访问这个公共存储桶。一旦您将其设为私有,我们就知道您已修复该问题并获得积分。最好在此基础上做一些事情,比如如果你受到了威胁,你的环境中有攻击者,你必须找到他们并将他们踢出去。因此,您现在正在发生事件,只要攻击者存在,他们就有凭据,只要他们会做事,您就可能能够检测到它。这就是你作为参与者的工作。除非你撤销他们的访问权限,否则你无法解决问题,也无法获得最高分。”

他说,这类场景更难实现,但对于防守者来说更现实,并且会让 CTF 对他们更有价值,并解释说这将是他下次的考虑范围。

CTF 需要更多新鲜且相关的组件。

Hwong 还向 CTF 设计者和他本人提出挑战,要求他们将更多新鲜的漏洞利用和漏洞信息融入到他们的挑战中。这是他希望在第一次参加 DEF CON Cloud Village 时有更多时间深入研究的事情之一,他决心在明年改进这一点。

“这是 CTF 可以更多地成为学习和培训工具的领域之一,”他解释道。 “我们很乐意使用今年早些时候研究人员甚至在 DEF CON 上提出的相关想法和成果。”

CTF“构建模块”提高“可重用性”

最后,Hwong 说他学到的最大教训之一是,业界需要找到更多方法来为 CTF 创建可重用组件,就像软件开发人员为应用程序所做的那样。他梦想帮助组织一个开放的 GitHub 存储库,其中包含代码中的小练习,这些练习可以构成构建 CTF 的构建块。

“你仍然需要对其进行定制并添​​加自己的风格,但我们的想法是让我们去掉前 60% 的内容,以便 CTF 组织者可以专注于真正新颖的事物。这样就没有人会重新发明轮子,”他说。 “然后剩下的 40% 可以添加新技术、场景和故事情节。”

时间戳记:

更多来自 暗读