作者: 知道創宇404區塊鏈安全研究團隊
發布時間: 2018/08/01
更新於 2018/08/20 : 修正了原文中的一處錯誤,感謝 @None在評論區的指正。
0x00 前言
2010年,Laszlo
使用 10000
個比特幣購買了兩張價值25美元的披薩被認為是比特幣在現實世界中的第一筆交易。
2017年,區塊鏈技術隨着數字貨幣的價格暴漲而站在風口之上。誰也不會想到,2010年的那兩塊披薩,能夠在2017年末價值 1.9億美元
。
以太坊,作為區塊鏈2.0時代的代表,通過智能合約平台,解決比特幣拓展性不足的問題,在金融行業有了巨大的應用。
通過智能合約進行交易,不用管交易時間,不用管交易是否合法,只要能夠符合智能合約的規則,就可以進行無限制的交易。
在巨大的經濟利益下,總會有人走上另一條道路。
古人的盜亦有道,在虛擬貨幣領域也有着它獨特的定義。只有對區塊鏈技術足夠了解,才能在這場盛宴中 偷
到足夠多的金錢。他們似那黑暗中獨行的狼,無論是否得手都會在被發現前抽身而去。
2018/03/20
,在 《以太坊生態缺陷導致的一起億級代幣盜竊大案》[19] 和 《揭秘以太坊中潛伏多年的“偷渡”漏洞,全球黑客正在瘋狂偷幣》[20] 兩文揭秘 以太坊偷渡漏洞(又稱為以太坊黑色情人節事件)
相關攻擊細節后,知道創宇404團隊根據已有信息進一步完善了相關蜜罐。
2018/05/16
,知道創宇404區塊鏈安全研究團隊對 偷渡漏洞
事件進行預警並指出該端口已存在密集的掃描行為。
2018/06/29
, 慢霧社區
里預警了 以太坊黑色情人節事件(即偷渡漏洞)
新型攻擊手法,該攻擊手法在本文中亦稱之為:離線攻擊
。在結合蜜罐數據復現該攻擊手法的過程中,知道創宇404區塊鏈安全研究團隊發現:在真實場景中,還存在 另外兩種
新型的攻擊方式: 重放攻擊
和 爆破攻擊
,由於此類攻擊方式出現在 偷渡漏洞
曝光后,我們將這些攻擊手法統一稱為 后偷渡時代的盜幣方式
。
本文將會在介紹相關知識點后,針對 偷渡漏洞
及 后偷渡時代的盜幣方式
,模擬復現盜幣的實際流程,對攻擊成功的關鍵點進行分析。
0x01 關鍵知識點
所謂磨刀不誤砍柴功,只有清楚地掌握了關鍵知識點,才能在理解漏洞原理時遊刃有餘。在本節,筆者將會介紹以太坊發起一筆交易的簽名流程及相關知識點。
1.1 RLP 編碼
RLP (遞歸長度前綴)提供了一種適用於任意二進制數據數組的編碼,RLP已經成為以太坊中對對象進行序列化的主要編碼方式。
RLP
編碼會對字符串和列表進行序列化操作,具體的編碼流程如下圖: