在遥远的年初,就职于IBM公司的BarryFeigenbaum开发了一个网络共享协议,试图让现在听上去已古老的DOS操作系统支持网络文件访问。雏形版本叫做“BAF”,正式发版的时候更名为“SMB”(ServerMessageBlock),最早见于年11月8日的IBMPersonalComputerSeminarProceedings,卷2。随后,微软在IBM版本的基础上作了大幅修改,形成通用版本。分别在年和年将其引入MicrosoftLANManager和WindowsWorkgroups项目,从此SMB也开启在Windows平台漫长的生涯。
年微软的SMB迎来一次不小的挑战,SUN公司强势推出了WebNFS。微软针锋相对,一方面将SMB更名为更通用的CIFS(CommonInternetFileSystem),并递交公开的IETFCIFS1.0草案。此外继续给SMB/CIFS增加一系列特性,包括符号连接,硬链接等来迎合市场,为减少性能损耗,微软也着手优化掉不必要的NetBIOS协议。
SMB/CIFS的易扩展性让它在Windows,Linux,NAS等平台或场景中扮演着重要的角色,SMB/CIFS协议支持了超过条的复杂主指令(Command)。但是SMB相关的文档都是读起来要累掉大牙的,SMB/CIFS开始变得臃肿了,自身啰里八嗦的交互让它成了当时的网络资源杀手,很少用户会把它应用在WAN下,甚至一些厂家不得不搭建中间协议缓存系统来提高整体的网络性能。SMB这样的情况让很多人都很不开心,(当然有些人是很开心的,比如Hackers)。直到年,SMBv2项目的出现给SMB协议带来了光明的希望。至此,第一代SMB协议缝缝补补24年,即SMBv1(全名:ServerMessageBlock,曾用名:CIFS,年-年)。
年,SMB1已经近34岁了,它的设计和出现更多是为已经消失的过去,那个还没有恶意攻击行为,还没有海量重要数据,还没有普及计算机的世界。在现在看来,SMB1协议拥有一个“好傻好天真”的一生。近年负责微软SMB协议项目的专家NedPyle,在Twitter中说了这么一个比喻,“当今社会还在运行SMB1协议就像带着你的祖母去一个热闹的舞会,她是出于好意前往的,但她是真得跳不动了。而且,这可能会是个令人害怕和难堪的事情。”。
SMB1确实给互联网带来过人人恐慌的经历。
年3月,早在MS17-漏洞被WannaCRY攻击之前,微软发布了MS17-10补丁程序并提醒用户这是一个重要更新,但是并没有卵用,没有几个用户进行了更新,除了强迫症患者。安全人员根据补丁文件数字签名发现微软在2月份的时候就知道漏洞细节。4月,著名的黑客组织影子经纪人(TheShadowBrockers)发布“永恒之蓝”的完整漏洞利用框架,信息安全行业沸腾了,但用户依然没有太强烈的感知。5月,WannaCRY直接利用“永恒之蓝”漏洞和框架配套的“双星脉冲”后门成功扫荡互联网,一时间波及多个国家,超过30万台主机受到影响,有信息表示该攻击事件造成了全球80亿美元的直接经济损失。“永恒之蓝”是微软SMB1协议漏洞的一个近乎完美攻击利用,可以直接拿下Windows2K,WindowsXP,Windows7,Windows8,甚至Windows10在内的操作系统(未更新补丁)。SMBv1长远的历史地位,大规模用户量和远程网络服务功能,让它的漏洞与生俱来就具备成为最有价值漏洞的资本。实际上,微软的MS17-系列漏洞因其罕见的影响力而被作为一个划时代的漏洞写入到了互联网安全历史。WannaCRY事件之后,安全行业普遍认为互联网安全进入了后“永恒之蓝”时代,但有关微软SMBv1协议的安全漏洞还没有结束,时不时的有后辈想一鸣惊人再现前辈“永恒之蓝”的辉煌,不停的在通过攻击SMB1协议证明自己的威力。
年至今,微软和业界对SMB作了大幅度改进,修订出了更符合现代安全需求的SMBv2,3协议和实现。糟糕的是,不管如何提高SMB协议的安全性,只要服务端和客户端支持使用SMBv1,中间人攻击就无法避免。黑客只要踢掉SMBv2+协议并告诉此路不通,客户端就会主动傻呵呵的降级到SMBv1,和黑客共享通信过程中的一系列消息,除非通信内容本身加密。
虽然在windows10在更新了最新的补丁之后会默认关闭SMBv1,但考虑到国内大量用户使用windows7而且即使使用windows10的用户大比例上也没有主动更新补丁的习惯,所以SMBv1依然是企业用户的首要高危风险之一。禁用SMBv1可能是解决SMBv1高危风险的终极解决方案了。
文/上海蓝盟IT外包专家