隨著越來越的人參與到區塊鏈這個行業中來,為行業注入新活力的同時也由于相關知識的薄弱以及安全意識的匱乏,給了攻擊者更多的可乘之機。
面對頻頻爆發的安全事件,慢霧特推出區塊鏈安全入門筆記系列,向大家介紹區塊鏈安全相關名詞,讓新手們更快適應區塊鏈危機四伏的安全攻防世界!
短地址攻擊?ShortAddressAttack
短地址攻擊(ShortAddressAttack)是針對以太坊上ERC20智能合約的一種攻擊形式,利用的是EVM中的對于輸入字節碼的自動補全機制進行攻擊。
一般而言,針對ERC20合約中的transfer函數的調用,輸入的字節碼位數都是136字節的。當調用ERC20中的transfer函數進行ERC20Token轉賬時,如果攻擊者提供的地址后有一個或多個0,那么攻擊者就可以把地址后的零省去,提供一個缺位的地址。
A股開盤:深證區塊鏈50指數開跌0.26%:A股開盤,上證指數報2798.43點(-0.45%),深證成指報10361.77點(-0.53%),深證區塊鏈50指數報3190.94點(-0.26%)。[2020/4/16]
當對這個地址轉賬的時候,比方說轉賬100的AToken,然后輸入的地址是攻擊者提供的缺位地址,這時候,經過編碼輸入的數據是134字節,比正常的數據少了2字節,在這種情況下,EVM就會對缺失的字節位在編碼數據的末尾進行補0湊成136字節,這樣本來地址段缺失的0被數據段的0補齊了,而由于給地址段補0,數據段會少0,而數據段缺失的0由EVM自動補齊,這就像數據段向地址段移動補齊地址段缺失字節位,然后數據段缺失的字節位由EVM用0補齊。
這種情況下,轉賬金額就會由100變成100*16的n次方,n是地址缺失的0的個數。通過這種方式,攻擊者就能對交易所或錢包進行攻擊,盜竊交易所和錢包的資產。
聲音 | 東港股份:公司區塊鏈項目還在發展初期:東港股份(SZ002117)在互動平臺表示,公司區塊鏈項目目前還在發展初期,因此尚未單獨核算區塊鏈業務的盈利水平。我公司重視區塊鏈業務未來的發展前景,并愿意根據市場需要做好相關業務。[2019/12/13]
慢霧安全團隊建議交易所和錢包在處理轉賬的時候,要對轉賬地址進行嚴格的校驗,防止短地址攻擊的發生。詳情可參考:遺忘的亞特蘭蒂斯:以太坊短地址攻擊詳解
假幣攻擊?Fake?Token?Attack
假幣攻擊(FakeTokenAttack),是針對那些在創建官方?Token?時采用通用創建模版創建出來的代幣,每個?Token的識別僅根據特定的標記進行識別,如EOS官方?Token的識別標記是"eosio.token"合約,波場的TRC10的識別標記是tokenid,以太坊的ERC20是用合約地址作為識別標記。
聲音 | 高德納:區塊鏈將在5到10年內對各行業的企業運營產生變革性影響:根據知名信息技術研究和分析公司高德納(Gartner)本周發布的2019年炒作周期報告,預計區塊鏈技術將在5至10年內改變大多數行業的企業運營方式。Gartner在4月至6月期間對來自89個國家和主要行業的3102名CIO進行了年度調查。調查顯示,60%的CIO表示他們預計未來三年會在一定程度上采用區塊鏈技術。Gartner杰出研究副總裁David Furlonger在一份聲明中表示,然而這些組織現有的數字基礎設施以及缺乏明確的區塊鏈治理使CIO無法通過區塊鏈獲得全部價值。(computerworld)[2019/9/14]
那么這樣就會出現一個問題,如果收款方在對這些Token進行收款的時候沒有嚴格校驗這些Token特有的標記,攻擊就會發生,以EOS為例子,由于EOS官方Token采用的是合約來發行一個名為EOS的Token,標記EOS本身的標識是"eosio.token"這個發行帳號,如果在接受轉賬的時候沒有校驗這個標識,攻擊者就能用其他的帳號同樣發行一個名為EOS的Token,對交易所或錢包進行假幣充值,換取真的代幣。
IBM將聯合Global Citizen贊助區塊鏈慈善平臺競賽:據Cointelegraph消息,美國科技巨頭IBM已與致力于減輕貧困的非政府組織Global Citizen聯合宣布,將贊助區塊鏈慈善捐贈平臺開發的相關競賽。這項競賽旨在為創建區塊鏈平臺創造動力,區塊鏈技術可用于跟蹤從收到付款到最終利用的慈善承諾。[2018/5/14]
2019年4月11日,波場DappTronBank1小時內被盜走約1.7億枚BTT。監測顯示,黑客創建了名為BTTx的假幣向合約發起“invest”函數,而合約并沒有判定發送者的代幣id是否與BTT真幣的id1002000一致。因此黑客拿到真幣BTT的投資回報和推薦獎勵,以此方式迅速掏空資金池。
對此,交易所和錢包在處理轉賬的時候,切記要嚴格檢驗各種代幣各種標識,防止假幣攻擊。
華為云宣布打造區塊鏈開放平臺 發布區塊鏈互助社群——阿保互助:2018年3月22日,華為2018中國生態合作伙伴大會在青島國際會展中心舉辦。華為云在大會上宣布進軍區塊鏈,打造區塊鏈開放平臺,首選進入互助社群領域,發布基于區塊鏈技術應用的互助社群-阿保互助。根據多方參與原則,阿保互助邀請包括“業務平臺、公估機構、資金托管、第三方支付平臺、監管機構”等多方共同組建阿保互助聯盟,每個聯盟成員都是華為云獨立的租戶,擁有獨立的空間,通過華為云服務租戶邀請機制鏈接起來形成互助社群聯盟區塊鏈。[2018/3/22]
整型溢出攻擊?IntegerOverflowAttack
數據的存儲是區塊鏈上重要的一環。但是每個數據類型本身是存在邊界的,例如以太坊中uint8類型的變量就只能存儲0~255大小的數據,超過了就存不下了。
那么如果要放一個超過數據類型大小的數字會怎樣呢?例如把256存進uint8的數據類型中,數據顯示出來會變成1,而不是其他數值,也不會報錯,因為uint8本身能存一個8位二進制數字,最大值為11111111,如果這個時候加1,這個二進制數就變成了100000001,而因為數據邊界的關系,只能拿到后8位,也就是00000001,那么數字的大小就變成1了,這種情況我們稱為上溢。
有上就有下,下溢的意思就是一個值為0的uint8數據,如果這個時候對它進行減1操作,結果會變成該數據類型所能存儲的最大值加1減去被減數,在這個例子中是255,也就是該數據類型所能存儲的最大值。
那么如果上述兩種情況發生在智能合約當中的話,惡意用戶通過下溢的操作,操縱自己的帳號向其他帳號發送超過自己余額數量的代幣,如果合約內沒有對余額進行檢查,惡意用戶的余額就會下溢出變成一個超大的值,這個時候攻擊者如果大量拋售這些代幣,就能瞬間破壞整個代幣的價值系統。
慢霧安全團隊建議所有的智能合約開發者在智能合約中對數據進行操作的時候,要嚴格校驗數據邊界,防止整形溢出攻擊的發生。詳情可參考:BEC智能合約無限轉幣漏洞分析及預警。
條件競爭攻擊?RaceCondition
條件競爭(RaceCondition)攻擊的方式很多樣,但是核心的本質無非是對某個條件的狀態修改的競爭,如上期介紹的重入漏洞,也是條件競爭的一種,針對的是用戶余額這個條件進行競爭,只要用戶的余額沒有歸零,用戶就能一直提走智能合約的錢。這次介紹的條件競爭的例子是最近發生的著名的Edgeware鎖倉合約的拒絕服務漏洞,詳情可參考:
關于Edgeware鎖倉合約的拒絕服務漏洞。
這個漏洞問題的本質在于對新建的鎖倉合約的余額的這個條件進行競爭。攻擊者可以監控所有鏈上的鎖倉請求,提前計算出鎖倉合約的地址,然后向合約地址轉賬,造成鎖倉失敗。
在官方沒有修復之前,要防止這種攻擊,只能使用比攻擊者更高的手續費讓自己的鎖倉交易先行打包,從而與攻擊者形成競爭避免攻擊。最后,官方修復方案為不對鎖倉合約的余額進行強制性的相等檢查,而是采用大于等于的形式,避免了攻擊的發生。
慢霧安全團隊建議智能合約的開發者在智能合約中對某些狀態進行修改的時候,要根據實際情況充分考慮條件競爭的風險,防止遭受條件競爭攻擊。
系列回顧:
區塊鏈安全入門筆記(三)|慢霧科普
區塊鏈安全入門筆記(四)|慢霧科普
區塊鏈安全入門筆記(五)|慢霧科普
區塊鏈安全入門筆記(六)|慢霧科普
區塊鏈安全入門筆記(七)|慢霧科普
Tags:區塊鏈TOKEKENTOK到底什么是區塊鏈BNS Token[OLD]DAIN TokenFirst Sport Shoes Token Union
致力于研究和以消費者為中心的問題的Comparitech公司對Reddit上48,000多篇文章的數據進行了分析,這些文章都是從加密貨幣的訂閱板塊中挑選出來的.
1900/1/1 0:00:00在國際貿易局勢趨緊以及全球央行陸續降息之際,傳統避險資產與比特幣市場已經站滿了避險人群。特別是比特幣,漲幅自5月以來在20類資產中脫穎而出,累計回報率104.8%.
1900/1/1 0:00:00摘要 國會數字貨幣聽證會在Libra發布后再度密集召開。7月30日,美國立法機構國會召開“審查數字貨幣和區塊鏈的監管框架”聽證會。這是半月內國會召開的第三場數字貨幣專場聽證會.
1900/1/1 0:00:00就在投資者開始質疑比特幣在全球金融市場動蕩中充當避風港的邏輯之際,技術分析師緊隨其后的一項指標顯示,比特幣未來可能還會有更多收益.
1900/1/1 0:00:00說來奇怪,與王淵命的第一次見面,竟然是在衛生間。王淵命,知名技術博主,曾任新浪微博架構師、微米技術總監、QingCloud容器平臺負責人,2014年作為聯合創始人創立團隊協作IM服務Grouk,
1900/1/1 0:00:00作者:互鏈脈搏·金走車 8月13日,據浦東網警微信公眾號消息,自稱采用區塊鏈技術的虛擬寵物"比特豬"平臺已被立案調查;8月12日,據四川省青神縣局公眾號信息.
1900/1/1 0:00:00