我必须在学校做一个演讲,介绍Moodle平台中发现的漏洞。当然,它们仅适用于已打补丁的旧版本。

值得注意的是,演示应针对没有任何技术知识的读者。因此,我不允许使用代码解释任何事情,但我应该给出一个解释,即使他们对技术的了解为零,也可以帮助观众理解问题。相同的功能以不同的方式造成了一些安全漏洞。仅其中一个漏洞就不足以对系统造成可观的损害,但是结合了错误假设的利用,对象注入,双重SQL注入和允许的管理员仪表板RCE成为可能。我本来想用一本本来可以安全建造的房子来解释它,但由于上面建有一些其他东西而变得不安全,但是我正在寻找更具体的东西,或者可能适合的现实世界历史场景。

我想也许您可能有一个更好的主意。

评论

我想我想问的是您要传达的总体思路是什么?听起来每个Moodle漏洞都是相当真实的,但是除非加以组合,否则很难利用。如果是这样的话,我会把协同作为一个类比。例如酒精和抗焦虑药。

您可能会回顾一些导致CRM(座舱资源管理)培训的飞机失事,因为在很多情况下,做正确的事都是有问题的,但是在真空中会出现问题。
打个比方:很久以前,我曾与负责核电站实际建设过程的人交谈。当所有不同的分包商按自己的方式做事时,当然会出错。他还记得一个事件,承包商X在位置A的混凝土墙上建造了一条管道“直通/管道”,承包商Y在两米外的位置B的那堵墙处铺设了管道。他们通过在墙壁位置B上钻孔来“解决”这一问题。这对反应堆的安全意味着什么?

@JanDoggen在主持人删除答案之前说一个答案,然后说“不要以评论形式提供答案”(然后您必须浪费时间重新输入答案)。

@Pharap谢谢,但这是很久以前的事了,我没有有关此事件的实际数据。这就是为什么我只留下评论。

#1 楼

这里有一个比喻的想法,我认为它相当准确,但通常可以理解:

银行需要两种形式的ID来获得贷款:驾驶执照和出生证明。银行员工Alice和Bob懒惰的方式不同:Alice总是在未核对的情况下盖章“驾驶执照已验证”,而Bob总是在未经核对的情况下盖章“出生证明已验证”。 -申请伪造文件的任何人都会被雇员仍然执行的一张支票所抓住。但是有一天,爱丽丝迟到了,在表格上盖了“已验证驾驶执照”的标记,然后交给鲍勃填写。鲍勃(Bob)看到表格,假设爱丽丝(Alice)实际验证了许可证,并像往常一样不加检查地在“出生证明已验证”上盖了戳。贷款已获得批准,没有检查任何一种ID形式。

评论


细心的坏演员可能会安排爱丽丝迟到。

–emory
18年6月6日在3:13

您可以使其更贴切。 “爱丽丝和亚当是银行的一个团队,爱丽丝总是检查驾驶执照,亚当总是检查出生证”“鲍勃和巴里是另一支球队,鲍勃有执照,巴里有出生证”习惯按自己的方式做事。爱丽丝和鲍勃配对,巴里和亚当配对。现在,无论有2个人进行检查,它们都是安全漏洞,因为他们两次检查相同的东西!

– Ryan The Leach
18年6月7日在9:54

@RyanTheLeach问题不是两次检查某些东西,而是永不检查。您的方案可以工作,但是存在安全漏洞的原因已关闭。

–阿森纳
18年6月7日在14:38

有趣的事实:爱丽丝(Alice)和鲍勃(Bob)放宽了他们的表格处理职责,因为他们试图解决疯狂的数学问题以进行秘密交流。

– corsiKa
18年6月7日在22:13

现实生活中有这样的情况。如果您知道帐户的名称,电子邮件和账单地址,则亚马逊的服务部门允许您向帐户添加信用卡。同时,亚马逊的帐户恢复过程验证了您的信用卡号(您刚刚添加的)。如果您尝试用运送到新地址的受害者卡购买东西,它将停止并要求您验证“以1234结尾的完整卡号”。非常适合Amazon,但是Apple的恢复过程使用相同的后四位数字来验证您的AppleID ...

