欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于異常代幣流的價格操縱攻擊合約檢測方法及系統(tǒng)

文檔序號:40555545發(fā)布日期:2025-01-03 11:15閱讀:11來源:國知局
一種基于異常代幣流的價格操縱攻擊合約檢測方法及系統(tǒng)

本發(fā)明涉及攻擊合約檢測,尤其涉及一種基于異常代幣流的價格操縱攻擊合約檢測方法及系統(tǒng)。


背景技術:

1、目前,去中心化金融(decentralized?finance,defi)生態(tài)發(fā)展迅速,基于智能合約的去中心化應用吸引了大量投資。到2024年,defi協(xié)議的鎖定總價值已超過900億美元。然而,defi開發(fā)人員在安全問題上認識不足或開發(fā)過程中存在疏忽,加之智能合約的透明性和不可篡改性,使得defi項目容易受到各種類型的攻擊,往往伴隨巨大的經(jīng)濟損失,嚴重影響defi生態(tài)的穩(wěn)定性。其中,價格操縱攻擊是defi歷史上最臭名昭著的攻擊方式之一。攻擊者利用漏洞在不公平的代幣轉(zhuǎn)移中獲利。造成defi中價格操縱漏洞的原因多種多樣,包括不正確的滑點設置、未受保護的公共函數(shù)以及對不受信任的價格預言機的依賴。此外,攻擊者傾向于將攻擊操作打包成單一的合約,以快速發(fā)起攻擊并躲避鏈上檢測工具。這種方式還允許他們利用閃電貸執(zhí)行攻擊,并確保在任何條件未滿足時,能夠及時回滾整個操作。

2、目前市面上雖然存在一些檢測價格操縱攻擊的工具,但大多數(shù)依賴于合約產(chǎn)生的歷史交易信息或受害合約的代碼分析。這意味著只有在攻擊合約實際發(fā)起攻擊并生成交易后,這些工具才能進行識別。而大量的交易信息增加了分析難度,導致工具的識別準確率有限。而基于受害合約代碼的檢測工具,其效果取決于預定義規(guī)則,而漏洞的多樣性使得這些規(guī)則無法覆蓋所有較多類型的漏洞,因而識別的漏報率較大。

3、因此,有必要開發(fā)新的檢測方法,以更有效的對潛在攻擊進行預警。


技術實現(xiàn)思路

1、本發(fā)明通過提供一種基于異常代幣流的價格操縱攻擊合約檢測方法及系統(tǒng),能夠識別出價格操縱攻擊合約,從而更有效的對潛在攻擊進行預警。

2、本發(fā)明提供了一種基于異常代幣流的價格操縱攻擊合約檢測方法,包括:

3、將待檢測合約的字節(jié)碼反編譯得到中間表示,并基于所述待檢測合約中的跳轉(zhuǎn)指令將所述中間表示切分為基本塊,根據(jù)所述跳轉(zhuǎn)指令的跳轉(zhuǎn)目標將所述基本塊構建得到過程間的控制流圖;所述控制流圖中的節(jié)點代表基本塊,所述控制流圖中的邊表示控制流路徑;

4、基于所述基本塊中的中間表示所包含的操作碼跟蹤所有外部調(diào)用的指令偏移,并從所述待檢測合約的不同存儲中提取得到具體調(diào)用的目標合約地址和函數(shù)選擇子;

5、基于所述控制流圖、所述目標合約地址和所述函數(shù)選擇子構建跨合約的調(diào)用點圖;所述調(diào)用點圖中的節(jié)點表示為<調(diào)用點指令偏移,目標合約地址,目標函數(shù)選擇子>三元組,所述調(diào)用點圖中的邊代表不同調(diào)用點之間的控制流連接;

6、基于所述跨合約的調(diào)用點圖構建代幣流圖;所述代幣流圖中的節(jié)點表示<調(diào)用點指令偏移,目標合約地址,目標函數(shù)選擇子>三元組加上代幣相關的操作語義信息,所述代幣流圖中的邊表示不同調(diào)用點之間的控制流連接以及不同調(diào)用點之間參數(shù)到返回值的數(shù)據(jù)流信息;

7、根據(jù)所述目標合約地址,對所述代幣流圖中執(zhí)行路徑上的節(jié)點執(zhí)行跨合約分析,得到完整的執(zhí)行路徑;

