漏洞预警 | RVN币被盗走价值约4000w的数字货币;Kubernetes 本地主机边界绕过漏洞(CVE-2020-8558)

来源:上海控安
2020-07-31
2088
、、、


漏洞预警





RVN币被盗走价值约4000w的数字货币


漏洞信息

Ravencoin中文名渡鸦币,渡鸦币是一种基于X16R算法的POW数字货币,代币简称RVN。近期,Ravencoin团队公布了自身RVN币被黑客超发后盗取的事件。经过确认,黑客约在2个多月间卖出了约3亿枚RVN币,价值约四千万人民币。

漏洞分析

该漏洞的产生有些不同寻常,可以说是黑客自行写出了一个可任意发行RVN币的逻辑漏洞,成功将其合并进RVN币的主代码分支,在这段代码生效后,攻击者从5月开始持续通过此漏洞不断的增发RVN,后换取其他数字货币,直至6月末,另一位程序员发现了这个问题后停止。

对产生此漏洞的commit记录进行分析:

(https://github.com/RavenProject/Ravencoin/commit/d23f862a6afc17092ae31b67d96bc2738fe917d2)

这次提交表面上看是完善报错信息,将原来简单的isAsset && txout.nValue != 0细化成:

isAsset && nType == TX_TRANSFER_ASSET && txout.nValue != 0

isAsset && nType == TX_NEW_ASSET && txout.nValue != 0

将之前的对于asset相关的交易,只要交易的RVN output value不为 0,都会返回 “bad-txns-asset-tx-amount-isn't-zero” 报错信息。细分为对于nType为TX_TRANSFER_ASSET或 TX_NEW_ASSET的两种情况。然而实际上nType的取值可能有12种,这就导致了在其他10种情况是绕过资产的余额为0的可能。

实际上在nType 为TX_REISSUE_ASSET的情况下,出现了漏洞,当assert为此种类型时,持有此资产的用户可以再次发行货币,但此时由于黑客修改了判断逻辑,在完成reissue后,跳过了txout.nValue != 0的判断,使其变成了一次合法交易。于是黑客可以无限的增发RVT币并卖出套现。

在溯源过程中,发现了于5月9日产生的第一笔恶意增发交易:

黑客似乎使用自动的程序进行增发操作,大约每2小时注入500k RVN。

最终RVN官方修复了此漏洞,但是RVN的持有者仍然将为这4000万人民币买单。




Kubernetes 本地主机边界绕过漏洞(CVE-2020-8558)


漏洞信息

近期,Kubernetes发布了一个安全公告,用以解决一个编号为CVE-2020-6287的严重漏洞。在Kubernetes节点上运行的网络组件kube-proxy中暴露了Kubernetes节点的内部服务,这些服务通常未经身份验证即可任意操纵。在某些不当的Kubernetes部署中,这可能已经暴露了api服务器,从而允许未经身份验证的攻击者获得对群集的完全控制。具有这种访问权限的攻击者可能会窃取信息,部署恶意的数字货币挖矿服务甚至完全删除现有服务。

影响版本

kubelet / kube-proxy v1.18.0-1.18.3

kubelet / kube-proxy v1.17.0-1.17.6

kubelet / kube-proxy <= 1.16.10


漏洞分析

kube-proxy是在Kubernetes集群中每个节点上运行的网络代理。它的工作是管理Pod和服务之间的连接。Kubernetes服务公开了一个clusterIP,但可能由多个支持Pod组成,以实现负载平衡。一个服务可能包含三个Pod(但每个Pod都有自己的IP地址),但是只能公开一个clusterIP,例如10.0.0.1。访问该服务的Pod会将数据包发送到其clusterIP 10.0.0.1,但必须以某种方式重定向到服务抽象背后的Pod之一。

这就是kube-proxy的用处。它在每个节点上设置路由表,以便将针对服务的请求正确地路由到支持该服务的pod之一。通常将其部署为静态pod或DaemonSet的一部分。由于使用了kube-proxy,群集中的每个节点都启用了route_localnet。结果,节点本地网络上的每个主机都可以访问该节点的内部服务。如果您的节点在未经身份验证的情况下运行内部服务,则将受到影响。

所以,尝试访问受害者内部服务的攻击者将需要构造一个恶意数据包,其中目标IP地址设置为127.0.0.1,目标MAC地址设置为受害者的MAC地址。如果没有有意义的目标IP,攻击者的数据包仅依靠第2层(基于MAC)的路由才能到达受害者,因此仅限于本地网络。





本周安全态势分析



本周发生的事件有RVN币被盗走价值约4000w的数字货币和Kubernetes 本地主机边界绕过漏洞。

1

数字货币得益于区块链技术的迅猛发展,逐渐被大多数人所接受。但由于其匿名性强、价值高的特点也同样被黑客所青睐,但是数字货币的安全性问题也不能忽视,由于所有的数字货币代码都是开源的,这就导致了攻击者可以审计数字货币源代码来发现漏洞。本此数字货币被盗走的事件与代码开源不无关系,但开发者的过错是主要原因,开发者错误的通过了攻击者提交的有代码的漏洞导致了黑客恶意卷走了4000万人民币。

2

Kubernetes 是中国人开发的docker管理框架,伴随着docker的流行,越来越多的大型企业都使用k8s作为管理大量docker的主要工具,此次爆出的漏洞是由设计缺陷导致。导致攻击者可以接管整个k8s的资源池。目前已有服务器被攻击的记录,建议尽快修复。



收藏
点赞
2000