–那个人
18年6月8日在20:34

#2 楼

情况是:人们在没有协调的情况下独立工作,设计本来应该在本地有用的功能,但是当这些功能结合在一起时,就造成了灾难。 />
英国铁路系统的混乱局面,每条火车的线路所有者自行运行各自的轨道,轨道尺寸,火车和时间表(有时还有自己的时钟)
纽约第一家消防公司他们在哪里为客户而战(有时是用火和拳头打架)

两者都是有趣的故事和令人兴奋的视觉效果。

解决这两个问题的方法是中央监督和中央计划,这与开源Micocos的解决方案相同,就像一个Moodle一样。

评论


根据对所发生情况的描述,我真的不同意您的评估。听起来这3个漏洞很难单独利用,但综合起来会导致一个重大问题。我认为这与OSS没有任何关系,可以通过集中计划解决。

– Steve Sether
18年6月5日在14:58

@SteveSether我不明白您的评论。拥有一条火车线或一家消防公司很难利用。具有使用不同优先级的倍数会产生问题。解决方案是对齐。大型开源项目需要对齐,否则会发生类似的问题(大型,分散式封闭源项目中也是如此)

– schroeder♦
18年6月5日在15:04

@schroeder谢谢,这些例子听起来很有趣。我已经在通过Wikipedia撰写的有关“英国铁路历史”的文章了。您能指定发生这种情况的时代吗?

– SuperSpitter
18年6月5日在15:16

@schroeder我认为铁路示例很差。在这里,地铁系统与常规铁路线完全隔离,并提高了安全性(地铁列车在错误的转弯处进入常规的轨道在物理上是不可能的)。这一点很重要,因为公元前地铁列车不适合与货运列车相撞。

–emory
18年6月6日在3:09

这些都是很好的类比。我不知道为什么人们会被类推并不能完全匹配安全方案这一事实所困扰。他们是类比!对于所说明的情况,它们不必为1:1!我关注的重点之一是最终用户的培训,我会毫不犹豫地使用这些类比来解释“太多厨师”的问题。

– Monica辩护律师走出去
18年6月7日在13:01

#3 楼

这是一个完美的例子:火星气候轨道飞行器的损失。
https://www.wired.com/2010/11/1110mars-climate-observer-report/

引用:


美国国家航空航天局(NASA)审查委员会发现问题出在控制人造卫星推进器的软件中。该软件以磅力为单位计算了推进器需要施加的力。假设数据以公制单位为单位,则使用单独的软件来获取数据:牛顿。卫星太深地进入大气层并被烧毁。

#4 楼

这使我想到了1981年Hyatt Regency人行道倒塌的情况。建筑师TL; DR规定了一种设计,合同制造商替换了自己的设计,随之而来的是机械故障(和死亡)。这是面向工程专业学生的常见案例研究。
资料来源:https://en.wikipedia.org/wiki/Hyatt_Regency_walkway_collapse#Investigation
编辑以提供更多的清晰度:记录工程师将致命的设计缺陷归因于沟通中断。他...将责任委托给负责每个项目的同事。
记录工程师进一步争辩说,结构工程师将钢对钢连接的设计留给行业是一种惯例。制作人...
...制作人...将工作分包给外部的详细信息。反过来,那个详细信息的人错误地认为...车间图纸已经设计好了,因此他本人不对连接进行任何计算。
...记录工程师在文件上加盖印章... [和] ...表示他没有亲自检查所有计算,而是依靠他的项目工程师和设计团队的工作。

资料来源:https://www.asce.org/question-of -ethics-articles / jan-2007 /
请注意,为了保持简短的报价,已删除了很多信息,但是通过全面的分析,您确实可以感觉到假设和误解的完美风暴对齐以完全实现机械故障。

评论


我个人喜欢这个。使用现实世界中的例子来获取现实世界中的点总是更好。

