主頁 > 區塊鏈 > 區塊鏈數字貨幣——以太坊黑色情人節事件

區塊鏈數字貨幣——以太坊黑色情人節事件

2021-06-16 08:24:22 區塊鏈

(此篇文章主要用于哈爾濱工程大學計算機學院2021年區塊鏈技術課程的選做部分,作者:孫潤澤,劉子健)

經過這學期區塊鏈的學習,很榮幸在這里跟大家做分享作業,今天帶來的是區塊鏈的安全分析與介紹,我將用簡單易懂的方式讓大家了解它,區塊鏈慢慢進入我們的視野,越來越多人參與區塊鏈研究當中,但很多人沒有安全知識,安全意識薄弱,很容易讓攻擊者有空可鉆,今天我就帶大家看看以太坊情人節事件,

以太坊

在這里插入圖片描述

以太坊(英語:Ethereum)是一個開源的有智能合約功能的公共區塊鏈平臺,通過其專用加密貨幣以太幣(Ether,又稱“以太幣”)提供去中心化的虛擬機(稱“以太虛擬機”Ethereum Virtual Machine)來處理點對點合約,

以太坊的概念首次在2013至2014年間由程式員Vitalik Buterin,受位元幣啟發后提出,大意為“下一代加密貨幣與去中心化應用平臺”,與買賣股票的證券交易所類似,

以太坊數字貨幣平臺主要遵守以下兩個原則,

1、簡介原則

以太坊協議將盡可能簡單,即便以某些資料存盤和時間上的低效為代價,

2、通用原則

沒有“特性”是以太坊設計哲學中的一個根本性部分,取而代之的是,以太坊提供了一個內部的圖靈完備的腳本語言以供用戶來構建任何可以精確定義的智能合約或交易型別,

具體事件

這是一起自動化盜幣的攻擊行為,攻擊者利用以太坊節點 Geth/Parity RPC API 鑒權缺陷(RPC:一種計算機協議,以太坊RPC結點是以太坊與其他系統互動的視窗),惡意呼叫 eth_sendTransaction 盜取代幣,單被盜的且還未轉出的以太幣價值就高達現價 2 千萬美金,還有代幣種類 164 種,總價值難以估計(很多代幣還未上交易所正式發行),
在這里插入圖片描述

攻擊程序

綜合受害者情報、Reddit 資訊及蜜罐日志分析,回溯攻擊行為可能為:

動作概率
全球掃描 8545 埠(HTTP JSON RPC API)、8546 埠(WebSocket JSON RPC API)等開放的以太坊節點,發送 eth_getBlockByNumber、eth_accounts、eth_getBalance 遍歷區塊高度、錢包地址及余額24%
不斷重復呼叫 eth_sendTransaction 嘗試將余額轉賬到攻擊者的錢包32%
當正好碰上節點用戶對自己的錢包執行 unlockAccount 時,在 duration 期間內無需再次輸入密碼為交易簽名,此時攻擊者的 eth_sendTransaction 呼叫將被正確執行,余額就進入攻擊者的錢包里了42%

簡單的說,以太網在高頻交易中可以設定一段時間無需輸入密碼,時間長短由用戶自己制定,如果黑客正好在這個時間發出余額轉移指令,以太網賬戶就自動執行該操作,從而實作錢包轉移,

攻擊時間線

國內頂尖的區塊鏈安全團隊慢霧安全團隊在對攻擊者錢包地址進行細致的分析,得到如下主要攻擊時間線:

時間具體動作
2016/02/14 03:59:14 PM第一次 IN(進賬),這天是情人節
2016/02/16 06:33:30 PM第二次 IN,時隔 2 天,猜測自動化攻擊程式首次上線
2016/05/19 07:46:33 PM第一次 OUT(出賬),此時共 IN 51 筆
2016/07/20 06:35:57 PM第二次 OUT,此時共 IN 57筆
2017/05/11 06:34:35 PMPM Shapeshift(知名交易所) IN 7 筆,跨度 71 天
2017/06/10 02:39:53 AMOUT 最后一筆,此時共 IN 約 207 筆
2017/06/21 07:46:49 AMf2pool(知名礦池) IN 36 筆,跨度 4 小時

這種時間線的跟蹤可以側面輔助分析攻擊者的行為痕跡,

我們從上面提到過的攻擊時間線來看,攻擊者其實很不一般,這種潛伏的攻擊發生在以太坊歷史上第一個知名黑客事件之前,其實當時是以太坊沒被市場正式認可的時期便可以看出攻擊者是非常早期的以太坊研究者,也很懂黑客技術,攻擊者在實戰程序中也在不斷優化這套工程 ,

防御措施

