成都鏈安:YFV勒索事件始末分析
2020-08-25 07:51
本文約764字,閱讀全文需要約2分鐘
針對於本次事件,究其根本原因,還是沒有做好上線前的代碼審計工作。
漏洞分析

漏洞分析
漏洞分析
合約存在一個stakeOnBehalf函數使得攻擊者可以為任意用戶進行抵押,如下圖所示:

此函數中的lastStakeTimes[stakeFor] = block.timestamp; 語句會更新用戶地址映射的laseStakeTimes[user]。而用戶取出抵押所用的函數中又存在驗證,要求用戶取出時間必須大於lastStakeTimes[account]+72小時。如下圖所示:

UnfrozenStakeTime如下圖所示:

綜上所述,惡意用戶可以向正常用戶抵押小額的資金,從而鎖定正常用戶的資金。
根據鏈上信息,我們找到了兩筆疑似攻擊的交易,如下所示:
0xf8e155b3cb70c91c70963daaaf5041dee40877b3ce80e0cbd3abfc267da03fc9
0x8ae5e5b4f5a026bc27685f2b8cbf94e9e2c572f4905fcff1e263df24252965db
總結

總結
總結
針對於本次事件,究其根本原因,還是沒有做好上線前的代碼審計工作。本次事件實際上是屬於業務層面上的漏洞。
根據成都鏈安在代碼審計方面的經驗,個別項目方在進行代碼審計時,未提供完整的項目相關資料,使得代碼審計無法發現一些業務漏洞,導致上線後損失慘重。
成都鏈安·安全實驗室在此提醒各項目方:安全是發展的基石,做好代碼審計是上線的前提條件。
开发者
安全
歡迎加入Odaily官方社群