– Shane Andrie
18年6月6日在15:22

#5 楼

我认为操作最能说明瑞士奶酪安全性的原因:就是,
尽管危险和事故之间有许多防御层,
如果每一层都有缺陷,如果对齐,就会使事故发生。

>

评论


实际上,这为接受的答案提供了出色的视觉效果。 Wiki文章中的主要图片显示了这如何适用于许多层,而不仅仅是两层。

– Xodarap777
18年6月10日在2:40

#6 楼

您在演讲中应注意的一件事是,灾难性事件很少是唯一原因。相反,它们通常是一连串的失败,一起造成灾难。此类与软件相关的灾难是Knight Capital Group的失败。尽管有很多故障点,但是软件方面仍然符合您的描述(强调我的意思)。

SMARS的更新旨在替换旧的未使用的代码,称为“ Power Peg” –功能Knight过去8年没有使用过(为什么已经死了8年的代码仍然存在于代码库中仍然是个谜,但这不是重点)。更新的代码重新利用了一个旧标志,该标志用于激活Power Peg功能。该代码已经过全面测试,并被证明可以正确可靠地工作。

由于部署失败(到纽约证券交易所),其中一台服务器仍在执行原始代码。因此,请猜测当您重新使用原本打算完全用于其他用途的代码时会发生什么情况。此功能旨在在执行子订单时根据父订单计算购买/出售的股票。一旦完成父订单,Power Peg就会指示系统停止路由子订单。
当第八台服务器上的Power Peg标志被激活时,Power Peg功能就开始路由子订单以执行,但没有跟踪
想象一下,如果您拥有一个能够将自动化的高速订单发送到市场而没有任何跟踪以查看是否有足够的订单的系统会发生什么?被执行。是的,那真是太糟糕了。
在最初的45分钟内,打开了市场的Power Peg代码,并处理了212个父订单。结果,SMARS向市场发送了数以百万计的子订单,从而针对154种股票进行了400万笔交易,交易量超过3.97亿股。对于您的股票迷来说,这意味着骑士在80只股票中承担大约35亿美元的净多头头寸,在74只股票中承担31.5亿美元的净空头头寸。用外行的话来说,奈特资本集团在45分钟内亏损了4.6亿美元。请记住,骑士只有3.65亿美元的现金和等价物。在45分钟内,奈特从美国最大的股票交易商以及纽约证交所和纳斯达克的主要做市商破产,破产。程序员B删除了该代码,使该参数代表SMARS。一次失败的发布和...灾难。

#7 楼

听起来您在说的是“协同效应”。三种单独起作用但单独作用较小的作用剂,其作用范围之和大于它们的总和。

如果您想进行类比,您可能会考虑将两种药物(例如巴比妥酸盐和苯二氮卓类药物(或者我相信是酒精))合并使用。这可能是我所知道的最著名的协同作用。

评论


另外,我认为更好的概念是“出现”,因为每种作用的综合作用是相反的。

– schroeder♦
18年6月5日在16:26

@schroeder出现是可以的,我确实也想到了这一点。由于出现可能涉及同一实体与自身的相互作用(例如白蚁菌落或冰晶),因此距离还不太远。

– Steve Sether
18年6月5日在19:29

#8 楼

盖拉德城堡的俘虏

盖拉德城堡被认为是真正最先进的,坚固的城堡(实际上是城堡的名字,顾名思义,大致翻译为“坚固的城堡”),最初由国王委托设计。英国的理查德。城堡以外的许多更广泛的防御工事也被用来阻止法国军队占领它,而法国军队又通过各种手段规避了法国军队,包括“简单地”填满防御沟,在塞纳河上架起了一座船桥(带有浮动防御工事,以帮助保持进攻路线的持久性),并挖通外墙。

最终,在所有其他防御措施和墙都被攻破后,由于后来的设计选择产生了两种不同的方法来在第二个幕墙中打孔:除了从第一个贝利到第二个贝利的可伸缩桥和主要设防门外,城堡新增加的小教堂还开了窗户,刺穿了贝利的墙仅3米高。

