新年虫漏洞丨大东话安全
2022/3/17 中科院之声

     一、 小白剧场

     大东:小白,网上对于程序员的有一句调侃,你知道程序员身上最需要具备的特质是什么吗?

     小白:这个我知道,哈哈哈哈,毕竟我可是预备役程序员。那就是,要做好随时加班的准备。

     大东:但其实各行各业的工作人员需要在有临时任务时候去加班奋斗,为何就单单成为了程序员的特质?

     小白:因为大家一直调侃程序员的工作作息是007,996之类的。

     大东:原来如此。

     小白:话说我们为什么突然聊起来这个程序员加班的话题了?

     大东:因为最近安全圈有一个新闻,微软的员工跨年夜加班回去修bug,又让大家调侃起程序员加班的事情了。

     小白:这是因为什么原因呢?东哥你可以讲一下吗?

     大东:当然可以。

     小白:好的好的,搬来我的小板凳。

     二、 话说事件

     大东:跨年夜大家都会发信息给亲朋好友发祝福,有的人会倾向使用即时性通讯软件,有的人会倾向使用email方式。

     小白:小白我就是使用微信的用户人群。

     大东:很多使用微软 Exchange 的用户发现,自己写好的新年祝福等邮件突然无法发出,并且都会收到一条错误提醒。

     小白:欸,啥情况?

    

     错误提示(图片来源于网络)

     大东:而且包括2016和2019等在内的不少Exchange Server版本中都出现了相同的问题。

    

     (图片来源于网络)

     小白:一个多版本的通用bug呀,这个问题最开始是谁先发现的呢?

     大东:是一个网名叫“miketheitguy”的网友最先发现的,并且这个网友在22年1月1日上午在推特上公开了这个发现。

    

     用户twitter截图(图片来源于网络)

     小白:那么微软的程序员就失去假期了,国外似乎没有咱们这边农历年的习俗,所以1月1日对于他们的含义应该和我们国内看待大年初一差不多吧。

     大东:没错,大家都疯了,大过年的还要加班都怪这个bug,这个bug也遭到了广大码农不分国界的疯狂吐槽。在Reddit 上,相关话题热度上千,许多程序员表示“年都没跨好就在这修bug”。

     小白:加班,看来是国内外程序员的共同特质啊。哈哈。那这个bug到底是因为什么原因造成的呢?

     大东:别急,我们这就开始讲。

     小白:好耶。

     三、 大话始末

     大东:其实呢,这是一个由于“2022年”的到来而导致的bug。

     小白:啊,这和2022年有什么关系,欸,我知道了,是不是和千年虫漏洞很相似!

     大东:你好机智啊,给你点赞。

     小白:因为东哥咱们之前讲过千年虫,所以我还有印象,嘻嘻。

     大东:要想探究最根本的原因,我们要先了解一个微软的系统。

     小白:是什么系统呢?

     大东:是一套邮件过滤管理系统,英文名是“FIP-FS”。

     小白:我好想知道这个系统,是微软Exchange上面的吧。

     大东:没错。我们要关注的就是这套系统存储日期的格式,这个格式其实也是编程程序员比较常见的格式——“yymmddHHMM”,并使用有符号变量(Int32,也就是long)实现。

     小白:所以是数的存储带来的问题?

     大东:对的,先来看这种日期的存储意义,这个对于广大程序员应该很熟悉了。yymmddHHMM分别指代用两位来存储年(years)、月(months)、日(days)、小时(Hours)、分钟(Minutes)。

     小白:这样存储好像也没啥问题呀。

     大东:小白,你思考下有符号的int32数的存储范围是多少呢?

     小白:有符号的Int32最多只能存储-2147483647到+2147483647的数据。

     大东:你看,答案就在眼前。

     小白:对,从22年开始,就变成了22XXXXXXXX,从2022年1月1日0时开始,就超过了Int32所能存储的数据最大范围。

     大东:所以这个漏洞也被网友称为“2022 版千年虫”,也被一些Exchange管理员命名为Y2K22。

     小白:看来变量虽小,却不能忽视啊。在程序设计的时候一定要考虑到实际应用中数的取值范围的问题。微软对此是如何应对的呢?

     大东:嗯…首先就是紧急叫了一波程序员回去加班奋战了。

     小白:又cue到了辛勤的打工人。

     大东:微软同时也发布了公告,在公告中声明,他们会发布一个Exchange Server更新,里面将用一个更大的变量类型来保存日期。

     小白:这次应该波及挺大的吧,估计有好多邮件都滞留邮箱了。

     大东:是的,你想,设置在2022年新年发送的邮件会在许多公司的邮箱服务器内滞留,据了解,有的公司邮箱服务器中滞留的邮件甚至已经达到数十万封。

     小白:这,这是肯定存不下的啊!

     大东:是啊。

     小白:微软有没有说有什么临时解决的办法?

     大东:微软团队表示,如果有非常紧急的邮件需要发送,需要先关掉Exchange中的FIP-FS功能。可以通过使用 Set-MalwareFilteringServer -BypassFiltering $True -identity 禁用 Exchange 服务器上的反恶意软件扫描器,并重新启动 Microsoft Exchange Transport 服务。

     小白:对啦,这个FIP-FS具备什么功能呢?

     大东:刚刚我们已经提到过它的中文全名了“邮件过滤管理器”,小白你来猜猜看呢?

     小白:我想想啊,那它是用来过滤垃圾邮件的吗?

     大东:是的,不仅垃圾邮件,它还可以一定程度上检测恶意邮件,并过滤出去。

     小白:这样操作很可能导致公司邮箱“可能收到更多垃圾邮件”。

     四、小白内心说

     大东:还有网友调侃,我们简单点直接把有符号变量改成无符号变量吧。

     小白:哈哈,这么简单粗暴的吗?直接让范围奔向0~4294967295!

     大东:我不怀好意地想一下,如果真的这样搞,Exchange邮箱应该是可以用到2043年啦,哈哈。

     小白:哈哈哈,那这就是千年虫病毒的2043版。

     大东:还有一些网友说要不我们把日期回滚到2021年吧,可以暂时解决此问题。

     小白:哈哈哈,网友都在积极出谋划策。

     大东:最后微软还是给出了自己官方的结局方案。

     小白:是什么呢?

     大东:它们紧急发布了一个临时修复程序——“Reset-ScanEngineVersion.ps1”。

     小白:我猜是PowerShell脚本?

     大东:是的。

     小白:那我们要怎么操作这个临时修复程序呢? 直接执行PowerShell脚本就可以了吗?

     大东:是的。“Reset-ScanEngineVersion.ps1”脚本执行时,Microsoft过滤管理和Microsoft Exchange传输服务都会被停止,随后会删除旧的防病毒引擎文件,并下载新的防病毒引擎,最后再次启动这些服务。

     小白:大东东,能再讲得具体一点吗?

     大东:那我们来一步一步讲。第一步、从https://aka.ms/ResetScanEngineVersion下载 Reset-ScanEngineVersion.ps1 脚本 。第二步、打开提升的 Exchange 命令行管理程序。第三步、通过运行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned更改 PowerShell 脚本的执行策略 。第四步、运行脚本。

     小白:明白了!

     大东:微软还提示,如果之前禁用了扫描引擎,需要使用Enable-AntimalwareScanning.ps1脚本再次启用它 。

     小白:嗯嗯,大家可以按照这个方法进行设置啦。

     大东:小白,你听完这个故事有没有什么感想呢?

     小白:欸,感觉变量这件事看起来微不足道,实际上出问题之后影响还是蛮大的。写程序的时候一定要多多考虑啊!

     大东:没错,小白努力做一个优秀的程序员吧。

     参考资料:

     1. 微软Exchange惊现2022“新年虫”,紧急修复 https://www.77169.net/html/286136.html

     2. 微软2022年首个大Bug出现,大量程序员连夜加班 https://new.qq.com/omn/20220106/20220106A04BMF00.html

     3. 微软开年就出大 bug,大量程序员连夜加班:年都没跨好 https://blog.csdn.net/bjweimengshu/article/details/122388858

     来源:中国科学院信息工程研究所

    

     温馨提示:近期,微信公众号信息流改版。每个用户可以设置 常读订阅号,这些订阅号将以大卡片的形式展示。因此,如果不想错过“中科院之声”的文章,你一定要进行以下操作:进入“中科院之声”公众号 → 点击右上角的 ··· 菜单 → 选择「设为星标」

    

    

    源网页  http://weixin.100md.com
返回 中科院之声 返回首页 返回百拇医药