如果你對區塊鏈技術感興趣的話,可能聽說過很多攻擊者利用程序代碼中的漏洞而導致的大量資金被盜事件。例如,2016 年臭名昭著的 DAO 攻擊事件,攻擊者利用一個名叫「重入」的漏洞超額提取了他們原本所能提取的資金。另一個更近期的事件是閃電貸攻擊,發生于 2022 年 4 月 17 日,造成 1.82 億美元的資金損失。雖然所有攻擊都源于底層源代碼的安全漏洞,但好消息是現在已經有能夠檢測此類漏洞的程序分析技術。在接下去的幾篇博文中,我們會解釋程序分析是什么,以及它如何幫助在部署前捕獲安全漏洞。
程序分析指的是一類用于檢測程序中安全漏洞的技術。程序分析有兩種主要形式,動態和靜態。動態程序分析的目標是通過執行程序來檢測問題,而靜態程序分析則無需運行程序本身就可以對源代碼進行分析。然而,在這些技術之中,只有靜態分析能夠確保程序中不存在漏洞。相反,不同于靜態分析,動態分析能證明問題的存在,它并不能夠證明漏洞并不存在。
聲音 | 余弦:區塊鏈技術或可解決某些信息安全與網絡安全問題:慢霧科技聯合創始人余弦發微博稱:“區塊鏈技術運用好的話,可以解決某些信息安全與網絡安全問題。但注意了,是運用好的話,而且只是解決某些,比如某些隱私、某些資產安全、某些身份認證、某些權限控制、某些安全激勵。否則,一個未久經考驗的區塊鏈技術,自身都難保安全,還保護其它? ????”[2019/7/9]
乍一看,靜態分析聽起來似乎很神秘:表面看來,靜態分析似乎違反了一個被總結為萊斯定理「Rice's theorem」的基本原則,該定理聲稱程序的每一個非平凡性質都是不可判定的。在此,語義屬性是關于程序行為的屬性(與語法屬性不同),而非平凡性質是指只有某些程序擁有而其他程序沒有的性質。與我們手頭話題更相關的是,安全漏洞的存在是非平凡性質的一個典型例子。因此,關于「這個程序是否存在安全漏洞」這一問題,萊斯定理告訴我們沒有一個算法能夠終結并準確回答這一問題。
聲音 | IBM 首席區塊鏈專家:區塊鏈面臨最大的挑戰是安全問題:IBM Waston研究中心首席區塊鏈科學家Donna Dillenberger在接受采訪時表示,區塊鏈技術目前面臨最大的挑戰是安全問題。這些安全問題主要來自四個方面:系統管理員的攻擊風險、未經加密處理的信息、沒有妥善管理的密鑰匙、以及區塊鏈的自我防御措施。[2018/11/12]
那么,靜態分析的可行性源自哪里呢?答案藏于以下的觀察:沒錯,沒有一個算法能夠準確地給出是或否,但可以有一個算法在程序有安全漏洞時總是會回答「是」,在程序沒有安全漏洞時算法有時可能也會回答「是」。換句話說,只要我們愿意容忍一些誤報,我們就可以繞過賴斯定理和不可判定性。
動態 | 騰訊安全:上半年區塊鏈因安全問題損失超27億美元:據騰訊科技消息,騰訊安全聯合知道創宇近日發布《2018上半年區塊鏈安全報告》。《報告》顯示,基于區塊鏈加密數字貨幣引發的安全問題來源于區塊鏈自身機制安全、生態安全和使用者安全三個方面,這三方面原因造成的經濟損失分別為12.5億、14.2億和0.56億美元,共計高達27億美元。總的趨勢是,隨著數字虛擬貨幣參與者的增加,各種原因導致的安全事件也顯著增加。[2018/8/6]
讓我們以高一維度的視角來看看靜態分析是如何運作的。靜態分析的基本原理是將程序所處的狀態集合進行過近似「over-approximate」。我們將程序狀態視為從變量到值的映射。一般來說,不存在一個算法能夠明確也許是執行某一程序引起的確切程序狀態集。但可以近似該集合,如下圖所示:
Openledger公告:交易所安全問題已解決 將啟動賠償機制 :Openledger在官網發表公告稱,交易所目前已重新掌握所有的登陸域名,為了最大程度保證安全性,Openledger還將安全證書由SSL級升級到EV級,這是目前的最高安全證書。此外Openledger還推出了交易所被黑期間遭受損失用戶的賠償計劃:1.用戶可在交易所官網主題欄中創建一個卡簽,標注“我的賬戶被泄露”,在其中盡可能多地詳述情況,在2018年6月22日前提交(包括22日);2.如果團隊確認用戶的賬戶被入侵且資金被盜,賠償計劃將于2018年7月2日啟動。請注意,所有的事件都將被單獨調查;3.Openledger將直接與項目參與方聯系,隨時更新賠償程序的進程。[2018/6/14]
此處,藍色的不規則形狀對應在執行某些程序時可能出現的實際狀態集,紅色區域對應預示錯誤或安全漏洞的「壞狀態」。由于不可判定性,永遠沒有一個算法能夠準確表明藍色區域到底是什么,但是我們能設計一個算法以系統性的方式過近似這個藍色區域,如上面常規綠色區域所示。只要綠色和紅色的交集為空,我們就有證據證明程序沒有做壞事。然而,如果我們的過近似不夠不準確,可能會使得紅色區域重疊,即使藍色和紅色區域的交集依舊為空,如下圖所示:
這種情況會導致所謂的「誤報」,由于分析與真實問題不相應而報告的虛假錯誤。一般而言,靜態分析的圣杯是構造過近似,即 (1)過近似足夠準確因此我們在實際中不會獲得很誤報 (2)過近似的計算足夠有效率,因此分析可擴展到我們所關心的現實世界的程序。
附帶說明一下,還可以設計靜態分析算法來近似如下所示的程序行為:
在此情況下,綠色區域(通過靜態分析計算)包含在藍色區域內(表示實際狀態),和另一種方式正好相反。這種分析是不可靠的,意味著可能會漏掉真正的程序錯誤:正如我們在上圖所看到的那樣,綠色和紅色的交集為空,因此即使程序真的存在漏洞,分析也不會報告問題。這會導致所謂的假陰性,真正的漏洞被靜態分析給遺漏了。
大體來說,如果我們想獲得可證明的安全性,我們會想要可靠的從來不會有誤報的靜態分析器,同時還需要足夠精確,在實踐時不會報告太多誤報。然而,好消息是,幾十年的正統研究表明設計這樣的靜態分析器有可能的。下篇博文,我們會更詳細地介紹靜態分析器具體是如何運作的!
程序分析是一種有效的能夠捕捉各種程序中安全漏洞的技術,包括區塊鏈應用程序。此外,可靠的靜態分析器的過近似程序行為能確保整個類別中不存在漏洞。
撰文:Veridise
編譯:CCC
Tags:區塊鏈GERLEDPEN區塊鏈騙局曝光騙局BABYCRAZYTIGER價格ledger錢包官網上不去APENFT幣最新銷毀
頭條 ▌日本央行:央行數字貨幣研發將參考瑞典模式4月22日消息,近日,日本央行支付系統部門負責人Kazushige Kamiyama在接受采訪時表示.
1900/1/1 0:00:00頭條 ▌灰度致信美國SEC 再次爭取其批準GBTC轉換為比特幣ETF4月23日消息,Grayscale(灰度)再次嘗試獲得美國SEC的批準,以將GBTC轉變為在華爾街主要交易所進行交易的基金.
1900/1/1 0:00:00風乍起,吹皺NFT市場一池春水。不吹不黑,接下來的thread,我將基于過去幾天對@ensdomain 數字域名市場的深入觀察,并結合@duneanalytics 上的鏈上數據的客觀反應,談一談.
1900/1/1 0:00:00原文作者:Jeremy Ong;Duncan Reucassel 貢獻者:Demo 審核者:DAOctor.
1900/1/1 0:00:00本文將復盤全球領先的智能合約平臺以太坊截至 2022 年 3 月 31 日的第一季度財務業績。 01. 關鍵成果 這些數據比較了以太坊在 2021 年第一季度和 2022 年第一季度的表現.
1900/1/1 0:00:004月25日,零壹財經?零壹智庫聯合《陸家嘴》雜志發布了《生態重塑:區塊鏈+隱私計算一線實踐報告》.
1900/1/1 0:00:00