狮心人理查德(Richard)因其对城堡工程的先进理解而广受赞誉。不过,在他去世后,他的兄弟约翰·拉克兰(John Lackland)在城堡的第二个贝利修建了一个大教堂,并下令该教堂应有朝南的窗户。大概是由于幕墙的高度,窗户被制成刺穿墙壁本身以带来光线。

理想情况下,这些朝南的窗户永远不会成为问题:它们太小了,无法提供足够的手段直接用更大的力量直接拉城堡。但是在第一个贝里外部(外部)进入工程(隧道/采矿)之后,法国军队利用教堂的窗户向第二个贝里进入一支小型部队,足以从内部占领城门(一些消息来源称他们放火了)进入教堂造成混乱)并打开它们,然后让主要军队从第一个贝雷进军。

革命性的外幕墙,具有一系列弧度,可以更好地偏转和抵挡弹丸,多个沟槽以及分开的设计,使第一个百利窗与第二个和第三个百利窗完全隔离,第二个百利窗的外幕墙被刺穿入口(通过从第一个贝利起的可移动桥梁)和光线(教堂的窗户)都成为一个严重的缺陷,只有存在于这两个开口中,这些开口是为不同的目的和不同的设计师而设计的,因此才可以利用。第三个贝利由于墙体较薄而迅速下降(最有可能作为切入以加快高度施工进度的必要拐角,并假设外部贝利不会同时倒下)。

您创建的暴露点越多,即使在正常情况下看似良性或可控制的风险,您做过的事情也有可能绕开其他安全措施。您通过安全措施创建的空位越多,甚至是其他安全措施背后的空位,则越有可能有人会简单地绕过您在主闸上的安全性并找到不同的出路。其他安全措施意味着,如果这些前瞻性措施失败或被规避,攻击者将很容易获得最终目标。

纵深防御(通常称为城堡战略)要求接近从安全性的角度出发,考虑采取的其他措施可能会被击败,而不是依靠这些措施而不会失败,并以此观点来强化。

城堡之所以能够而且已经倒塌,仅仅是因为有人懒惰或以其他方式对外墙后面的安全措施犯了错误,并且不知不觉地提供了次要攻击面,该次要攻击面的安全性低于主要攻击面(主闸门)给定的安全环(墙)。您在墙壁上放的洞越多,有人越有可能在如何控制这些洞上犯错,而被忽视的可能性就越大。人们会犯错误。您需要寻找错误的地方越多,错过一个错误的可能性就越大。专门的攻击者将探查提供给他们的每一种攻击途径,甚至包括您不了解自己的漏洞,或者您从未将其视为漏洞的漏洞。虽然对维基百科上的围城有完整的再现,但它是不准确的(显然是伪造的,因为这是一个常见的参考,尽管一些消息来源声称它可能是法国人故意的错误信息,以避免承认亵渎教堂)。违反第二个贝利区的原因是由于厕所斜道造成的。可以在法语的Histoire Normandie上找到实际的历史记录,此答案现已大量引用。

评论


这是一个好故事,但是并没有讲太多协调(在制造或设计滑槽的人与其余的人之间)。

– Nemo
18 Jun 7'在10:54



@Nemo这是完全公平的,我也很好奇如果我无法挖掘任何相关信息时会尝试查看的细节。实际上,尽管很像软件,但很容易将其描述为两种在墙壁上打洞的方法的故事,由于实施方式的差异,攻击者可以避免一种方法的安全性。放在墙上的漏洞(尤其是不同结构的漏洞)越多,攻击者在其中一个漏洞中发现严重漏洞的机会就越多,您需要牢记/监视/审计的事情也就越多

– Taswyn
18年6月8日在15:43

这是一个好主意,这可能会使OP可以更轻松地将此故事用作类推。

– Nemo
18年6月8日在16:10

