隨著越來越的人參與到區塊鏈這個行業中來,為行業注入新活力的同時也由于相關知識的薄弱以及安全意識的匱乏,給了攻擊者更多的可乘之機。
面對頻頻爆發的安全事件,慢霧特推出區塊鏈安全入門筆記系列,向大家介紹區塊鏈安全相關名詞,讓新手們更快適應區塊鏈危機四伏的安全攻防世界!
短地址攻擊?ShortAddressAttack
短地址攻擊(ShortAddressAttack)是針對以太坊上ERC20智能合約的一種攻擊形式,利用的是EVM中的對于輸入字節碼的自動補全機制進行攻擊。
一般而言,針對ERC20合約中的transfer函數的調用,輸入的字節碼位數都是136字節的。當調用ERC20中的transfer函數進行ERC20Token轉賬時,如果攻擊者提供的地址后有一個或多個0,那么攻擊者就可以把地址后的零省去,提供一個缺位的地址。
成都成華區成立以區塊鏈算力為特色的區塊鏈產業園:金色財經現場報道,8月22日,在成都舉辦的“全球區塊鏈算力大會暨新基建礦業峰會”上,成都成華區成立以區塊鏈算力為特色的區塊鏈產業園,成都將通過整合算力、芯片、區塊鏈應用等企業資源,在成都打造中國西南地區區塊鏈應用示范基地。成華區區塊鏈產業園將持續引進芯片設計、芯片制造、分布式存儲技術研發、云算力等衍生產品、區塊鏈錢包、物聯網設備、超算中心等區塊鏈算力產業上下游企業,助力成都成為全球各大區塊鏈算力公司總部所在地、“全球算力之都”總基地。[2020/8/22]
當對這個地址轉賬的時候,比方說轉賬100的AToken,然后輸入的地址是攻擊者提供的缺位地址,這時候,經過編碼輸入的數據是134字節,比正常的數據少了2字節,在這種情況下,EVM就會對缺失的字節位在編碼數據的末尾進行補0湊成136字節,這樣本來地址段缺失的0被數據段的0補齊了,而由于給地址段補0,數據段會少0,而數據段缺失的0由EVM自動補齊,這就像數據段向地址段移動補齊地址段缺失字節位,然后數據段缺失的字節位由EVM用0補齊。
動態 | 臺灣遠傳電信與軟銀完成跨國電信區塊鏈行動支付實測:據聯合新聞網消息,近日,臺灣遠傳電信和日本SoftBank已經完成跨國電信區塊鏈行動支付實測。該支付測試可使用電信賬單付費,方便用日本本國貨幣的電信賬單計費與支付,也可避免信用卡海外交易手續費。[2019/2/22]
這種情況下,轉賬金額就會由100變成100*16的n次方,n是地址缺失的0的個數。通過這種方式,攻擊者就能對交易所或錢包進行攻擊,盜竊交易所和錢包的資產。
慢霧安全團隊建議交易所和錢包在處理轉賬的時候,要對轉賬地址進行嚴格的校驗,防止短地址攻擊的發生。詳情可參考:遺忘的亞特蘭蒂斯:以太坊短地址攻擊詳解
假幣攻擊?Fake?Token?Attack
假幣攻擊(FakeTokenAttack),是針對那些在創建官方?Token?時采用通用創建模版創建出來的代幣,每個?Token的識別僅根據特定的標記進行識別,如EOS官方?Token的識別標記是"eosio.token"合約,波場的TRC10的識別標記是tokenid,以太坊的ERC20是用合約地址作為識別標記。
行情 | 美股區塊鏈中概股普遍下跌:今日美股全線低開,在美上市區塊鏈中概股普遍下跌。人人網下跌4.97%,寺庫下跌6.06%,中網載線上漲0.60,迅雷下跌4.02%,獵豹移動下跌1.77%,蘭亭集勢下跌1.37%。[2018/12/6]
那么這樣就會出現一個問題,如果收款方在對這些Token進行收款的時候沒有嚴格校驗這些Token特有的標記,攻擊就會發生,以EOS為例子,由于EOS官方Token采用的是合約來發行一個名為EOS的Token,標記EOS本身的標識是"eosio.token"這個發行帳號,如果在接受轉賬的時候沒有校驗這個標識,攻擊者就能用其他的帳號同樣發行一個名為EOS的Token,對交易所或錢包進行假幣充值,換取真的代幣。
2019年4月11日,波場DappTronBank1小時內被盜走約1.7億枚BTT。監測顯示,黑客創建了名為BTTx的假幣向合約發起“invest”函數,而合約并沒有判定發送者的代幣id是否與BTT真幣的id1002000一致。因此黑客拿到真幣BTT的投資回報和推薦獎勵,以此方式迅速掏空資金池。
菲律賓公司使用區塊鏈技術更快地轉交可移動資產:近日,菲律賓公司Acudeen Technologies Inc與香港數字物流供應商Openport合作,使用區塊鏈技術成功并有效地讓企業以較少的交易時間完成實物資產的轉交。Acudeen的首席執行官Mario Jordan Fetalino III表示,菲律賓首個在無需聯系賣家付款人的情況下使用區塊鏈發票的用例已成功得到確認。 據悉,這種交易的驗證通常需要21個小時左右, 但使用區塊鏈技術以后,只需兩個小時就可以驗證發票并成功為賣家提供資金。[2018/5/21]
對此,交易所和錢包在處理轉賬的時候,切記要嚴格檢驗各種代幣各種標識,防止假幣攻擊。
整型溢出攻擊?IntegerOverflowAttack
平安銀行董事長謝永林:已將區塊鏈技術落地應用:平安銀行2018年3月15日上午舉行2017年業績新聞發布會。平安銀行董事長謝永林在本次業績新聞發布會上介紹,過去一年平安銀行將區塊鏈技術落地應用,實現信息可追溯、不可篡改,保證資產、數據安全。[2018/3/15]
數據的存儲是區塊鏈上重要的一環。但是每個數據類型本身是存在邊界的,例如以太坊中uint8類型的變量就只能存儲0~255大小的數據,超過了就存不下了。
那么如果要放一個超過數據類型大小的數字會怎樣呢?例如把256存進uint8的數據類型中,數據顯示出來會變成1,而不是其他數值,也不會報錯,因為uint8本身能存一個8位二進制數字,最大值為11111111,如果這個時候加1,這個二進制數就變成了100000001,而因為數據邊界的關系,只能拿到后8位,也就是00000001,那么數字的大小就變成1了,這種情況我們稱為上溢。
有上就有下,下溢的意思就是一個值為0的uint8數據,如果這個時候對它進行減1操作,結果會變成該數據類型所能存儲的最大值加1減去被減數,在這個例子中是255,也就是該數據類型所能存儲的最大值。
那么如果上述兩種情況發生在智能合約當中的話,惡意用戶通過下溢的操作,操縱自己的帳號向其他帳號發送超過自己余額數量的代幣,如果合約內沒有對余額進行檢查,惡意用戶的余額就會下溢出變成一個超大的值,這個時候攻擊者如果大量拋售這些代幣,就能瞬間破壞整個代幣的價值系統。
慢霧安全團隊建議所有的智能合約開發者在智能合約中對數據進行操作的時候,要嚴格校驗數據邊界,防止整形溢出攻擊的發生。詳情可參考:BEC智能合約無限轉幣漏洞分析及預警。
條件競爭攻擊?RaceCondition
條件競爭(RaceCondition)攻擊的方式很多樣,但是核心的本質無非是對某個條件的狀態修改的競爭,如上期介紹的重入漏洞,也是條件競爭的一種,針對的是用戶余額這個條件進行競爭,只要用戶的余額沒有歸零,用戶就能一直提走智能合約的錢。這次介紹的條件競爭的例子是最近發生的著名的Edgeware鎖倉合約的拒絕服務漏洞,詳情可參考:
關于Edgeware鎖倉合約的拒絕服務漏洞。
這個漏洞問題的本質在于對新建的鎖倉合約的余額的這個條件進行競爭。攻擊者可以監控所有鏈上的鎖倉請求,提前計算出鎖倉合約的地址,然后向合約地址轉賬,造成鎖倉失敗。
在官方沒有修復之前,要防止這種攻擊,只能使用比攻擊者更高的手續費讓自己的鎖倉交易先行打包,從而與攻擊者形成競爭避免攻擊。最后,官方修復方案為不對鎖倉合約的余額進行強制性的相等檢查,而是采用大于等于的形式,避免了攻擊的發生。
慢霧安全團隊建議智能合約的開發者在智能合約中對某些狀態進行修改的時候,要根據實際情況充分考慮條件競爭的風險,防止遭受條件競爭攻擊。
系列回顧:
區塊鏈安全入門筆記(三)|慢霧科普
區塊鏈安全入門筆記(四)|慢霧科普
區塊鏈安全入門筆記(五)|慢霧科普
區塊鏈安全入門筆記(六)|慢霧科普
區塊鏈安全入門筆記(七)|慢霧科普
去中心化的加密貨幣世界可能會比大多數觀察者意識到的更加中心化。關注行情的朋友也會發現,比特幣時不時爆拉、暴跌,價格沒變,倉位沒了的情況并不少見.
1900/1/1 0:00:00跨國匯款手續費,你有沒有被銀行“宰”一刀?比特幣的出現,讓幸福來得更早一些。日前,加密貨幣愛好者平臺CryptoManiaks發布數據顯示,與動輒30至40美元的國際匯款手續費相比,比特幣每次0.
1900/1/1 0:00:00據Coindesk8月3日報道,韓國政府正式宣布釜山成為該國區塊鏈開發的“無監管”地區,雖然這一舉措早在人們意料之中,但我們確實能看到韓國支持區塊鏈自由發展的決心.
1900/1/1 0:00:008月2日,Algorand基金會官方宣布,其將為早期拍賣參與者提供提前退款選項。在第一次拍賣中購買代幣的用戶可在8月2日8:00至8月9日將代幣返還至基金會指定的錢包地址.
1900/1/1 0:00:00我們很高興的宣布IRISnet團隊又添一位新伙伴---胡智威。智威同學出任總監和首席研究員職位,將會帶領團隊在技術創新和生態發展上不斷進步.
1900/1/1 0:00:00據Coindesk8月19日報道,世界銀行再次通過出售“區塊鏈債務工具”籌集了5000萬澳元,澳大利亞聯邦銀行、加拿大皇家銀行資本市場和加拿大道明證券共同負責本次銷售.
1900/1/1 0:00:00