美文网首页
ElasticSearch博客搜索,被黑客勒索0.1个比特币

ElasticSearch博客搜索,被黑客勒索0.1个比特币

作者: 搬运工来架构 | 来源:发表于2018-09-22 16:07 被阅读32次

    某天发现自己的博客的搜索功能失效了,搜索使用ElasticSearch作为博客的全文搜索引擎。

    ElasticSearch使用的是2.X版本,并且使用了插件head来进行管理。默认的ElasticSearch,以及head插件是无需输入认证信息就能访问,这个确实是一大安全问题。

    现在黑客使用工具基本上就可以扫描你服务器,0-65535个端口基本上会给扫一遍。

    针对常用的服务端口,更加是他们最喜欢最容易攻破的地方! 比如:Tomcat默认端口8080,MySQL默认端口3306,等等。    然而ElasticSearch的http端口默认就是9200!

下面就分享下我的ElasticSearch被黑了,然后要勒索我0.1个比特币。

我的ElasticSearch博客数据被清空(应该是被黑客拿去,然后清除我这边服务器数据),并且新增了一条信息,就是说在48小时内,要我给某某账号支付0.1个比特币,不然数据就泄露出去!

信息原文如下:

Send 0.1 BTC to a wallet 1MGJE7YK7LS1i6JPRRn2LX92DcAFhP2SKA and send a message in this email ooxe2iqu@airmail.cc with IP of your server for database recovery. If you do not agree, within 48 hours the data will be leaked (all that we find: emails, passwords, etc) on the public network and deleted

    留在ElasticSearch的数据截图如下:

    连夜赶紧修复这个问题,基本上花了6个小时左右才搞定这个安全问题。

下面说下我解决这个问题的过程:

    ①网络搜索资源如何防止解决ElasticSearch的安全问题,查找到使用插件 Search Guard可以解决权限安全问题。

②Search Guard安装在服务器,并且使用SSL解决安全问题,前前后后出现了各种问题,特别是权限认证上不通过,大概花了3、4个小时。解决完成之后,访问Head插件,成功生效,需要输入用户名和密码才能访问管理界面。

    ③由于之前使用的ElasticSearch内置的客户端接口TransportClient,封装之后没有考虑支持Search Guard SSL,所以就继续网上找资料,并且继续开发和修改之前的工具,网上资料相对少一点,并且开发调试的过程中各种问题,大概花了2个多小时才把工具写好和测试OK。

    ④然后重新打包将项目在服务器上重新启动,恢复正常,搜索服务也正常。

    教训与经验:

①重要数据一定要考虑数据安全,特别是与钱相关的业务!(虽然我博客的数据并不重要,原数据都在mysql,重新索引即可。)

②相关服务端口不要用默认的端口,因为默认端口方便了黑客的各种攻击尝试,更加容易出现安全问题。(比如,mysql端口可以设置为23432等)

③服务器防火墙安全设置防护,这是第一道墙。(对于不需要账号登录的服务(内网),特别是相关的服务端口,基本上要禁止外网或者非法用户的访问)

    ④服务增加安全认证权限,非法用户不能访问没有权限的数据及其服务。(比如ElasticSearch服务就应该不能随意给访问,甚至给修改数据)

⑤重要数据服务需要增加安全监控报警,一旦有问题就报警给相关管理人员和开发人员立即处理。

等等。

    这里是我参考网上资料解决ElasticSearch的安全问题,希望对你有用:

    1、elasticsearch安装与使用(5)-- search guard安装与配置    http://www.cnblogs.com/shifu204/p/6376683.html

    2、Elasticsearch 数据安全(上)    http://rickywag.com/archives/377

    以上若有误,请指出校正,谢谢。

                                            长按二维码识别,一键关注干货

相关文章

网友评论

      本文标题:ElasticSearch博客搜索,被黑客勒索0.1个比特币

      本文链接:https://www.haomeiwen.com/subject/tmpknftx.html