@Nemo在继续阅读时很好,我发现我一直听闻的故事实际上是历史学家认为是不准确的,真实的故事不仅作为安全性课程变得更加有趣,而且涉及两个不同的设计师(Richard原始设计,约翰教堂是允许级联漏洞的设计附加项)。为了清晰起见,我可能会再次编辑该文件或完全重写它,因为在较新版本中的追溯编辑在某些方面看起来并不干净,但我认为它现在更合适(虽然不完美,但从概念上讲)

– Taswyn
18年6月8日在17:10

您可以使用参考链接来修复Wikipedia页面吗?

–mattdm
18年6月11日在14:43

#9 楼

这是一个适用于现实世界的简单类比,任何技术水平的学生都应该易于理解。作为奖励,它也可以用于中学生和高中生。

自行车锁主要有两种类型:

手绳/链条





U型锁



这些锁中的每一个都可以使用一个简单的工具。


可以用重型钢丝钳剪断绳索或链条。
可以用撬棍强制打开U型锁。 >
但是,由于飞剪机和撬棍都是笨重的物品,因此自行车盗贼通常一次只能携带其中之一。因此,如果您有电源线锁,可以用撬棍保护小偷,如果没有U型锁,则可以用快剪保护小偷。从两个?通过使用绳索和U型锁来锁定自行车!这样,盗贼必须同时携带这两种工具才能偷走自行车。 >
在Moodle的情况下,绳子和U形锁是彼此连接的(一个环绕自行车,一个环绕着要连接的物体),这意味着小偷只需打破其中之一来偷自行车!因此,您不必将安全性提高一半,而是将安全性降低了一半,因为小偷只需要突破其中一个就可以骑上自行车。

评论


在moodle裂缝中,您需要利用全部3种漏洞,其中一种将漏洞利用传递给另一种漏洞。

– schroeder♦
18年6月11日在11:33

#10 楼

您刚买了一个旧房子。随着时间的推移,许多不同的人对其进行了修改。

您的地下室里有保险箱。您必须经过两个门才能到达地下室。您希望保险箱更加安全,因此在购买房屋时,一定要在房屋和外界之间添加另一扇门,所以现在有三扇门!听起来不错。

不幸的是,这扇门是由一家低预算公司制造的,该公司并未真正遵循任何标准,也没有为建造安全门承担任何责任。您只是漫步到当地的建筑供应商并买了门。更糟糕的是,其他两扇门的选择相似-偶然地,不是按照任何更大的设计。因此,即使有三扇门,对于一个熟练的强盗来说,到达您的保险箱并偷走您的贵重物品也是微不足道的。当然,可以防止偶然的机会失窃-那个臭小子不愿与您的财富相提并论,但是坚定的小偷会很容易的。他不仅使用了质量更高的门,而且还雇用了承包商来建造房屋-一位了解房屋安全的承包商。那个承包商知道如何选择很难打败的门,甚至选择不存在已知打败方法的门。他知道如何在交付和安装门的不同分包商之间进行协调。他知道如何检查门是否正确构建。由于这种监督和协调,您邻居的保险箱将不会像您一样容易被掠夺。

#11 楼

这是一个受特洛伊木马启发的类比。但是在城市内部,大型车辆需要四处走动以运送货物。因此:

第1步:将新的“马匹”(也许这次是不那么可疑的母牛)走私到城市中。一次一次木块没有构成威胁,因此没有受到质疑。但是,此时您不能走私武器。

步骤2:城市中有个手工艺人在制造木制车辆。如果碎片在他的院子里出现,他会组装它们。之后,一个人可以将自己隐藏在Cow中。

Step 3:在节日那天,Cow和其他娱乐活动在城市周围游行。在所有人都喝醉了的情况下,没人会注意到母牛的乘员爬上它,然后从那里跳到城墙。只允许守卫通过。因此,当此人在门楼出现并告诉门卫他的班次结束时,门卫就会相信他(他仍然想加入狂欢)。现在,有了受到威胁的网守,您就可以打开城门,让军队进军。

