2017 年 5 月 12 日,一款名叫 WannaCry(永恒之蓝)的勒索病毒让全球无数 IT 运维人员为之放弃周末,紧急响应,比特币一夜之间身价倍增,重回大众视线。一时之间各种虚拟货币层出不穷,挖矿技术更新迭代,为了压缩成本,挖矿木马大量涌现,对此毫无戒心的云上用户和企业成了众矢之的,非法挖矿成为了最有利可图的攻击手段。
识别:不仅仅是 CPU 很高
在 2018 年 RSA 大会《The Five Most Dangerous New Attack Techniques, and What’s Coming Next》研讨中,Johannes Ullrich 提出可通过高 CPU 负载、网络流量和主机高温度特征来判断是否存在挖矿,从而采取行动。
事实上,CPU 占用率确实是判断是否存在挖矿的第一步,但却不能够判断一定是在挖矿,比如:网页挖矿很多时候都会控制 CPU 占用率以确其保隐秘性。所以这里提供了另外一种思路,即通过网络流量特征来判断是否在挖矿,无论是挖矿木马还是网页挖矿,最终在流量上都是有所体现的。
通过命令或软件抓包,检查数据包中 tcp 连接的传递载荷,如果存在连续几个数据包中都符合 stratum 协议的 json 载荷特征,那么主机就存在挖矿。
json 中主要特征字段有:id、method、mining.subscribe、params、result、login、job、mining.authorize、mining.submit、jsonrpc、submit、mining.notify、blob、status、keepalive、 mining.set_difficulty,内容主要涉及登陆、订阅、通知、提交等。
(图 1 tcp 连接的传递载荷举例)
快速处置:无矿可挖
既然已经知道主机存在挖矿,接下来就是解决挖矿,快速恢复系统可用性。通过上述的挖矿数据包可知矿池的 IP 地址,首先就是将主机与矿池之间的网络连接阻断。假如矿池 IP 是 1.1.1.1,Linux 使用 iptables 命令:iptables -I INPUT -s 1.1.1.1 -j DROP 就可以完成阻断;Windows 使用 windows 防火墙就可以配置阻断。
如果使用的是华为云主机,那么有两个方式可以做到通信阻断:
安全组,安全组为白名单机制,默认华为云安全组入方向仅开通 any 可访问的 22、3389 端口,主机在挖矿意味着安全组开放比较大,仅保留按需,将 any 策略去除,也就使挖矿无法进行;
网络 ACL,ACL 可配置黑名单,将所有主机风险阻隔。默认情况下,网络 ACL 并没有开启,需要创建 ACL 并绑定至挖矿主机对应网段。网络 ACL 默认入方向和出方向均为拒绝所有连接,且该规则不可修改,为避免云主机应用不可用,可以在入方向和出方向都新增全局放开策略,然后入方向新增黑 IP 不允许通过。这里需要注意的是,ACL 是顺序匹配原则,当命中一条之后则不会继续往下执行,所以黑名单一定要放在最上面,下面是个例子。
(图 2 网络阻断配置举例)
将主机与矿池之间的网络连接断开之后,就能够很明显的看到 CPU 占有率的下降。
彻底根治:查杀清理
对于网页挖矿脚本,需要注意浏览网页时 CPU 使用率,计算机 CPU 使用率飙升且大部分 CPU 使用来自于浏览器,那么网页中可能被植入了挖矿脚本,只需要关闭网页就可以解决。一些浏览器具备免费扩展,可以阻止网站利用浏览器进行挖矿,比如 Chrome 中的 MinerBlock。安装后直接使用,无设置界面,当查看的网站有挖矿行为,扩展会提示和阻止。
(图 3 扩展提示挖矿举例)
对于挖矿软件,最简单的办法就是安装杀毒软件来解决,否则只能通过手工删除的方式来根治。手工删除需要先找到挖矿进程,然后删除对应软件、服务、自启动项、可疑账号等,操作比较复杂,需要专业的安全人员协助。
如何防范:论安全意识的重要性
挖矿木马主要通过撞库、爆破、漏洞等攻击方式入侵主机,当主机管理员有足够安全意识,对主机执行基本的安全加固,被利用挖矿的可能性会大大降低。因此建议:
避免使用弱口令,建议口令 12 位以上(大小写混排);
不使用 EOS 系统或版本过低应用,系统和应用补丁及时更新;
定期维护服务器,从 CPU 使用率、进程、服务、账号可疑项等方面检查是否存在持续驻留的挖矿木马;
主机按需配置安全组,尽量避免管理端口对 Any IP 开放。
本文转载自 华为云产品与解决方案 公众号。
原文链接:https://mp.weixin.qq.com/s/p7m-mM-j__bpZdfMsvgRAw
评论