本說明書一個(gè)或多個(gè)實(shí)施例涉及區(qū)塊鏈,尤其涉及一種區(qū)塊鏈攻擊的檢測(cè)方法和裝置。
背景技術(shù):
1、區(qū)塊鏈?zhǔn)欠植际綌?shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用模式。區(qū)塊鏈系統(tǒng)中按照時(shí)間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本。由于區(qū)塊鏈具有去中心化、信息不可篡改、自治性等特性,區(qū)塊鏈也受到人們?cè)絹碓蕉嗟闹匾暫蛻?yīng)用。
技術(shù)實(shí)現(xiàn)思路
1、本說明書一個(gè)或多個(gè)實(shí)施例描述了一種區(qū)塊鏈攻擊的檢測(cè)方法和裝置,可以提高區(qū)塊鏈攻擊的檢測(cè)效果,降低檢測(cè)區(qū)塊鏈攻擊所消耗的數(shù)據(jù)成本,解決現(xiàn)有技術(shù)的不足。
2、根據(jù)第一方面,提供了一種區(qū)塊鏈攻擊的檢測(cè)方法,包括:
3、獲取目標(biāo)區(qū)塊鏈上目標(biāo)交易的交易日志,根據(jù)所述交易日志中的多個(gè)函數(shù)調(diào)用對(duì)應(yīng)的信息、以及包含預(yù)設(shè)的多個(gè)第一語義元素的第一語義集,確定所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義,所述交易語義中包括多個(gè)第一語義元素中的一到多個(gè);
4、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,所述復(fù)雜語義包括多個(gè)第二語義元素中的一到多個(gè),所述第二語義元素根據(jù)至少兩個(gè)函數(shù)調(diào)用中的第一語義元素而確定;
5、根據(jù)所述交易語義和所述復(fù)雜語義,確定是否存在通過所述目標(biāo)交易施行預(yù)定攻擊的風(fēng)險(xiǎn)。
6、在一種可能的實(shí)施方式中,所述多個(gè)第一語義元素包括第一元素、第二元素和第三元素,所述第一元素指示調(diào)用的函數(shù)名稱、函數(shù)調(diào)用的發(fā)送方和接收方,所述第二元素指示函數(shù)調(diào)用對(duì)應(yīng)的調(diào)用深度,所述第三元素指示函數(shù)調(diào)用的順序;
7、所述多個(gè)第二語義元素,包括第一復(fù)合元素和第二復(fù)合元素,所述第一復(fù)合元素指示存在兩條發(fā)起方相同、接受方相同且調(diào)用的函數(shù)名稱相同的函數(shù)調(diào)用,所述第二復(fù)合元素指示存在兩條發(fā)起方和接受方相反的函數(shù)調(diào)用。
8、在一種可能的實(shí)施方式中,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,包括:
9、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義中包括的第一元素、第二元素和第三元素,確定所述多個(gè)函數(shù)調(diào)用中是否存在第一函數(shù)調(diào)用和第二函數(shù)調(diào)用,所述第一函數(shù)調(diào)用的調(diào)用順序在所述第二函數(shù)調(diào)用之前,所述第一函數(shù)調(diào)用和所述第二函數(shù)調(diào)用的發(fā)起方、接收方、和調(diào)用的函數(shù)名稱均相同,所述第二函數(shù)調(diào)用的調(diào)用深度不大于所述第一函數(shù)調(diào)用的調(diào)用深度;
10、若所述多個(gè)函數(shù)調(diào)用中存在所述第一函數(shù)調(diào)用和所述第二函數(shù)調(diào)用,則確定所述第二函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第一函數(shù)調(diào)用和第二函數(shù)調(diào)用的第一復(fù)合元素。
11、在一種可能的實(shí)施方式中,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,包括:
12、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義中包括的第一元素、第二元素和第三元素,確定所述多個(gè)函數(shù)調(diào)用中是否存在第一函數(shù)調(diào)用和第三函數(shù)調(diào)用,所述第一函數(shù)調(diào)用的調(diào)用順序在所述第三函數(shù)調(diào)用之前,所述第一函數(shù)調(diào)用和所述第三函數(shù)調(diào)用的發(fā)起方和接收方相反,所述第二函數(shù)調(diào)用的調(diào)用深度不大于所述第一函數(shù)調(diào)用的調(diào)用深度;
13、若所述多個(gè)函數(shù)調(diào)用中存在所述第一函數(shù)調(diào)用和所述第三函數(shù)調(diào)用,則確定所述第二函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第一函數(shù)調(diào)用和第三函數(shù)調(diào)用的第二復(fù)合元素。
14、在一種可能的實(shí)施方式中,根據(jù)所述交易語義和所述復(fù)雜語義,確定是否存在通過所述目標(biāo)交易施行預(yù)定攻擊的風(fēng)險(xiǎn),包括:
15、根據(jù)所述交易語義和所述復(fù)雜語義,確定所述多個(gè)函數(shù)調(diào)用中是否符合預(yù)設(shè)的第一規(guī)則的第一函數(shù)調(diào)用、第二函數(shù)調(diào)用和第三函數(shù)調(diào)用,所述第二函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第一函數(shù)調(diào)用和第二函數(shù)調(diào)用的第一復(fù)合元素,所述第三函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第一函數(shù)調(diào)用和第二函數(shù)調(diào)用的第二復(fù)合元素,且所述第二函數(shù)調(diào)用的調(diào)用深度大于所述第三函數(shù)調(diào)用的調(diào)用深度;
16、若所述多個(gè)函數(shù)調(diào)用中存在所述第一函數(shù)調(diào)用、第二函數(shù)調(diào)用和第三函數(shù)調(diào)用,則確定存在通過所述目標(biāo)交易施行重入攻擊的風(fēng)險(xiǎn)。
17、在一種可能的實(shí)施方式中,所述多個(gè)第一語義元素包括第三元素、第四元素和第五元素,所述第四元素指示用于代幣支付的函數(shù)調(diào)用、以及代幣支付的發(fā)起方、接受方、代幣種類和代幣金額,所述第五元素指示用于代幣生成的函數(shù)調(diào)用、以及代幣生成的流動(dòng)性池、接受方、代幣種類和代幣金額,所述第三元素指示函數(shù)調(diào)用的順序;
18、所述多個(gè)第二語義元素,包括第三復(fù)合元素、第四復(fù)合元素,所述第三復(fù)合元素指示存在通過同一參與方向流動(dòng)性池中轉(zhuǎn)入第一代幣,并從流動(dòng)性池中獲取第二代幣的兩條函數(shù)調(diào)用,所述第四復(fù)合元素指示存在通過同一參與方向流動(dòng)性池中轉(zhuǎn)入第三代幣,并從流動(dòng)性池中獲取流動(dòng)性池代幣的兩條函數(shù)調(diào)用。
19、在一種可能的實(shí)施方式中,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,包括:
20、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義中包括的第三元素和第四元素,確定所述多個(gè)函數(shù)調(diào)用中是否存在用于代幣支付的第四函數(shù)調(diào)用和用于代幣支付的第五函數(shù)調(diào)用,所述第四函數(shù)調(diào)用的調(diào)用順序在所述第五函數(shù)調(diào)用之前,所述第四函數(shù)調(diào)用和所述第五函數(shù)調(diào)用的發(fā)起方和接受方相反、代幣種類和代幣金額均不同,所述第四函數(shù)調(diào)用的接受方和所述第五函數(shù)調(diào)用的發(fā)起方為相同的流動(dòng)性池;
21、若所述多個(gè)函數(shù)調(diào)用中存在所述第四函數(shù)調(diào)用和第五函數(shù)調(diào)用,則確定所述第五函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第四函數(shù)調(diào)用和第五函數(shù)調(diào)用的第三復(fù)合元素。
22、在一種可能的實(shí)施方式中,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,包括:
23、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義中包括的第三元素、第四元素和第五元素,確定所述多個(gè)函數(shù)調(diào)用中是否存在用于代幣支付的第六函數(shù)調(diào)用和用于代幣生成的第七函數(shù)調(diào)用,所述第六函數(shù)調(diào)用的調(diào)用順序在所述第七函數(shù)調(diào)用之前,所述第六函數(shù)調(diào)用和所述第七函數(shù)調(diào)用的發(fā)起方和接受方相反,所述第六函數(shù)調(diào)用的接受方和所述第七函數(shù)調(diào)用的發(fā)起方為相同的流動(dòng)性池,所述第七函數(shù)調(diào)用的代幣種類為所述流動(dòng)性池的流動(dòng)性池代幣;
24、若所述多個(gè)函數(shù)調(diào)用中存在所述第六函數(shù)調(diào)用和第七函數(shù)調(diào)用,則確定所述第七函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第六函數(shù)調(diào)用和第七函數(shù)調(diào)用的第四復(fù)合元素。
25、在一種可能的實(shí)施方式中,根據(jù)所述交易語義和所述復(fù)雜語義,確定是否存在通過所述目標(biāo)交易施行預(yù)定攻擊的風(fēng)險(xiǎn),包括:
26、根據(jù)所述交易語義和所述復(fù)雜語義,確定所述多個(gè)函數(shù)調(diào)用中是否存在第五函數(shù)調(diào)用、第七函數(shù)調(diào)用和第九函數(shù)調(diào)用,所述第九函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于第八函數(shù)調(diào)用和第九函數(shù)調(diào)用的第三復(fù)合元素,所述第五函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于第四函數(shù)調(diào)用和第五函數(shù)調(diào)用的第四復(fù)合元素,所述第七函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于第六函數(shù)調(diào)用和第七函數(shù)調(diào)用的第三復(fù)合元素,所述第九函數(shù)調(diào)用在所述第五函數(shù)調(diào)用之前,所述第五函數(shù)調(diào)用在所述第七函數(shù)之前,所述第四函數(shù)調(diào)用、第六函數(shù)調(diào)用和第八函數(shù)調(diào)用的發(fā)起方為相同的流動(dòng)性池的發(fā)起方相同,所述第五函數(shù)調(diào)用、第七函數(shù)調(diào)用和第九函數(shù)調(diào)用的發(fā)起方為相同的流動(dòng)性池;
27、若所述多個(gè)函數(shù)調(diào)用中存在所述第五函數(shù)調(diào)用、第七函數(shù)調(diào)用和第九函數(shù)調(diào)用,則確定存在通過所述目標(biāo)交易施行間接控制攻擊的風(fēng)險(xiǎn)。
28、在一種可能的實(shí)施方式中,所述多個(gè)第一語義元素包括第一元素、第三元素,所述第一元素指示調(diào)用的函數(shù)名稱、函數(shù)調(diào)用的發(fā)送方和接收方,所述第一元素還指示函數(shù)調(diào)用的參數(shù),所述第三元素指示函數(shù)調(diào)用的順序;
29、所述多個(gè)第二語義元素,包括第五復(fù)合元素,所述第五復(fù)合元素指示存在其中一條函數(shù)調(diào)用的調(diào)用參數(shù)中包含另一個(gè)函數(shù)調(diào)用的調(diào)用參數(shù)的兩條函數(shù)調(diào)用。
30、在一種可能的實(shí)施方式中,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,包括:
31、根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義中包括的第一元素、第三元素,確定所述多個(gè)函數(shù)調(diào)用中是否存在第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用,所述第十函數(shù)調(diào)用的調(diào)用順序在所述第十一函數(shù)調(diào)用之前,所述第七函數(shù)調(diào)用的調(diào)用參數(shù)包括所述第八函數(shù)調(diào)用的調(diào)用參數(shù);
32、若所述多個(gè)函數(shù)調(diào)用中存在所述第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用,則確定所述第十一函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用的第五復(fù)合元素。
33、在一種可能的實(shí)施方式中,所述多個(gè)第一語義元素還包括第六元素,所述第六元素指示調(diào)用的函數(shù)為預(yù)設(shè)的敏感函數(shù);
34、根據(jù)所述交易語義和所述復(fù)雜語義,確定是否存在通過所述目標(biāo)交易施行預(yù)定攻擊的風(fēng)險(xiǎn),包括:
35、根據(jù)所述交易語義和所述復(fù)雜語義,確定所述多個(gè)函數(shù)調(diào)用中是否存在符合預(yù)定條件的第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用,所述預(yù)定條件包括所述第十一函數(shù)調(diào)用的復(fù)雜語義中包括對(duì)應(yīng)于所述第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用的第五復(fù)合元素,第十一函數(shù)調(diào)用的交易語義中包括第六元素;
36、若所述多個(gè)函數(shù)調(diào)用中存在符合所述預(yù)定條件的第十函數(shù)調(diào)用和第十一函數(shù)調(diào)用,則確定存在通過所述目標(biāo)交易施行調(diào)用注入攻擊的風(fēng)險(xiǎn)。
37、根據(jù)第二方面,提供了一種區(qū)塊鏈攻擊檢測(cè)裝置,所述裝置包括:
38、交易語義確定單元,配置為,獲取目標(biāo)區(qū)塊鏈上目標(biāo)交易的交易日志,根據(jù)所述交易日志中的多個(gè)函數(shù)調(diào)用對(duì)應(yīng)的信息、以及包含預(yù)設(shè)的多個(gè)第一語義元素的第一語義集,確定所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義,所述交易語義中包括多個(gè)第一語義元素中的一到多個(gè);
39、復(fù)雜語義確定單元,配置為,根據(jù)所述多個(gè)函數(shù)調(diào)用分別對(duì)應(yīng)的交易語義、以及包含預(yù)設(shè)的多個(gè)第二語義元素的第二語義集,確定出所述多個(gè)函數(shù)調(diào)用中分別包含的復(fù)雜語義,所述復(fù)雜語義包括多個(gè)第二語義元素中的一到多個(gè),所述第二語義元素根據(jù)至少兩個(gè)函數(shù)調(diào)用中的第一語義元素而確定;
40、風(fēng)險(xiǎn)檢測(cè)單元,配置為,根據(jù)所述交易語義和所述復(fù)雜語義,確定是否存在通過所述目標(biāo)交易施行預(yù)定攻擊的風(fēng)險(xiǎn)。根據(jù)第三方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行第一方面所述的方法。
41、根據(jù)第四方面,提供了一種計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)第一方面所述的方法。利用以上各個(gè)方面中的方法、裝置、計(jì)算設(shè)備、存儲(chǔ)介質(zhì)中的一個(gè)或多個(gè),可以顯著提高區(qū)塊鏈攻擊的檢測(cè)效果,以及降低檢測(cè)區(qū)塊鏈攻擊所消耗的數(shù)據(jù)成本。