要专门解决“不同编码人员以不同方式实现相同功能”的问题,请考虑一下将物品带入城市的方式。一个是审查很少的小项目,另一个是审查很多的大项目。问题在于没有人想到将小物件带入城市,然后再将它们组装成大物件。

评论


这让我有些困惑。母牛的居住者如何进入城市,以便他们可以参与第2步和第3步?毕竟,将敌人带入城市是最初那匹马的目的。由于安全漏洞只是各方面在各个方面的相当不专心的疏忽,因此似乎整个环节都涉及走私以建造一头牛,这证明了这个故事与特洛伊木马的联系是合理的。

– O. R. Mapper
18年6月8日在16:56

#12 楼

我不确定这是否完全适合,对于听众来说可能太暗了,但是我想到的一件事是由于不同机构之间没有交流或共享信息,导致911袭击周围的情报故障。

#13 楼

对我来说,就像有人在他们的程序中写了“反序列化”而没有认真思考其含义。第一个版本没有任何问题。

也许更深层的设计和方法学问题是,重新实现的那部分合同没有得到很好的文档记录和测试。

我认为,菜鸟游戏的观众(或实际上是任何观众)偷看当人们不加小心地使用序列化时可能发生的有趣事情可能会更有趣。特别是使用解释性或动态语言。当然,要使该演示文稿正常工作,您需要解释一些技术知识,但这是清醒的受众所付出的代价。

#14 楼

对于非技术人员:

您有三扇门,每扇门都连接到中央报警系统。

1号门的安全手册上写着:


如果警报响起:



关闭警报
测试门
修复发现的任何问题
如果无法解决任何问题,请与建筑物管理部门联系。

门2的安全手册说:


如果警报消失:



等待30秒以查看警报是否自行重置

如果警报仍在继续


测试门
解决发现的任何问题
如果无法解决任何问题,请与建筑物管理部门联系。



3号门的安全手册说:


如果警报消失,则:



等待30秒,看看警报是否会重置。
如果警报仍在继续


测试门
修复发现的任何问题


联系楼宇管理部门以让他们知道发生了什么事。

您现在所处的位置是,一名保安人员可以在另一名保安人员意识到他们需要解决的问题之前关闭警报。

管理层收到一些有关问题和错误警报的通知,并且没有意识到其他警报已被忽略。

#15 楼

无需深入研究链接的文章。这看起来像是一个问题,根本的假设在从事此工作的人员之间并不常见。你可以要求。这些是明确定义的,并且由于您只是告诉系统执行它们并且它们本身是安全的,所以没问题,您将安全密码包括在身份验证中。

稍​​后出现问题时开发人员添加了更新您的帐户数据(包括您的安全权限)的功能。这意味着,如果您知道要询问的内容,则可以使用此新系统来有效地引导特权,因为用于设置数据的系统不是很安全,这就是在解决方案中采用“询问而不是订购”的方法首先,

本质上,通常您要求系统为您执行操作,如果您没有权限,则可以告诉您“不”。

但是后来有人不考虑为什么用这种方法进行更新,这增加了要求系统以一种实际上无法拒绝的方式增加您的特权的功能。参加私人聚会,但您不在邀请对象名单上。安全人员不会让您进入。但是,如果您告诉组织者您被邀请,他们将把您列入清单,而不会提出任何疑问。

#16 楼

如果您在建筑物的所有入口上都由同一位木匠以完全相同的方式安装了同一扇门,则只需彻底测试一扇(尝试将其踢倒,尝试用力锁等),然后您就可以拿走快速浏览一下其他人,以确保它们相同。如果您有一堆木匠,而有些人使用不同的门,则必须对它们全部进行全面测试。

评论


@JoshuaJones不要开玩笑-问题是“需要很好的类比...”,所以答案将是类比,我没有解释它如何适用-您的投诉是吗?如果这是一个很好的类比,则不必解释它是如何应用的。好的比喻也是IMO的简称。我认为对图表的冗长解释只会使听众更加困惑。

– AndyB
18年6月11日在12:15