8、執(zhí)行所述完整的執(zhí)行路徑,若任意一條執(zhí)行路徑中節(jié)點的語義序列構成的行為符合預定義規(guī)則所定義的行為模式,則輸出具體的攻擊行為模式、被操縱價格的代幣地址以及潛在的受害方地址,并將所述待檢測合約作為價格操縱攻擊合約。

9、具體來說,所述基于所述跨合約的調(diào)用點圖構建代幣流圖,包括:

10、根據(jù)所述調(diào)用點圖中節(jié)點的調(diào)用點指令偏移作為基礎,找到最近的對基址開始讀操作的指令偏移,然后遍歷從所述指令偏移的位置到調(diào)用點偏移之間的所有內(nèi)存的寫操作,獲得每個調(diào)用點所涉及到的實際參數(shù)以及這些參數(shù)的索引位置;

11、通過所述調(diào)用點圖中節(jié)點的目標函數(shù)選擇子、預設的函數(shù)簽名模板信息、所述索引位置啟發(fā)式地推測出可能是交換代幣的外部調(diào)用,得到外部調(diào)用與代幣相關的操作語義信息;

12、根據(jù)所述外部調(diào)用與代幣相關的操作語義信息得到其返回值的具體表示,然后基于數(shù)據(jù)流傳遞規(guī)則,得到不同外部調(diào)用之間參數(shù)到返回值的數(shù)據(jù)流傳遞信息;

13、將所述外部調(diào)用與代幣相關的操作語義信息添加到所述調(diào)用點圖的節(jié)點表示中,保留所述調(diào)用點圖中的不同調(diào)用點之間的控制流連接關系,添加表示所述不同外部調(diào)用之間參數(shù)到返回值的數(shù)據(jù)流傳遞信息的邊,構建得到所述代幣流圖。

14、具體來說,所述根據(jù)所述目標合約地址,對所述代幣流圖中執(zhí)行路徑上的節(jié)點執(zhí)行跨合約分析,得到完整的執(zhí)行路徑,包括:

15、判斷所述代幣流圖中各路徑中的節(jié)點序列的語義信息是否滿足預定義的交易敏感特征;

16、若任意一條路徑中的節(jié)點序列的語義信息滿足預定義的交易敏感特征,將該路徑作為敏感路徑;

17、根據(jù)所述目標合約地址,對所述敏感路徑上的節(jié)點執(zhí)行跨合約分析,得到所述完整的執(zhí)行路徑。

18、具體來說,所述執(zhí)行所述完整的執(zhí)行路徑,若任意一條執(zhí)行路徑中節(jié)點的語義序列構成的行為符合預定義規(guī)則所定義的行為模式,則輸出具體的攻擊行為模式、被操縱價格的代幣地址以及潛在的受害方地址,并將所述待檢測合約作為價格操縱攻擊合約,包括:

19、執(zhí)行所述完整的執(zhí)行路徑,若任意一條執(zhí)行路徑中節(jié)點的語義序列構成的行為與預定義的直接的或者間接的價格操縱攻擊行為模式中的一種匹配,得到匹配的預定義的價格操縱攻擊行為模式;

20、根據(jù)所述匹配的預定義的價格操縱攻擊行為模式,得到被操縱價格的代幣地址以及潛在的受害方地址,并將所述待檢測合約作為價格操縱攻擊合約。

21、具體來說,所述根據(jù)所述匹配的預定義的價格操縱攻擊行為模式,得到被操縱價格的代幣地址以及潛在的受害方地址,包括:

22、根據(jù)所述匹配的預定義的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中的兩次代幣交換語義的節(jié)點的地址類型參數(shù)為所述被操縱價格的代幣地址;所述地址類型參數(shù)根據(jù)參數(shù)讀寫的固定偏移的大小確定;

23、判斷所述匹配的預定義的價格操縱攻擊行為模式為直接的價格操縱攻擊行為模式還是間接的價格操縱攻擊行為模式;

24、若所述匹配的預定義的價格操縱攻擊行為模式為直接的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中被操縱的代幣交換語義的節(jié)點的目標合約地址為所述潛在的受害方地址;

25、若所述匹配的預定義的價格操縱攻擊行為模式為間接的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中被操縱的代幣轉(zhuǎn)移語義的節(jié)點的目標合約地址為所述潛在的受害方地址。

26、本發(fā)明還提供了一種基于異常代幣流的價格操縱攻擊合約檢測系統(tǒng),包括:

