LUG 服务器被入侵事件始末
5 月中旬,LUG 举行了白帽子大赛,对校内网站进行白帽子漏洞测试,并按照漏洞来评奖。这次活动举行得还算顺利,几天时间里找到了校园网络系统的上百个漏洞。然而不知是什么原因引来了骇客。
5 月 31 日凌晨,监控系统接连发出的报警打破了深夜的宁静,LUG 的数十台服务器毫无预兆地接连出现故障,震惊中外的 LUG 服务器被黑事件拉开了帷幕。从 6 月 1 日服务器管理员 gyf 向网络信息中心第二次通报的邮件里,能够依稀感受到当年的紧张气氛。
1 | 按照事件第一次发生时间排序: |
事后查明,服务器是用我的账号远程登录进去的。骇客 5 月中旬通过 U 盘传播的病毒入侵了我的笔记本,植入了键盘记录器,并通过未知方式远程控制我的浏览器访问一些与网络入侵有关的网页。由于我的个人账号没有访问记录,比特币钱包也没有被窃取,很有可能这是针对 LUG 而非我个人的一次高级持续性威胁(APT)。此后的半个月里,骇客没有打草惊蛇,估计是在通过各种渠道收集 LUG 服务器的信息。5 月 30 日夜,骇客通过键盘记录器窃取的服务器密码登录了大批服务器,并插入恶意内核模块。骇客还侵入 LDAP 数据库,篡改了一位已经离校的老会员的密码,登录进防守最严密的 mirrors 服务器。骇客还窃取了一位 VPN 用户的私钥,接入服务器内网,进一步入侵不允许从校外接入的服务器。
这个恶意内核模块所做的事情看起来很简单,就是在每次文件操作的时候随机修改硬盘上的一个字节。这个看起来像是恶作剧的内核模块,使得服务器在刚被入侵的时候运行一切正常,但当有关键数据被破坏后,发现系统异常,此时已经有大量用户数据和系统文件被破坏了。当管理员试图扫描和修复这些受损文件的时候,由于产生了大量文件操作,就导致更多的文件受损,总也修不好。甚至当我们 NFS 挂载备份服务器来拷贝备份数据的时候,拷出来的备份也是有错的,这让我们百思不得其解(幸亏备份服务器是 NFS 只读挂载,不然备份本身也可能被破坏)。
日访问量过千万的开源软件镜像(mirrors)服务中断,校内数千名用户依赖的 VPN 中断,freeshell 虚拟机内文件损坏,blog 无法访问,连 LUG 主页都打不开了,询问的邮件像雪片一样飞来,然而邮件服务器也挂了。这次被黑事件甚至惊动了多个 Linux 发行版和开源软件的上游,他们纷纷表示开源软件镜像被入侵是闻所未闻的事。Freeshell 服务由于没有备份而终止,VPN 服务则由于充当了帮凶而不再公开运行。此次事件暴露了 LUG 服务器基础架构的诸多问题,比如公共 VPN 服务和服务器使用同一内网,密码登录没有两步验证,服务器没有对插入内核模块的危险操作作报警和防御,离校管理员的账号没有禁用。当然,我的笔记本被骇客入侵是根本原因。事后,LUG 和 james 老师对我宽大处理,没有追究我的责任。我至今感到非常内疚。