提示:关于数据库的安全事件警示,我曾经写过一本书《数据安全警示录》,第一版我开放了下载,在公众号回复:下载 可以找到链接。
今天,被微软蓝屏事件刷屏,媳妇也破天荒的发了个相关的IT新闻给我看,那意思可能是:看看你们IT人干的好事!
然后有几个朋友问我:数据库里会不会出现这类大规模的影响事件?
我想了一下,看了一下这次事故的阶段性原因通告:
网络安全软件公司CrowdStrike(CRWD.O)公司工程部已确定该问题与“内容部署(contentdeployment)”有关,目前已恢复了这些更改。
建议受影响的用户将电脑启动到安全模式或恢复环境,导航至
C:\Windows\System32\drivers\CrowdStrike
目录,找到与“C-00000291*.sys”匹配的文件并将其删除,即可正常启动电脑。
也就是说,微软蓝屏的原因是由安全软件更新所引发的。而这样的更新是否经过足够的安全检测、用户是否具有一定的知情权和选择权?在云环境下,针对基础能力的提升,答案可能是否定的。有网友开玩笑,CrowdStrike 是由 Crowd 和 Strike 组成,意思是“群众罢工”,目标真的实现了。
这件事情具体真相后续可能还要等等。但是朋友的问题让我想起了Oracle数据库中和补丁更新有关的一个故事。
大约在2018年3月,在 Oracle 官方支持站点上,发布了两篇告警文章,其标题分别是:
Oracle Databases Need to be Patched to a Minimum Patchset/PSU/RU level before April 2019 (Doc ID 2361478.1) Mandatory Patching Requirement for Database Versions 11.2.0.3 or Earlier, Using DB Links (Doc ID 2335265.1)
简单翻译一下就是:
2361478.1:在 2019年 4月前,Oracle 数据库需要更新到的最小 Patchset/PSU/RU 补丁; 2335265.1:使用 DB Link 的数据库,11.2.0.3 及之前版本必须应用的补丁
这两篇文章引发了用户的广泛关注,尤其是针对标题中使用的“Mandatory - 必须的”和“Before April 2019 - 在2019年4月之前”。其潜台词是如果不升级,那么数据库在这个时间之后就可能会出问题和不可用。
所以当时很多用户也在问我:Oracle 是如何让这样的问题在2019年4月后触发的?难道是 Oracle 在数据库中埋下了一个时间触发器?
当时这个问题没有答案,官方没有解释。我花了一点时间研究,第一个找到了这个问题的答案。这个问题的答案和微软蓝屏具有的相同点都是:通过打补丁引入的。
而Oracle这个补丁这是在2013年左右,通过一个不起眼的功能增强引入的,几乎没有人注意到这个补丁的功能。而恰恰通过这个补丁,Oracle更改了SCN的增速机制,并且在2019年6月正式启用。
而在Oracle数据库中,SCN可以在互相链接的数据库中传播,只要SCN到达和时间有关的上限,则数据库将无法使用,这样的问题曾经大范围发生。
当时我的这篇文章影响非常之大,后来Oracle官方也随后公开了这个修补的真相,这篇文章的链接如下:
预警揭秘:倒计时炸弹11.2.0.4前版本DB Link必须在2019年4月升级真相
另外的一篇文章:更新通报:Oracle全面修正了关于DB Link和SCN补丁的公告。
通过发布补丁,借助产品的特性原理,数据库同样可能面临大面积的“蓝屏”事件,好在通过开源软件,开放源代码,通过社区的公开审视,这样的问题可以大幅度的被缩减。
一点历史故事的回忆,Oracle DBA们应该都对 SCN 事件记忆犹新吧。