27、控制流圖構建模塊,用于將待檢測合約的字節(jié)碼反編譯得到中間表示,并基于所述待檢測合約中的跳轉(zhuǎn)指令將所述中間表示切分為基本塊,根據(jù)所述跳轉(zhuǎn)指令的跳轉(zhuǎn)目標將所述基本塊構建得到過程間的控制流圖;所述控制流圖中的節(jié)點代表基本塊,所述控制流圖中的邊表示控制流路徑;

28、數(shù)據(jù)獲取模塊,用于基于所述基本塊中的中間表示所包含的操作碼跟蹤所有外部調(diào)用的指令偏移,并從所述待檢測合約的不同存儲中提取得到具體調(diào)用的目標合約地址和函數(shù)選擇子;

29、調(diào)用點圖構建模塊,用于基于所述控制流圖、所述目標合約地址和所述函數(shù)選擇子構建跨合約的調(diào)用點圖;所述調(diào)用點圖中的節(jié)點表示為<調(diào)用點指令偏移,目標合約地址,目標函數(shù)選擇子>三元組,所述調(diào)用點圖中的邊代表不同調(diào)用點之間的控制流連接;

30、代幣流圖構建模塊,用于基于所述跨合約的調(diào)用點圖構建代幣流圖;所述代幣流圖中的節(jié)點表示<調(diào)用點指令偏移,目標合約地址,目標函數(shù)選擇子>三元組加上代幣相關的操作語義信息,所述代幣流圖中的邊表示不同調(diào)用點之間的控制流連接以及不同調(diào)用點之間參數(shù)到返回值的數(shù)據(jù)流信息;

31、完整執(zhí)行路徑獲得模塊,用于根據(jù)所述目標合約地址,對所述代幣流圖中執(zhí)行路徑上的節(jié)點執(zhí)行跨合約分析,得到完整的執(zhí)行路徑;

32、合約檢測模塊,用于執(zhí)行所述完整的執(zhí)行路徑,若任意一條執(zhí)行路徑中節(jié)點的語義序列構成的行為符合預定義規(guī)則所定義的行為模式,則輸出具體的攻擊行為模式、被操縱價格的代幣地址以及潛在的受害方地址,并將所述待檢測合約作為價格操縱攻擊合約。

33、具體來說,所述代幣流圖構建模塊,包括:

34、參數(shù)索引獲得單元,用于根據(jù)所述調(diào)用點圖中節(jié)點的調(diào)用點指令偏移作為基礎,找到最近的對基址開始讀操作的指令偏移,然后遍歷從所述指令偏移的位置到調(diào)用點偏移之間的所有內(nèi)存的寫操作,獲得每個調(diào)用點所涉及到的實際參數(shù)以及這些參數(shù)的索引位置;

35、操作語義信息獲得單元,用于通過所述調(diào)用點圖中節(jié)點的目標函數(shù)選擇子、預設的函數(shù)簽名模板信息、所述索引位置啟發(fā)式地推測出可能是交換代幣的外部調(diào)用,得到外部調(diào)用與代幣相關的操作語義信息;

36、數(shù)據(jù)流傳遞信息獲得單元,用于根據(jù)所述外部調(diào)用與代幣相關的操作語義信息得到其返回值的具體表示,然后基于數(shù)據(jù)流傳遞規(guī)則,得到不同外部調(diào)用之間參數(shù)到返回值的數(shù)據(jù)流傳遞信息;

37、代幣流圖構建單元,用于將所述外部調(diào)用與代幣相關的操作語義信息添加到所述調(diào)用點圖的節(jié)點表示中,保留所述調(diào)用點圖中的不同調(diào)用點之間的控制流連接關系,添加表示所述不同外部調(diào)用之間參數(shù)到返回值的數(shù)據(jù)流傳遞信息的邊,構建得到所述代幣流圖。

38、具體來說,所述完整執(zhí)行路徑獲得模塊,包括:

39、敏感路徑判斷單元,用于判斷所述代幣流圖中各路徑中的節(jié)點序列的語義信息是否滿足預定義的交易敏感特征;

40、敏感路徑獲得單元,用于若任意一條路徑中的節(jié)點序列的語義信息滿足預定義的交易敏感特征,將該路徑作為敏感路徑;

41、完整執(zhí)行路徑獲得單元,用于根據(jù)所述目標合約地址,對所述敏感路徑上的節(jié)點執(zhí)行跨合約分析,得到所述完整的執(zhí)行路徑。

42、具體來說,所述合約檢測模塊,包括:

43、價格操縱攻擊行為模式匹配單元,用于執(zhí)行所述完整的執(zhí)行路徑,若任意一條執(zhí)行路徑中節(jié)點的語義序列構成的行為與預定義的直接的或者間接的價格操縱攻擊行為模式中的一種匹配,得到匹配的預定義的價格操縱攻擊行為模式;

44、價格操縱攻擊合約報告單元,用于根據(jù)所述匹配的預定義的價格操縱攻擊行為模式,得到被操縱價格的代幣地址以及潛在的受害方地址,并將所述待檢測合約作為價格操縱攻擊合約。

45、具體來說,所述價格操縱攻擊合約報告單元,包括:

46、被操縱價格的代幣地址識別子單元,用于根據(jù)所述匹配的預定義的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中的兩次代幣交換語義的節(jié)點的地址類型參數(shù)為所述被操縱價格的代幣地址;所述地址類型參數(shù)根據(jù)參數(shù)讀寫的固定偏移的大小確定;

47、價格操縱攻擊行為模式判斷子單元,用于判斷所述匹配的預定義的價格操縱攻擊行為模式為直接的價格操縱攻擊行為模式還是間接的價格操縱攻擊行為模式;

48、第一受害方地址識別子單元,用于若所述匹配的預定義的價格操縱攻擊行為模式為直接的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中被操縱的代幣交換語義的節(jié)點的目標合約地址為所述潛在的受害方地址;

49、第二受害方地址識別子單元,用于若所述匹配的預定義的價格操縱攻擊行為模式為間接的價格操縱攻擊行為模式,識別匹配的攻擊行為路徑中被操縱的代幣轉(zhuǎn)移語義的節(jié)點的目標合約地址為所述潛在的受害方地址;

50、價格操縱攻擊合約報告子單元,用于將所述待檢測合約報告為價格操縱攻擊合約。

51、本發(fā)明中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:

52、1、首先,對于合約的所有外部調(diào)用,從字節(jié)碼層面提取相關信息,包括目標合約地址和目標函數(shù)選擇子。然后,基于生成的過程間的控制流圖,通過提取的調(diào)用信息擴展基本塊作為節(jié)點,并結合跳轉(zhuǎn)關系和跨合約分析構建跨合約的函數(shù)調(diào)用點圖。接著,基于外部調(diào)用的具體行為,提取其對應的代幣操作,并構建代幣流圖。最后,遍歷代幣流圖中的敏感路徑,并根據(jù)預定義的價格操縱模式判斷合約是否用于價格操縱攻擊。本發(fā)明僅從合約字節(jié)碼出發(fā),無需任何交易信息,因此一旦具有潛在價格操縱攻擊意圖的智能合約部署上鏈,本發(fā)明能夠立即檢測并生成預警信息。此外,本發(fā)明基于檢測攻擊合約的行為模式,規(guī)避了直接從受害合約入手所帶來的項目體積大、漏洞原因多樣、利用鏈復雜的限制,從而獲得更及時更精準的檢測結果。

53、2、本發(fā)明充分考慮了攻擊合約的整體特點,針對每一個外部調(diào)用,實現(xiàn)從目標合約地址、函數(shù)選擇子到具體參數(shù)的全方位恢復,并且特別支持數(shù)組等復雜類型參數(shù)的恢復。

54、3、本發(fā)明填補了字節(jié)碼到代幣操作語義之間的差距,通過結合標準函數(shù)簽名模板信息和自定義啟發(fā)式規(guī)則,得到合約對于不同代幣的具體執(zhí)行邏輯,提高了價格操縱攻擊合約檢測的準確性。

55、4、本發(fā)明充分考慮了時間開銷,僅對代幣流圖中符合預定義的敏感路徑中的關鍵節(jié)點進行分析,并實現(xiàn)了實時檢測的效果。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
苍山县| 天水市| 西城区| 宁德市| 昆明市| 尖扎县| 娱乐| 四会市| 东乌珠穆沁旗| 红安县| 梅州市| 名山县| 曲沃县| 大名县| 通河县| 化州市| 峡江县| 玉田县| 台湾省| 米泉市| 上思县| 长岛县| 轮台县| 东乡县| 仙游县| 洪湖市| 衡阳县| 民权县| 彭泽县| 沾化县| 永定县| 眉山市| 衡东县| 香格里拉县| 黄冈市| 纳雍县| 屯昌县| 五寨县| 阳原县| 会宁县| 荣昌县|