我们一直不厌其烦地说,掀开童话故事薄薄面纱之后,看到的可能是有关信息安全的报告。不仅欧洲的作家试图警示其后代来自网络的威胁,东方作者也有同样的先见之明。比如经典著作《一千零一夜》中的主角舍赫拉查德就每日更新其信息安全视频”播客”,而他这么做的背后确实隐藏着不可告人的动机。
不过今天要说的是直到十八世纪才加进舍赫拉查德”博客”的一些内容:尤其是名为《阿里巴巴和四十大盗》的那场”事故”。即使你不知道故事具体内容,也应该耳熟能详那句魔咒:”芝麻开门!”
其实整个故事建立在用密码来防止非授权访问这一核心思想之上,当然这只是最显而易见的一点,童话中还有大量其他的信息安全小建议。
不安全信道上的密码传输
让我们来快速回顾故事内容:一伙强盗将掠夺的宝物藏在一个洞穴中,只有使用密码”芝麻开门”才能进入这个洞穴,而这个保护机制则充满了安全隐患。
在故事最开头,强盗的头目站在入口处大喊道:”芝麻开门!”很明显这里有几个问题,首先密码过于简单,其次这个登录方式没有双因素认证,甚至连用户名都没有!
更糟糕的是,这个密码是通过公开的信道传输的,阿里巴巴此时正在附近搜集木柴,并无意间听到了强盗说的话。实际上当他后来尝试使用密码时,仅仅是出于好奇而没有任何恶意,但是待洞穴打开之后,他进去拿走了一部分宝物。
间谍软件模块
阿里巴巴回到家之后,让他的妻子清点金币的数量。可是金币数量太多以至于她徒手完全数不过来,于是她从阿里巴巴弟弟的妻子那儿借来了计量工具。
有些翻译将这种工具译为厨房秤,也有的译为一种锅,这仅是一些无足轻重的细节。重要的是,好奇心重的弟媳在工具底部涂抹了蜂蜜(某些版本翻译为板油),想弄明白嫂子为何突然需要这样的工具。当工具还回来时,万万没有想到底部有一枚金币,很明显嫂子在用它数金币!
即便你不是十分精通网络安全,也可以看出作者其实是在描述一个融入正规合法产品的间谍软件模块。弟媳提供的”设备”基于”计量即服务”的模型,并监控着用户的行为。故事寓意十分清楚:请使用来自可信任源的工具,并且记得检查它们是否有安全漏洞或者带有恶意软件。
接下来发生的事情在我看来有些牵强,阿里巴巴和弟弟卡西姆说明了一切并告诉了他洞穴密码。卡西姆进入了洞穴,却忘记了密码并困在了那里(没有密码无法离开洞穴),最后被盗贼们发现并被砍下了脑袋。这里想表达的意思大概是”不要稀里糊涂忘记密码”。
我怀疑当时这部分故事中有一段讲述萨珊王朝的技术人员使用的古老密码管理工具,但是原版内容在故事的口口相传中逐渐被遗失了。我们可以插入自己的版本来代替它:卡巴斯基密码管理工具可以安全存储密码和其他机密信息。
始终不变的密码
让我们回到故事中,由于卡西姆迟迟没有回家,亲人们便开始寻找他,阿里巴巴在洞穴中找到了死去的弟弟,将他带回家乡安葬。
这段剧情是个读者举例说明了一个十分糟糕的密码策略:强盗们在发生上述事故之后并没有修改密码。具体原因我们不得而知,可能只是因为疏忽大意,也有可能是因为认证系统架构的初始设计考虑不周。
还有一种可能,他们也许并没有管理员权限,如果他们劫持了洞穴并且只有一个普通用户密码,洞穴真正的主人可能已经带着管理员密码驾鹤西去。
通过承包商发动的攻击
阿里巴巴不想让人发现自己的秘密,因此他无法直接下葬受到严重伤害的尸体。他和弟媳以及侍女一起绞尽脑汁掩盖事实,侍女多次往返药店购买药物,想制造出卡西姆病情越来越严重的假象,并最后宣布他自然死亡。
然后她还找来一个鞋匠将卡西姆的身体缝补在一起,在来的路上她蒙住了鞋匠的眼睛并带他绕了一段路来确保鞋匠不知道他们的具体位置。
盗贼们正试图找出消息泄露的源头,最终他们找到了鞋匠。他们承诺给他金币,然后也蒙住了这位老人的眼睛并迫使他随着记忆找到了卡西姆的屋子。
这个例子说明即便你通过加密信道和承包商合作,敏感信息还是有可能落入攻击者手中,也许侍女应该和鞋匠签署一份保密协议。
蜜网
盗贼团伙中的一员先在卡西姆家的大门上做了记号,之后和同伙们一同回来杀害居住于此的阿里巴巴等人。然而机智的侍女发现了门上的记号,随后将整条街上的所有大门都做了相同的记号。
实际上侍女将整条街变成了蜜网,它的原理如下:入侵者误将蜜罐当成了目标并发动攻击,于是他们便暴露了自己的目的和攻击手段。在他们反应过来之前,政府网络应急部门的专家已经迅速出动并化解危机。
唯一的问题是:利用无辜用户的家作为蜜罐是否合乎道德?好在最后没有造成实际伤害,强盗们及时发现了这个圈套并取消了攻击行动。
容器化
盗贼的首领打算亲自指挥攻击,他找来40个巨大的油罐(”罐子”的英语单词”jar”正巧对应JAR这种Java归档文件格式),其中两个装满了油,其余都是空的。装油的罐子用来应对简单的安全扫描,而盗贼们则躲在空罐子里。
盗贼首领带着这批罐子出现在了阿里巴巴房子的门口,他打算冒充卖油的销售商来混入屋子并趁着所有人入睡时释放出罐子里的盗贼团伙。
大体上说,这讲述的是一种将恶意软件藏于容器中的攻击方式。由于屋子入口的扫描器并不会深入扫描容器内部,恶意软件偷偷溜入了安全边际,之后首领可以在屋内激活它们。
然而侍女再一次拯救了大家,她无意中听到了盗贼在罐子里发出的声音,然后检查了所有的容器并确定了藏有盗贼的罐子,她往这些油罐中倒入滚烫的油,彻底消除了威胁。换句话说,即便在那个时代,她已经有了可以扫描容器内部的工具,而我们的卡巴斯基混合云安全解决方案拥有同样的功能,不同的是我们适用于1500年后的今天。
最终邪不压正,盗贼的首领被打败,阿里巴巴的儿子(故事结尾突然冒出来的角色)娶了这位聪明的侍女,而阿里巴巴则成为了唯一知晓宝藏洞穴密码的人。
故事的寓意
- 在设计认证系统时,请时刻考虑安全因素,如果在非加密信道上传输固定的密码并且缺少多重因素认证,那简直是自讨苦吃。
- 请小心谨慎地选择供应商和承包商,尽可能检查它们的工具和服务是否存在安全漏洞或者被植入恶意软件,切记所有人都要签署保密协议。
- 使用可以在容器载入时对其内部进行扫描的安全解决方案,防止恶意软件从被黑客控制的代码库”潜入”到你的项目中。