亲历的一次 Mongodb 攻击
李
2019-06-24 17:09:44
上海
项目需要,在腾讯云上部署了 Yapi 来管理接口。今天同学突然跟我说 Yapi 上不去了。检查一下发现,账号都被删了。再检查一下发现,整个数据库都被删了,僵硬。
于是打开 Mongodb 日志查看操作记录。
默认在 /var/log/mongodb/mongod.log
位置,然后
cat mongodb.log |grep dropDatabase
然后发现有许多条删库的记录。
2019-06-24T10:46:23.117+0800 I COMMAND [conn116] dropDatabase account-db - starting
2019-06-24T10:46:23.117+0800 I COMMAND [conn116] dropDatabase account-db - dropping 0 collections
2019-06-24T10:46:23.244+0800 I COMMAND [conn116] dropDatabase account-db - finished
时间在十点多,那时我还在睡觉😁
锁定这个连接 [conn116]
然后
cat mongodb.log |grep "[conn116]"
结果如下:
2019-06-24T10:46:23.117+0800 I COMMAND [conn116] dropDatabase account-db - starting
2019-06-24T10:46:23.117+0800 I COMMAND [conn116] dropDatabase account-db - dropping 0 collections
2019-06-24T10:46:23.244+0800 I COMMAND [conn116] dropDatabase account-db - finished
2019-06-24T10:46:23.244+0800 I COMMAND [conn116] command account-db appName: "robo3t" command: dropDatabase { dropDatabase: 1, writeConcern: { w: 0, wtimeout: 0 }, $db: "account-db" } numYields:0 reslen:62 locks:{ Global: { acquireCount: { r: 2, w: 1, W: 1 } }, Database: { acquireCount: { W: 1 } } } storage:{} protocol:op_msg 127ms
2019-06-24T10:46:26.281+0800 I COMMAND [conn116] dropDatabase analysis-db - starting
2019-06-24T10:46:26.281+0800 I COMMAND [conn116] dropDatabase analysis-db - dropping 0 collections
2019-06-24T10:46:26.294+0800 I COMMAND [conn116] dropDatabase analysis-db - finished
2019-06-24T10:46:28.813+0800 I COMMAND [conn116] dropDatabase movie - starting
2019-06-24T10:46:28.813+0800 I COMMAND [conn116] dropDatabase movie - dropping 0 collections
2019-06-24T10:46:28.832+0800 I COMMAND [conn116] dropDatabase movie - finished
2019-06-24T10:46:31.369+0800 I COMMAND [conn116] dropDatabase config - starting
2019-06-24T10:46:31.369+0800 I COMMAND [conn116] dropDatabase config - dropping 0 collections
2019-06-24T10:46:31.382+0800 I COMMAND [conn116] dropDatabase config - finished
2019-06-24T10:46:34.208+0800 I COMMAND [conn116] dropDatabase yapi - starting
2019-06-24T10:46:34.208+0800 I COMMAND [conn116] dropDatabase yapi - dropping 0 collections
2019-06-24T10:46:34.544+0800 I COMMAND [conn116] dropDatabase yapi - finished
2019-06-24T10:46:34.544+0800 I COMMAND [conn116] command yapi appName: "robo3t" command: dropDatabase { dropDatabase: 1, writeConcern: { w: 0, wtimeout: 0 }, $db: "yapi" } numYields:0 reslen:56 locks:{ Global: { acquireCount: { r: 2, w: 1, W: 1 } }, Database: { acquireCount: { W: 1 } } } storage:{} protocol:op_msg 335ms
2019-06-24T10:46:42.841+0800 I COMMAND [conn116] dropDatabase local - starting
2019-06-24T10:46:42.841+0800 I COMMAND [conn116] dropDatabase local - dropping 0 collections
2019-06-24T10:46:42.866+0800 I COMMAND [conn116] dropDatabase local - finished
2019-06-24T10:47:45.544+0800 I STORAGE [conn116] createCollection: admin.RECOVERY with generated UUID: 764e8a75-d5f5-44da-aa01-89035f820b7d
2019-06-24T10:48:35.495+0800 I NETWORK [conn116] end connection 207.148.13.163:40264 (8 connections now open)
一顿操作行云流水,肯定是机器人操作,删完还不忘创建一个 admin.RECOVERY
,留下一个联系恢复的邮箱。
{
"_id": {
"$oid": "5d1039f3a6d39755438bc654"
},
"recovery": "email whitx@gmx.com"
}
查了一下这个地址,是美国的一台 vultr 的 vps ,很难找到是谁。而且仔细看一下日志,美国加拿大的很多陌生 IP 都造访过我的 Mongodb,真实流泪。
于是我就给mongodb加上了密码,换了端口,并且养成了经常备份的好习惯。