本文共 4153 字,大约阅读时间需要 13 分钟。
敏捷扑克牌
不幸的是,出于我们应用程序的安全性考虑,我们通常不会在开发中“内置安全性”。 取而代之的是,我们等到最后一刻才采取安全措施,通常是建立一个警察型的安全部门,并在安全人员和开发人员之间产生对抗感。
有很多很棒的资源,从到对分析。 一切都归结为您在开发周期中进行安全保护的位置。 如果您的团队正在实施左移方法,您已经知道在编写任何代码之前,首先要考虑安全性。
安全威胁是非常真实的-Verizon的最新援引了截至2018年3月的12个月中65个国家/地区发生的2216起已确认的泄露事件和53000多次网络安全事件。
请考虑以下2018年9月以来的两个重大违规报告:
Facebook数据泄露:根据Facebook的说法,攻击者利用该网站代码中的漏洞来一项具有里程碑意义的安全漏洞,该漏洞可以 ,从而使黑客能够查看用户的个人信息,照片甚至私人消息。 该黑客行为特别影响了“查看为”功能,该功能使用户可以看到其他人的个人资料。 黑客使用此功能来窃取Facebook的访问令牌,这些令牌使您可以登录Facebook,这样您就不必在每次使用该应用程序时都重新输入密码。
万豪/喜达屋预订数据泄露事件: ,喜达屋预订数据泄露事件中有50亿万 ,未经授权的数据访问可追溯至2014年。该泄露事件导致万豪和喜达屋客户加入了34%的在截至2018年7月的一年中 。
没有公司希望出现在此列表中。 为了避免这种情况,北卡罗莱纳州立大学教授Laurie Williams博士介绍了一款名为Protection Poker的游戏,以帮助团队在迭代计划之前将安全性纳入工作流程中。
保护扑克是一种协作和非正式的方式来进行威胁建模,它利用了团队成员的知识和观点的多样性。 它类似于但侧重于安全风险评估而不是工作量估算。 在Protection Poker中,安全知识在团队中传递,将缓解风险(即在满足要求之前处理安全威胁)纳入迭代计划中。
该游戏为团队成员提供了一种结构化的方法,使他们可以互相学习,发现假设,提高对潜在威胁和并发症的认识以及发现实现预期目标的替代方法。
理想情况下,产品开发中涉及的每个人(包括产品经理,项目经理,软件开发人员,测试人员,可用性工程师,安全工程师和其他利益相关者)都在迭代计划期间玩游戏。 这会为迭代的每个潜在需求产生总体相对安全风险。
之后,参与者可以使用相对风险将故事添加到迭代中以减轻风险,并更改故事的接受标准以包括安全开发步骤。 这样,将安全地实现需求的工作纳入迭代中。
传统上,“风险”的计算方式是(损失的概率)x(损失的影响) ,但是Protection Poker将安全风险定义为:
安全风险=(易于攻击)x(成功攻击可以利用的资产价值)
该游戏暴露了安全风险,这些风险可能对最容易利用的最高价值资产产生潜在影响。 这使团队可以在迭代计划期间讨论并潜在地解决这些风险。
此练习使用了一小部分与预订酒店房间有关的客户数据资产:
资产值 | 客户资料 |
---|---|
客户登录ID | |
客户密码 | |
电子邮件 | |
客户名称(第一名) | |
客户名称(姓氏) | |
信用卡ID | |
信用卡密码 | |
电子邮件ID | |
护照ID |
保护扑克游戏首先评估数据资产。 资产的价值基于资产的历史价值,或者,如果必须创建新资产以实现要求,则基于团队的讨论和投票。
价值点
您的软件资产的价值是多少? 资产可以是数据库,系统进程或其他地方的数据。 在此步骤中,您正在评估并拥有DNA的所有权-使您的公司与众不同的数据资产和其他知识产权-因为这些都是潜在的目标。 此步骤涉及从开始到最终处理的准确识别,分类,保护和优化数据。
在此步骤中,您将列出您的资产并对其价值进行排名。 在分配价值点之前,请考虑以下问题,以确定每种资产对每一方所拥有的价值:
给运行该软件的公司:
对攻击者:
列出您的资产并对其价值点进行排名。 保存此资产值列表以进行下一步。
想象一下,您的团队在酒店预订数据上玩了一轮保护扑克,并获得了以下结果:
资产值 | 客户资料 |
---|---|
2 | 客户登录ID |
5 | 客户密码 |
8 | 电子邮件 |
3 | 客户名称(第一名) |
8 | 客户名称(姓氏) |
20 | 信用卡ID |
40 | 信用卡密码 |
20 | 驾驶执照或护照 |
1 | 客户编号 |
在此示例中,在下一个迭代中提出了三个功能请求:
功能1:添加“已知过敏”功能。 已开发出一种新的移动应用程序,使客户能够订购从酒店餐厅运送到他们房间的食物。 餐馆希望(可选)将已知食物过敏的信息标记给酒店客人,以防止患有严重已知过敏的客人接触含有这种风险的食物。
功能2:添加“紧急响应者”角色。 当前,酒店预订系统中只有三个角色:酒店管理专业人员,预订管理员和客户。 还需要另一个角色:紧急响应者(ER)-警察,消防,紧急医疗技术人员(EMT)以及其他经过医学培训的紧急响应者,他们在紧急情况发生时或在紧急情况发生地点或途中提供护理; 在这种情况下,酒店。 新角色将使ER可以访问与紧急情况有关的酒店客人的信息的子集:名称,ID,到达日期和离开日期。 当急诊员查看其记录时,该功能还将向酒店客人发送通知电子邮件。
功能3: 添加“客户组” 角色。 要为从同一公司或组织预订的客户创建团体预订,酒店需要以下信息:
对于这些新功能中的每一个,请尝试就使攻击最容易的要求和使攻击者最难利用攻击者利用每种新功能的要求达成共识。
缓和点
使用您的扑克牌分配轻松点; 这些将是保护扑克练习其余部分的终点。 如果您改变意见或学习新信息,则可以更新这些值。
出于此练习的考虑,假设您的团队确定功能1的得分为1(最难攻击),功能3的得分为20(最容易攻击)。
对于每个需求,执行以下步骤来计算安全风险:
资产价值点 | 客户资料 | 用于功能编号 |
---|---|---|
2 | 客户登录ID | |
5 | 客户密码 | |
8 | 电子邮件 | 2,3 |
3 | 客户名称(第一名) | 2,3 |
8 | 客户名称(姓氏) | 2,3 |
20 | 信用卡ID | |
40 | 信用卡密码 | |
20 | 驾驶执照或护照 | |
1 | 客户编号 | 1,2,3 |
2 | 已知过敏 | 1,2 |
8 | 客户群 | 3 |
8 | 客户组# | 3 |
功能编号 | 总价值点 | 缓动点 | 安全风险 |
---|---|---|---|
1 | 3 | ||
2 | 22 | ||
3 | 36 |
切记:保护扑克在会员自由发表意见,鼓励和庆祝意见多样化,每个人都可以向他人学习时开放。 游戏的重点不是结果数; 都是关于对话和分享知识的。
如果您需要像黑客一样思考的帮助,请返回到步骤1中的问题,尤其是:
不要回避分歧和误解,它们可能表示潜在的安全风险。 通过在迭代计划期间进行这些辩论,您的团队可以在设计或实施需求之前浮出水面并解决风险。 我们经常发现,在保护扑克会议期间开始的讨论此后仍在继续,因为团队成员发现了许多利用其系统的不同方法。
主持人应记下缓解游戏中可能出现的威胁的措施。 诸如“也许只有管理员才能执行此功能”或“我不认为两个功能都需要信用卡信息”之类的注释都可以成为减轻风险的补充。
在完成一轮保护性扑克比赛之后(您像黑客一样思考并提出了可能利用这些新功能的方案),想象您的团队分配了以下缓解点:
安全风险=(易于攻击)x(成功攻击可以利用的资产价值)
功能编号 | 总价值点 | 缓动点 | 安全风险 |
---|---|---|---|
1 | 3 | 1个 | 3 |
2 | 22 | 5 | 110 |
3 | 36 | 13 | 468 |
在此步骤中,您的团队将决定下一次迭代的内容以减轻风险。 如果主持人在玩游戏时使用白板或其他视觉表示来记录评论,则将很有帮助。
考虑:
保护扑克提供了一种结构化的手段来:
您在公司中使用过保护扑克吗? 告诉我们评论中的情况。
翻译自:
敏捷扑克牌
转载地址:http://cxbzd.baihongyu.com/