@JoshuaJones-OP将正确。如果需要解释,那是一个不好的比喻。

– AndyB
18年6月12日13:10



#17 楼

阿波罗13号怎么样?命令模块和月球着陆器的二氧化碳洗涤器是由不同的公司创建的。一个是正​​方形,一个是圆形。

有关更多详细信息,请参见与汤姆·汉克斯(Tom Hanks)的纪录片:-)

#18 楼

平均故障间隔时间(MTBF)或6σ意义上的“故障”
,虽然它们是完全不同的东西,但它们具有一些共同的属性,适用于您的问题。
平均故障间隔时间是评估可靠性的常用方法。东西的。例如,如果您购买诸如汽车或硬盘之类的东西,那么直到您死去那一天,该特定东西才可以正常工作。但是平均而言,在平均时间X之后,它最终会遇到故障。这就是MTBF。
六西格玛(6σ)基本上是相同的事物,除了大部分情况下您不处理事物而是使用流程,您不分析(并优化)运行时间,而是分析“机会”的数量,这可能是...什么,而失败是(还是)...什么。
在一个更具体的示例中,例如,您的制鞋厂每月生产一百万个运动鞋,而您试图使其中不超过3个(理想情况下为零)的颜色错误或没有鞋带而无法出售。
这在这里如何应用?
MTBF有一个众所周知的含义,它与使用的单位数成正比地下降。这意味着,尽管您的手机在两到三年的典型使用期间不太可能在口袋里爆炸,但实际上可以确保如果有一千万个人拥有的话,它就会发生在某人身上(这就是三星臭名昭著的召回运动的原因/大约一年前的PR噩梦-如果您拥有一个鞋,这并不意味着您真的处于危险之中)。
类似地,从6σ角度来看,如果您的鞋厂不仅生产一百万个运动鞋,而且10亿,那么您将有3,000双缺陷鞋,而不是3双。
几年前,不鼓励使用RAID-5。这样,它提供了额外的数据安全性,不是吗?碰巧的是,硬盘损坏扇区的机会非常小,因此无法恢复。那永远不会发生...好吧,几乎。
但是,如果您的磁盘足够大(如现代磁盘一样),具有多个扇区,并且您将其中几个聚集在一起,则基本上可以保证在重新同步操作,即在您不需要精确时间的情况下,因为您已经用完一个磁盘。此外,您还有可能在重新同步的一半时间内造成第二个磁盘灾难性地故障。这也永远不会发生...好吧,差不多。磁盘越多,发生的可能性就越大。
多次在软件中重新实现相同的功能同样适用。每个实现(每个功能,而不仅仅是重复功能的实现)都是一个“机会”,或者等同于硬盘。通过复制功能,更多功能意味着更多的失败机会。另外,还有更多代码需要审查。
尽管您的程序员基本上都在无错误地工作(很好,希望如此),但他们总是有很小的机会做出错误的假设或彻底的错误。机会越多,发生的可能性就越大。

#19 楼

读完该主题并有更多时间考虑这个问题后,我的原件会另辟answer径。要求通过信函形式进行操作。允许他们告诉他们该怎么做。
如果是真的,则按照说明进行操作,否则该信件将被丢弃。公司,
出于安全原因,中心办公室没有自己的通讯地址,需要亲自进行任何更改。

有一天,管理人员厌倦了不得不跋涉到地下室更新员工数据,只需向中心办公室提供他们自己的邮寄地址和表格即可。这样一来,他们可以轻松地在自己的办公室进行更改。

他们并不愚蠢,他们确保中心办公室的表格中不包含任何有关更改密码的内容。 br />奇怪的是,所有表格都可以在通用系统中通过查找特定的抬头来进行验证。 ,中心办公室很乐意接受并进行更改。

突然,该人员可以更改其权限,以允许他们在公司中的任何地方发送有效的信函,并获得对该系统的完全控制。


我想这对于系统和Moodle示例中发生的事情都是非常可靠的类比。带有密码字段的套用信函的版本。