概述:
綜述一些geth上的RPC接口存在的可被利用的漏洞
列舉的相關(guān)工作
- 智能合約DAO遞歸調(diào)用攻擊。以太坊:The DAO漏洞攻擊分析
- state-bloat攻擊屎蜓。(以太坊ddos,"Ethereum Continues to Suffer From DDoS Attacks")
- 日蝕攻擊(Eclipse Attack)农猬。比特幣點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中的日蝕攻擊
設(shè)計(jì)缺陷分析
- 本地錢包管理的角度
geth本地錢包后解鎖默認(rèn)可用300秒抄腔,這300秒內(nèi),對(duì)外暴露的RPC接口伟众,存在被攻擊者直接調(diào)用已解鎖的密鑰進(jìn)行簽名操作的風(fēng)險(xiǎn)析藕。 - http和ws接口的明文風(fēng)險(xiǎn)
geth開放的RPC接口和ws接口,通信的時(shí)候都用的明文傳輸凳厢,存在中間人攻擊的劫持風(fēng)險(xiǎn)账胧。 - geth模塊和api沒(méi)有合理的鑒權(quán)模塊
基本模塊包括:admin, eth, personal, miner, txpool竞慢。這些接口都是可直接調(diào)用密鑰簽名的高危接口,且沒(méi)有嚴(yán)格的鑒權(quán)中間件治泥,存在被滲透的風(fēng)險(xiǎn)筹煮。
攻擊demo
首先,所有攻擊的目的都是牟利居夹。根據(jù)這個(gè)目的败潦,作者找到這些攻擊方式
測(cè)試環(huán)境:
image.png
- 模塊啟動(dòng)攻擊
geth有個(gè)admin模塊,這個(gè)模塊可以在rpc接口中調(diào)用(前提是rpc接口開放這個(gè)模塊的權(quán)限)准脂。而admin模塊有個(gè)特別的功能变屁,就是能啟動(dòng)其他模塊,例如personal模塊意狠。意味著粟关,如果geth節(jié)點(diǎn)開放了admin模塊,那么攻擊者就能利用這個(gè)模塊的接口环戈,啟動(dòng)別的模塊的使用權(quán)限闷板,geth節(jié)點(diǎn)的所有模塊相當(dāng)于完全暴露出來(lái)了。 - 本地錢包攻擊
以太坊錢包的密鑰院塞,按照geth的設(shè)計(jì)遮晚,都是存在geth的本地錢包管理工具里面。通過(guò)rpc接口進(jìn)行包嗅探或者暴力破解方法拦止,滲透本地錢包以獲取密鑰县遣,進(jìn)行攻擊。 - DOS攻擊
解鎖錢包需要浪費(fèi)大量的內(nèi)存汹族,以為這能不斷地調(diào)用geth節(jié)點(diǎn)的personal_unlocalAccount接口萧求,讓節(jié)點(diǎn)內(nèi)存耗光,實(shí)現(xiàn)DOS顶瞒。 - 劫持攻擊
RPC接口都是明文的夸政,以為這可以中間人劫持?jǐn)?shù)據(jù)包進(jìn)行攻擊 - 日蝕攻擊
也是通過(guò)調(diào)用admin模塊,利用admin.removePeer和admin.addPeer接口榴徐,來(lái)把惡意節(jié)點(diǎn)加進(jìn)來(lái)守问,把正常節(jié)點(diǎn)移除掉,實(shí)現(xiàn)對(duì)整個(gè)geth節(jié)點(diǎn)的日蝕攻擊坑资。 - 盜礦攻擊
利用miner模塊接口耗帕,調(diào)用miner.setEtherbase來(lái)修改礦工收益的錢包,實(shí)現(xiàn)在geth節(jié)點(diǎn)上盜取挖礦果實(shí)袱贮。這種攻擊針對(duì)礦池節(jié)點(diǎn)比較有效仿便。
防御措施
- 權(quán)限控制角度
對(duì)rpc接口和模塊api添加權(quán)限控制中間件。 - 密鑰不要放在Geth節(jié)點(diǎn)上
這個(gè)沒(méi)什么好說(shuō),理所當(dāng)然不要把密鑰放在對(duì)外開放的geth節(jié)點(diǎn)的本地錢包上探越。公網(wǎng)geth節(jié)點(diǎn)一般只用來(lái)挖礦或者廣播已簽名的交易包狡赐。 - 重新配置端口
不要用默認(rèn)的配置
不要用默認(rèn)的配置
不要用默認(rèn)的配置 - 限制RPC模塊
rpc模塊,用什么就開什么钦幔。其中枕屉,admin personal miner非常高危,要用也不要開鲤氢。 - 錢包賬戶簽名后要馬上上鎖
unlockAccount后搀擂,要記得,操作完馬上上鎖卷玉,不然會(huì)被干哨颂。 - 多重加密
總之密鑰要好好保護(hù),保護(hù)好密鑰和保護(hù)好密鑰的使用權(quán)限相种,比什么都重要 - 傳統(tǒng)防御
安全老司機(jī)們的一套傳統(tǒng)防御威恼,防火墻、訪問(wèn)控制寝并、容災(zāi)等等箫措。