捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?
摸不了鱼了
2019 年 11 月 26 日,本来应该是无比平静的一天,开开会,改改bug,摸摸鱼之后等着下班。刷着新闻的间隙,手机的消息提示音响了起来,收到了一条邮件,平时收到邮件我都会选择稍后处理模式继续摸鱼,但是看到邮件标题后,我感觉摸鱼是摸不得了,怕不是捅了什么篓子,邮件的标题是这样的:
什么东西?怎么了?我一看到“国家信息安全”几个大字,手里摸的鱼都抓不牢了,我当时真的被唬住了,赶紧点开邮件查看一下我到底做了什么,我真的不知道我干了什么,瞬间进入巨怂模式,屏气凝神不敢说话。
国家信息安全漏洞共享平台的邮件
点开邮件之后,内容如下:
主要文案为:
近日,国家信息安全漏洞共享平台(即中国国家漏洞库,CNVD)接收到报告,获知如下漏洞信息,CNVD-C-2019-195336 Newbee-mall v1.0.0存在SQL注入漏洞。该漏洞经测试,情况属实。现将漏洞情况通报,请贵单位协助做好漏洞分析和处置工作。
国家信息安全漏洞共享平台发现了一处程序漏洞,通知我赶紧处理。
看了邮件内容之后,心情缓和了很多,哎呀,我还以为你要抢我鸡蛋呢,原来是这个 bug,这个问题其实我早就知道了。虽然现在不是巨怂模式,但是依然有点怂,我很纳闷儿,当时主要有如下几个疑问:
- 这个 bug 并不严重,而且已经修复了,现在这个邮件是什么意思?
- 就是这么一个问题怎么就会被“国家信息安全漏洞共享平台”给捅出来了?
- 这个“国家信息安全漏洞共享平台”是真的吗?怕不是要被骗了吧?
好的,带着这几个问题,摸鱼是摸不下去了,赶紧查一下吧,顺便也问问大家到底是怎么回事。
来龙去脉
很多朋友看到这里应该会很好奇,狗十三你到底写了一个什么 bug,还被国家信息安全漏洞共享平台给发现了?
莫慌莫慌,我们从头讲起,十三带着大家来捋一捋这之中的来龙去脉。
几个月之前,也就是 2019 年 9 月份的时候,我在 GitHub 开源平台上发布了一个开源项目 newbee-mall,newbee-mall 项目(新蜂商城)是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发,这个开源项目也开源了好几个月,但是因为最近比较忙,我还没有介绍给大家,后续我会整理一些文章来详细地介绍一下这个 Spring Boot 开源商城项目。
以上是事件背景,由于是刚刚开源嘛,肯定还有很多小问题还没来得及修复,也因此有一些朋友给我提了一些 issue,其中有一条 issue 内容如下:
这是开源项目 newbee-mall 的第一条 issue,这位朋友给我提的意见是:项目里的部分 SQL 语句存在 SQL 注入的危险。好的,我看到这条 issue 之后就放在那里了,准备在空的时候给修复掉,大家能够从图中看出,这条 issue 是在 2019 年 10 月 20 号提给我的,我也在 10 月 23 号把这个问题给修复并且关掉了这条 issue,本以为是很小的一件事情,项目有 bug,修复嘛,对吧?
但是后面又出现了一些事情,一些意料之外的事情,并不是这封邮件,在这封邮件之前还有一件事情要和大家说一说。
CVE 国际安全漏洞库
来,继续。
刚刚说了“国家信息安全漏洞共享平台”,这是我们国内的漏洞库,在接到这封邮件之前呢,我发现 newbee-mall 项目的那个 SQL 注入问题已经出现在了 CVE 的官网,也就是国际安全漏洞库也收录了这条 SQL 注入漏洞。
被 CVE 收录这件事情我是怎么发现的呢?
做过开源项目的都知道,在仓库里我们是可以查看近期项目的访问来源的,也就是大家通过哪些渠道进入到我们的开源仓库这些都是可以追溯的,大致的页面如下:
分别是网站的 LOGO 以及网址,还有就是通过这个网址的访问统计,我偶尔也会看一些这个页面,关心一下项目的访问情况。某一天呢,我忽然发现在这些记录里有一条很陌生很陌生的记录,也就是 CVE 网站的访问记录,而且那几天,天天都有好几条统计记录,其实一开始我也不知道 CVE 是什么,我只是觉得这个 LOGO 和网址有些陌生,于是就点进去了。
好的,点进去就发现之前提到的那条 SQL 注入问题被收录到这个网站里了,阿西吧,内容如下:
很搞人心态的是什么呢?我压根儿没理这个东西,因为我觉得毕竟是一个小 bug,而且我都已经修掉了,你挂着就挂着吧,老子才不理你呢。对,狗十三就是这么傲娇。
至于当时的心态为什么那么傲娇,而收到国内漏洞库邮件的时候差点尿裤子呢?为什么反差如此之大?这一切的背后到底是道德的沦丧,还是人性的扭曲?
其实都不是,主要因为 CVE 是一个国外站点,我并不熟悉,我也根本没有在意,而且我真的觉得那个 SQL 注入的小 bug 应该不至于搞多大阵仗。
只是这封邮件之后我才想到,早在收到这封邮件的一个月之前呢,国际安全漏洞库也收录了这个漏洞,我还真的是丢人丢到国际上了,真的是有够好笑呢。
国家信息安全漏洞共享平台邮件的后续反馈
好的,咱们把视线拉回到 11 月 26 号,我在收到那封邮件之后就带着几个疑问,于是我就把这封邮件的一些内容发给了一些朋友,也发到了自己的 QQ 群里,主要是想了解一下我是不是很危险,又怂了。
折腾了一个多小时吧,也收到了大家很多的信息,最终得出结论,组织是真的,问题也不大,都已经修复了,就别再担心了。
终于松了一口气。
最终呢,我也给国家信息安全漏洞共享平台回了一封邮件,告诉他们问题已经修复,不用担心,同时也感谢他们的善意提醒。
事情到了这里,其实已经结束,整理这篇文章的目的也就是供大家摸鱼的时候有点内容可以看看,同时,也了解一下 CVE 和 CNVD 这两个组织,如果有什么问题或者想要了解的事情呢,大家也可以留言给我,大家一起讨论讨论。
写在最后
做个小推广,感兴趣的朋友可以看一看,最近我在掘金平台上发布了一本小册《Spring Boot 大型线上商城项目实战教程》:
小册将围绕 Spring Boot 技术栈,使用的其它技术框架也会兼顾最新技术动向,对知识进行拓展,由浅入深,步步为营,在学习基础的同时也能够掌握一定的开发技巧,不仅仅只是学习 Spring Boot 的皮毛,也知晓它的源码设计和内部原理,不仅仅只是学习 Spring Boot 的相关技术栈整合,也能够使用 Spring Boot 技术栈搭建一个大型的商城系统,从而让你拥有一个高质量的学习进阶体验。远离 Hello World 项目,让你既能够得到一份完整的实操项目,也能够帮你点满目前炽手可热的 Spring Boot 技术栈,为你的技术深度和薪水职位的提升提供充足的保障。
这是一个商城的实战项目,部分页面预览图如下:
感兴趣的朋友可以关注一下。
感谢大家的观看,我是十三,文章首发于我的公众号“程序员的小故事”。
第一次,当它本可进取时,却故作谦卑;
第二次,当它空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中虽不甘心,却又畏首畏尾。