五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

論文解讀——Securify: Practical Security Analysis of Smart Contracts

2022-05-26 13:21 作者:安靜的禿頭怪  | 我要投稿


完整流程

Securify分三個(gè)步驟進(jìn)行:

  1. 將合約的EVM字節(jié)碼反編譯成靜態(tài)的單一賦值形式( SSA——static-single assignment);

  2. 將SSA形式的代碼轉(zhuǎn)為基本事實(shí)(base facts)并推斷關(guān)于合約的其他語(yǔ)義事實(shí)(semantic facts);

  3. 匹配由特定領(lǐng)域語(yǔ)言(DSL)編寫的各種安全屬性,輸出對(duì)應(yīng)模式并整合成安全報(bào)告。

Securify流程示意圖

Securify檢測(cè)結(jié)果分類圖

安全模式匹配結(jié)果分為真陽(yáng)性(violation)、假陽(yáng)性、真陰性(compliance、no violation)、假陰性。對(duì)于真陽(yáng)性與真陰性Securify都能直接給出準(zhǔn)確結(jié)果,而對(duì)于假陽(yáng)性與假陰性Securify只能在報(bào)告中給出警告標(biāo)識(shí)(warning),之后通過額外人工或其他檢測(cè)方式繼續(xù)識(shí)別確定。

SSA

先講講SSA是什么東西。靜態(tài)單一賦值形式(SSA)是中間表示(IR)的屬性,它要求每個(gè)變量只分配一次,并且每個(gè)變量在使用之前定義。原始IR中的現(xiàn)有變量被拆分為版本,新變量通常由原始名稱用下標(biāo)表示,以便每次定義都有自己的版本。(注:在本方案中部分操作碼如push、dup等會(huì)被消除)

base fact

當(dāng)EVM字節(jié)碼反編譯成SSA形式的中間表示之后,我們需要將其轉(zhuǎn)換成基本事實(shí)。

表示形式:一種Datalog語(yǔ)言(stratified Datalog)

上圖即一個(gè)基本事實(shí)的表示,其中instr是指令名稱,L是指令標(biāo)簽(CFG中的基本塊),Y是存儲(chǔ)指令結(jié)果的指令(如果有的話),Xn是參數(shù)。

semantic fact

接著我們用基本事實(shí)推斷出語(yǔ)義事實(shí)。

在智能合約的語(yǔ)義分析中,我們通常需要根據(jù)兩種依賴關(guān)系來推斷語(yǔ)義事實(shí)(流控制依賴+數(shù)據(jù)控制依賴)。

流控制依賴的兩種語(yǔ)義事實(shí)

MayFollow(L_%7B1%7D%20%2CL_%7B2%7D)意思是存在某條路徑使得L1基本塊流向L2基本塊。

MustFollow(L_%7B1%7D%2CL_%7B2%7D%20%20)意思是對(duì)任何路徑都是L1基本塊流向L2基本塊。

數(shù)據(jù)控制依賴的三種語(yǔ)義事實(shí)

MayDepOn(Y%2CT)意思是數(shù)據(jù)T修改了,數(shù)據(jù)Y也可能跟著被修改。

Eq(Y%2CT)意思是數(shù)據(jù)Y和數(shù)據(jù)T是相等的。

DetBy(Y%2CT)意思是數(shù)據(jù)T不同的取值會(huì)導(dǎo)致數(shù)據(jù)Y的取值不同。

語(yǔ)義事實(shí)推斷規(guī)則1
語(yǔ)義事實(shí)推斷規(guī)則2
語(yǔ)義事實(shí)推斷規(guī)則3

注:

  1. 使用通配符(_)來代替在規(guī)則中只出現(xiàn)一次的變量

  2. isConst、Taint、join是其他謂詞表達(dá),與op、mload、mstore、goto同樣屬于基本事實(shí)的表達(dá)。

trace、property

trace解釋
property解釋

結(jié)論:

trace:指區(qū)塊鏈從一個(gè)老狀態(tài)更新到新狀態(tài),狀態(tài)包括存儲(chǔ)和內(nèi)存狀態(tài)、堆棧狀態(tài)、事務(wù)信息和塊信息。

property:指在trace上的一種關(guān)系,用一階邏輯規(guī)則定義。

DSL(領(lǐng)域?qū)S谜Z(yǔ)言domain specific language)

表示形式:一個(gè)由DSL表示的BNF合取范式
兩種安全模式的表達(dá)
  • some+BNF合取范式:一部分路徑符合條件

  • all+BNF合取范式:全部路徑符合條件

security patterns of properties

7種屬性及其安全模式

pattern classification

安全模式分類解釋
  • instruction patterns:指令模式,即由某條指令導(dǎo)致違反該安全屬性(例如上圖中后6個(gè)安全模式)。

  • contract pattern:合約模式,即因?yàn)檎麄€(gè)合約的整體原因?qū)е逻`反該安全屬性(很難找出一個(gè)單一的指令對(duì)其違反負(fù)責(zé),例如上圖中第一個(gè)安全模式)。

Securify2.0

https://github.com/eth-sri/securify2

文章傳送:https://arxiv.org/pdf/1806.01143.pdf


論文解讀——Securify: Practical Security Analysis of Smart Contracts的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
肃北| 乌拉特中旗| 逊克县| 黑河市| 库车县| 奈曼旗| 郸城县| 工布江达县| 宜州市| 锦屏县| 鹤庆县| 丽江市| 措勤县| 榆中县| 固原市| 浪卡子县| 太仓市| 上高县| 尼木县| 沐川县| 英德市| 吴川市| 婺源县| 永胜县| 牡丹江市| 虎林市| 上高县| 景泰县| 独山县| 安岳县| 靖安县| 章丘市| 安乡县| 静安区| 穆棱市| 博爱县| 寿阳县| 佛冈县| 惠水县| 交口县| 桂平市|