引子:“庖人雖不治庖,尸、祝不越樽俎而代之矣。”--《莊子·逍遙游》古時候,有一位杰出的領袖名叫唐堯。他所治理的地區人們安居樂業,但是他聽聞隱士許由十分有才干,便萌生了將領導權讓給許由的想法。但是許由拒絕了,并說出了這樣一段話“鷦鷯巢于深林,不過一枝。”至此,后人也用越俎代庖一詞來表達越權的含義。
“越俎代庖”在智能合約的實現中存在著訪問權限,如果權限設置不合理,很容易造成智能合約被攻擊,嚴重的還會造成巨大的經濟損失。成都鏈安-安全實驗室對于智能合約安全有著豐富的經驗和積累,但隨著區塊鏈技術越來越受重視,智能合約的數量也越來越多,隨之而來的智能合約被攻擊事件也越來越多,也讓我們感受到了“讓區塊鏈更安全”的企業使命是多么的重要,但是一己之力難于對抗所有的威脅。接下來,我們將會把自己的安全經驗積累通過與智能合約CTF靶場ethernaut相結合,通過技術連載的方式向廣大智能合約開發者普及在開發過程中,如何實現更安全的代碼。
深圳:鼓勵智能合約技術在數字人民幣領域的融合應用:金色財經報道,深圳市地方金融監督管理局4月7日印發《深圳市扶持金融科技發展若干措施》,《措施》指出將推動中國人民銀行數字貨幣研究所貿易金融區塊鏈平臺和境外貿易金融平臺的聯動合作,鼓勵優質外貿企業積極參與,豐富應用場景,探索人民幣國際化和貿易便利化的落地場景。支持供應鏈金融企業運用隱私計算、區塊鏈等前沿技術探索數據融合共享應用。支持科研院所和金融科技機構持續推動區塊鏈、隱私計算等關鍵基礎技術的研發與金融應用,提升金融產品、金融服務、金融監管的基礎技術支撐能力。
深圳還將積極對接中國人民銀行,深化數字人民幣的研發應用與國際合作。吸引數字人民幣相關的重大基礎設施落地深圳,培育數字人民幣產業生態。積極鼓勵智能合約技術在數字人民幣領域的融合應用,率先建設基于數字人民幣的智能合約公共平臺,服務數字人民幣的全場景應用,打造新型商貿流通形態。[2022/4/7 14:11:08]
YAM2.0智能合約已通過PeckShield安全審計:8月19日, 區塊鏈安全公司PeckShield(派盾)正式宣布完成了對YAM2.0智能合約的安全審計。YAM 2.0將對YAM 1.0合約進行系統遷移工作,同時持幣用戶可以進行1:1的映射,為其挖礦產品的上線做必要準備工作。
PeckShield表示,經過數天的嚴密安全審計,我們發現YAMv2遷移合約的整體設計清晰,邏輯縝密,代碼簡練有效。
注:此前,備受關注的YAM1.0曾因一行代碼漏洞,致使項目服務擱淺,并造成治理合約中的75萬枚yCRV代幣被永久鎖定,而其項目代幣YAM二級市場價格也在數分鐘內跌落99%以上。[2020/8/19]
現在我們就來聊一聊ethernaut靶場的第一題Fallback,代碼函數“越俎代庖”的事件。一、權限漏洞簡介
越權漏洞是指在智能合約中,因函數可見性設置不合理或函數缺乏有效的驗證導致本不能調用某一函數的用戶通過直接或者繞過驗證的方式成功調用該函數。該漏洞可被單獨利用,也可能結合其他漏洞進行組合攻擊,利用方式簡單,漏洞影響視存在漏洞的函數而定,可能對合約造成毀滅性打擊。二、Fallback“越俎代庖”
獨家 | “新增代幣型智能合約風險榜”出爐 Peach Will(PW)風險排名第一:第三方大數據評級機構RatingToken最新數據顯示,截止2018年8月12日,全球新增919個合約地址,其中173個為代幣型智能合約。RatingToken團隊發布的“新增代幣型智能合約風險榜”中,Peach Will(PW)、Ready Player ONE(RP1)和Vote Bhelp(Test)排名前三,檢測得分依次為1.50、2.00和2.00,其中Peach Will存在24個疑似風險項。其他登上該風險榜TOP10的合約還包括PreSale、EarlyBirdSale、LFC_Crowdsale、Crowdsale、REWARD、Real Q Coin(RQC)和HODL Coin(HODL)。如需查看更多智能合約檢測結果,請查看原文鏈接。[2018/8/13]
漏洞原理詳細分析2.1合約中的“俎”與“庖”如何理解合約中的“俎”與“庖”呢?先來看一段合約代碼,如下圖所示:
BM發文回懟智能合約系統漏洞問題:不負責任的報告:據金色財經合作媒體IMEOS報道:今日,BM在Medium發文回應成都鏈安科技關于EOS智能合約漏洞的報告。他認為,這完全是一個不負責任的報告,鏈安科技所呈現的問題不是一個安全漏洞,而是一個糟糕代碼實踐的結果。智能合約平臺并不能阻止開發人員犯的錯誤。隨即他舉例可以使用?boost multiprecision 定義的 checked_int64_t,將不安全的代碼轉換成安全的代碼阻止溢出。
總而言之,他認為此次不負責任地報告結果是誤導了那些不了解技術的人,而在這個行業內,也應該準確理解 “安全漏洞”。[2018/5/1]
圖1這一段合約代碼出自ethernaut靶場的第一題Fallback。針對于靶場中的問題,解題思路是通過調用回調函數function()payablepublic來觸發owner=msg.sender;,使得合約的所有者變成調用者。題目非常的簡單,只要向此合約發起一筆交易,且滿足require的條件就可觸發fallback函數。正常情況下,在對一個合約調用中,如果沒有其他函數與給定的函數標識符匹配,或者沒有提供附加數據,那么fallback函數會被執行。一般是作為轉入以太幣的默認操作。所以智能合約開發時一般是不需要將owner=msg.sender寫到fallback函數中的。如下圖所示:
Qtum量子鏈攜手俄羅斯行業領先的區塊鏈投資平臺Zerion開啟智能合約服務新篇章:Qtum量子鏈宣布攜手俄羅斯行業領先的區塊鏈投資平臺,開啟智能合約服務新篇章。日后Zerion會將其核心技術整合到Qtum量子鏈平臺,并為Qtum量子鏈的智能合約服務提供支持。Qtum量子鏈與Zerion的淵源要追溯到今年七月的莫斯科區塊鏈Hackathon上,Qtum量子鏈團隊初遇Zerion的首席技術官Alex Bash。當時雙方都是活動的贊助商及評審,正是那次會面讓Zerion了解到Qtum量子鏈對于區塊鏈技術應用的成熟思考及遠大目標。這將是基于Qtum量子鏈搭建的第一個為智能合約服務提供支持的項目。[2017/12/25]
圖2然而,在這里本不該被用戶調用的owner=msg.sender被調用了,導致權限控制不當,產生了越權,“俎”與“庖”就這樣發生了接下來的故事。2.2相關安全事件2.2.1Bancor合約事件2020年6月18日,Bancornetwork被爆出存在漏洞。漏洞產生的原因是合約中存在一個public的safeTransferFrom方法,使得攻擊者可以直接調用此方法授權給Bancornetwork合約的代幣轉出到任意賬戶。其關于轉賬和授權的三個函數權限均為public,這使得任何用戶都能對其進行調用。本次事件涉及資金50W余美元。詳細代碼如下圖所示:
圖3權限為public的safeTransferFrom方法這個“奸臣”并沒有得到Bancor合約“國王”的許可,直接奪走了“國家”的“財政大權”。幸而Bancornetwork團隊和白帽首先發現了此問題,并對資金進行了轉移。在后續也對該漏洞進行了修復,才得以避免損失。詳細分析見而同樣的事件也在另外一個合約中上演,接下來我們將介紹6月底的VETH合約漏洞事件。2.2.2VETH項目事件2020年6月30,VETH項目被爆出漏洞。本次事件中“越俎代庖”的主角則是合約中的changeExcluded函數的external修飾符。external修飾符使得任何人都可以調用changeExcluded函數來繞過transferFrom函數內部的授權轉賬額度檢查,將合約的VETH代幣盜走。此次事件,攻擊者利用此漏洞盜走919299個VETH后大量拋售,導致VETH代幣價值瞬間流失。詳細見涉及到的合約代碼如下圖所示:
圖4通過以上兩個案例,相信大家已經意識到了合約中“越俎代庖”事件的嚴重影響,那么如何在合約代碼編寫的過程中有效的區分“俎”與“庖”呢?2.3“俎”、“庖”信息大揭秘針對越權事件,首先需要合約開發人員了解函數可見性。函數的可見性,一共有external、public、internal和private四種:-External外部函數作為合約接口的一部分,意味著我們可以從其他合約和交易中調用。一個外部函數f不能從內部調用。當收到大量數據的時候,外部函數有時候會更有效率,因為數據不會從calldata復制到內存.-Publicpublic函數是合約接口的一部分,可以在內部或通過消息調用。對于public狀態變量,會自動生成一個getter函數。-Internal這些函數和狀態變量只能是內部訪問,不使用this調用。-Privateprivate函數和狀態變量僅在當前定義它們的合約中使用,并且不能被派生合約使用。開發人員在構造一個函數時,應當遵循這些可見性進行開發,要明確哪些函數是可以由用戶調用的“俎”,而哪些又是合約中不能任意替代的“庖”,以最小原則進行分配。比如一個函數safeTransfer在設計時是用于轉賬操作的,用戶可以通過調用此函數,轉賬此合約發行的代幣。我們使用public和external都可以滿足需求,但就安全的角度,我們應當使用external,避免合約內對此函數進行調用,造成不可預期的風險。如存在有一個safeTransferFrom函數,用戶可以通過授權給此合約其他代幣,將其他代幣轉移到一個指定地址的,當_token等于合約本身時,就會以合約本身的身份調用sadeTransfer函數,即而將合約內的錢轉到其他地址。
圖5然而只是遵循函數可見性是遠遠不夠的,函數的可見性,只是區分了合約內部、繼承合約和外部這三個界限,遠遠不能滿足我們的需求。想要達到較為完善的權限管理,我們應當引入“角色”的概念,如:管理員、普通用戶、特權用戶等。在合約中存儲這些角色的地址,通過判斷地址或標志變量來進行權限的控制。如下圖所示:
圖6通過修飾器對這些不同的“角色”進行管理,如使用onlyOwner修飾器,限制特定的地址才可調用此函數。對應“角色”的權限管理。使用修飾器的方式,可以更加清晰的判斷出是否存在紕漏。三、安全總結
就鏈上現狀來看,智能合約權限管理錯誤造成的漏洞比比皆是,其中不乏很多“著名項目”,而此類漏洞造成的損失也是巨大的。成都鏈安安全團隊依據多年合約審計和鏈上分析安全經驗給出以下幾點建議:1、遵循權限最小化開發原則,在設計函數時應當就規劃好可見性。2、建立角色機制,使用修飾器對各函數進行權限管理,避免紕漏。3、上線前一定找專業機構做好代碼審計,正所謂“一人一個腦,做事沒商討;十人十個腦,辦法一大套”。
Tags:ERN區塊鏈TERETHern幣有前途嗎區塊鏈運用的技術中不包括哪一項技術SparksterETHA幣是真的還是假的
上一次比特幣造成這么大的轟動,應該是要回溯到17年牛市的時候了吧?當地時間周三,美國社交媒體推特公司確認包括前總統奧巴馬、前副總統拜登、比爾·蓋茨、巴菲特、貝佐斯、馬斯克和蘋果公司在內的諸多名人.
1900/1/1 0:00:0026號,中國另一家比特幣礦機公司億邦國際在美股上市了,可惜上市首日即破發,而同期的嘉楠科技已于發行價跌超80%。全球三大礦機公司,除去比特大陸還在內斗以外,剩余兩家已經無一例外的折乾了.
1900/1/1 0:00:00Base主網正式上線:金色財經報道,由Coinbase支持的Base網絡現已正式向公眾開放, Base生態系統已擁有100多個dapp和服務提供商.
1900/1/1 0:00:00編者按:本文來自風火輪社區,作者:佩佩,Odaily星球日報經授權轉載。大家好,我是佩佩,最近這一波下跌,貌似跌幅較大的都是和defi板塊相關、在近期炒得熱鬧的,其中最夸張的可能要屬上周我們聊過.
1900/1/1 0:00:00編者按:本文來自鏈聞ChainNews,撰文:日曜,星球日報經授權發布。穩定幣Ampleforth市值20天飆升18倍 Ampleforth,是一個基于算法儲備和貨幣供應策略的穩定貨幣,旨在實現.
1900/1/1 0:00:00市場要聞 1、為促進數字支付發展日本政府降低銀行間轉賬費率。2、以太坊2.0開發人員:完成絕大部分啟動2.0完整測試網前的工作預計下周一或周二會公布啟動日期.
1900/1/1 0:00:00