距這次盜幣事件被發現至今已有兩年之久,但攻擊者的腳步似乎并沒有停下來的意思,2018 年 3 月 盜幣事件被披露,截止到2018年7 月 1 日,攻擊者行動并未停止,累計盜取了 47865 枚 ETH,價值高達現價 2 千多萬美金,還有總量過百億的各類 Token
我們該如何防御這種攻擊呢?
1、更改默認的 RPC API
2、更改 RPC API 監聽地址為內網
3、配置 iptables 限制對 RPC API 埠的訪問
4、賬戶資訊(keystore)不要存放在節點上 (因為賬戶不在節點上,所以就不會用到 unlockAccount 了)
5、私鑰物理隔離(如冷錢包、手工抄寫)或者高強度加密存盤并保障密鑰的安全

后續

這起利用以太坊 RPC 鑒權缺陷實施的自動化盜幣攻擊,已經在全球范圍內對使用者造成了非常嚴重的經濟損失,
你以為這就結束了么?
該事件還有新的隱藏攻擊方式!
在這里插入圖片描述

新的攻擊方式

以太坊節點的 RPC 介面開放,但是賬戶沒有 ETH (此時黑客已經通過掃描發現目標);

黑客立即構造交易并簽名(簽名設定的金額為 X,nonce 設定為當前的 N+1,N+2,…,N+N),可以構造多個;

以太坊節點發現自己的問題,關閉 RPC 埠;

以太坊節點認為自己已經安全,開始往賬戶轉入 ETH;

其實此時攻擊者通程序式自動化實時監控發現你的轉入,立即開始廣播之前 RPC 開放的時候簽名好的資訊;

此時攻擊完成,
在這里插入圖片描述
這種攻擊手法非常隱蔽且真實存在,我們只能見招拆招,

對此提醒大家:請勿將私鑰匯入節點,如不得不匯入,請先將 RPC 改成監聽內網或使用 iptables,
屏蔽外部訪問:針對已匯入私鑰的節點,安全起見建議暫停使用,把相關資產安全轉移后廢除這個私鑰檔案,并在其他隔離機器里重新生成新的私鑰,未來采用私鑰簽名交易+節點廣播交易的方式來進行轉賬操作,

進一步分析

RPC API 相關模塊功能進行進一步分析,還會發現一些潛在的安全風險,也是需要注意的
比如:如果 RPC API 啟用了 personal 模塊,就可以通過 personal_unlockAccount 方法爆破賬戶密碼,假如爆破成功,就可以一次性實作解鎖 + 轉賬,如果 RPC API 啟用了 miner 模塊,就可以通過 miner_setEtherbase 方法修改挖礦的錢包地址,

從防御分析角度,我們還發現,Geth 等的日志機制不完善,無法記錄 RPC API 請求的來源 IP(配置 --debug、–verbosity 5 均無效),導致直接在被攻擊的以太坊節點上取證溯源攻擊者 IP 是一件很麻煩的事,

層出不窮的攻擊方式

在這里插入圖片描述
雖然以太坊本身的健壯性已經經受住考驗,但是安全是一個整體,通過這個事件我們可以看出以太坊生態的一些安全缺陷,有的安全缺陷可能會被認為這是一種機制,需要使用者注意,但這個對使用者來說做安全的門檻太高,高門檻的安全一定是會更容易滋生大攻擊事件,

安全性思考

通過這個事件的追蹤調查及攻擊手法的完整思考,我們越發意識到網路空間遵循黑暗森林法則,我們仔細思考一下這起持續時間之久且現在還在活躍的攻擊的所有細節,如果我們是攻擊者,我們一個腳本工程就可以輕松拿下全球數以萬計,甚至百萬千萬的數字資產,

下面我說一下自己的感受吧 我分享區塊鏈安全性問題的原因是在區塊鏈中安全的重要性永遠是第一位的 ,因為幾千億美金的代幣都在區塊鏈上,絕大部磁區塊鏈是開源的,誰都可以研究開源代碼,稍有不慎無數的代幣可能會沒了,
著名的交易所都發生過被攻擊的事件,并且每次的安全事故都很嚴重,很多人賬戶可能一夜之間歸零,區塊鏈的未來十年的安全運行毫無疑問是這個行業的定海神針,是如同神一般的存在,btc這么多年還在運行,大家有沒有感到奇怪,為什么最早的還在運行,新的專案都是升級改版過的反而問題很多,因為任何行業都在提升,出問題是很正常的,不出問題才是例外,其實由于區塊鏈的特性,對安全的要求極高,如何滿足更高級別的安全,其實才是區塊鏈開發應用前提 ,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/287671.html

標籤:區塊鏈

上一篇:Vue環境搭建及部分檔案功能解釋

下一篇:區塊鏈BaaS云服務(16)天德鏈TDBC“泰山沙盒系統”

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more