这篇文章不是 Android 相关内容,主要介绍技术人个人建站的一些安全事项。也许会对搭博客的大家或者创业团队有些帮助。
我在 2013 年初开始搭建个人博客 trinea.cn,2015 年建立 codekk.com,到目前为止累计也有几千万的访问量,期间发生了三次印象比较大的攻击或安全问题。
15 年 7 月初
当时连续几天 trinea.cn 访问一直超时,刚重启正常,几分钟后问题依旧,排查 Nginx Accss Log 发现是被 14 年著名的 WordPress xmlrpc.php 攻击盯上了,攻击者通过不断的向这个接口提交 post 请求拖垮服务器。
后来通过禁用 xmlrpc.php 以及 iptables 屏蔽掉那些 ip 解决,具体可见: http://www.trinea.cn/other/blog-hack/ 介绍。
16 年 1 月
当时有粉丝留言 codekk 数据库在乌云(曾经国内知名的漏洞报告平台)上被公开了,开始还挺蒙,以为是老数据泄露了,搜了下才知道原来 MongoDB(codekk.com 使用的 NoSQL 数据库) 默认没有密码,且允许远程连接,这样固定扫描机器的 27017 端口就能抓住一大批 MongoDB 新手库。辛亏乌云上的白帽子没有做什么删库操作。
给库加了几十位的密码临时解决,因为有远程的需求,暂时没关闭。
17 年 11 月
上周日早上收到 DnsPod 的微信报警 "您的网站 *.codekk.com 无法访问",本以为是周六临时加的多语言包 i18n 故障导致,登陆后发现数据库连接失败,手动也无法登陆,看了下数据库操作日志,核心库 codekk 被 drop 了,并且被新建了 Warning 库及 Readme Index,插入了只有一条数据的表。
BitCoin: "1EPA6qXtthvmp5kU82q8zTNkFfvUknsShS",
eMail: "cru3lty@safe-mail.net",
Exchange: "https://localbitcoins.com",
Solution: "Your DataBase is downloaded and backed up on our secured servers. To recover your lost data: Send 0.2 BTC to our BitCoin Address and Contact us by eMa..."
大意就是想要恢复数据就给他们转 0.2 比特币。通过日志看他们根本没有脱库直接删除的,所以比特币转过去也无济于事。
查了下是今年年初在国外掀起巨大波澜的 MongoDB 攻击事件,全球成千上万 MongoDB 被攻击,由著名的黑客 Victor Gevers 发现并呼吁大家重视。
辛亏数据库每天会自动备份到 Bitbucket 私人库,通过 mongorestore 恢复下再同步下 ElasticSearch 数据即可。通过添加 admin 管理员、更改端口、限制外网 ip 访问等措施解决防止后续被攻击,具体可见: http://www.trinea.cn/other/codekk-mongodb-hack/。
虽然 codekk 数据库泄露两次,但对通过 GitHub 登陆的用户并不会有影响,因为数据库里的 accessToken 是加密的,且 GitHub 给 codeKK 的 Client ID(20 位) 和 Client Secret(20 位) 都并没有泄露。
后话
平时并没有什么时间去仔细研究这块,虽然这几次攻击造成了访问量以及数据的一些小丢失,但整体来讲是帮网站进行了简单的安全测试。
codekk.com 运行近 3 年,每天会自动收集最新并且不错的 Android 开源项目,截止目前已收集 5000 开源项目,最近周末也在整理网站英文版,大家可以多逛逛看是否是你需要的。