這是Securefy的版本,不再支持,並且將不再支持。請使用Searify v2.0。

Searefify是以太坊基金會和鏈安全支持的以太坊智能合約的安全掃描儀。 Searify背後的核心研究是在蘇黎世Eth冰中心進行的。

它具有智能合約中常見的廣泛安全模式列表:
該項目旨在成為所有以太坊安全社區的開放平台。為了提出新的模式,要自願進行測試或貢獻新的模式,請通過我們的Discord組取得聯繫。
souffle二進制,則可以崩潰。在寫作時,Windows上不可用蛋suflé,因此也不應該在Windows上運行Searify。solc二進製文件必須能夠使用堅固文件作為輸入。 Searify假定為給定文件安裝了正確的版本。 solc可以在這裡提供。構建:
./gradlew jar在堅固文件上運行可靠:
java -jar build/libs/securify.jar -fs src/test/resources/solidity/transaction-reordering.sol在Pysolc.py腳本(需要Py-solc)提供的解說輸出上運行可靠:
java -jar build/libs/securify.jar -co out.json在某些EVM二進制中運行(例如由solc生產):
java -jar build/libs/securify.jar -fh src/test/resources/solidity/transaction-reordering.bin.hex查看選項的完整列表:
java -jar build/libs/securify.jar -h運行測試(使用Junit4):
./gradlew test Python包裝紙有助於處理solc和truffle 。需求在要求中。 txt文件。 Dockerfile可用作設置本地環境以使用此包裝器的參考。
該安裝應在Debian衍生品或露天支持的任何其他平台上很簡單。
對於不需要蛋奶酥的快速演示,您可以使用Docker。
構建Docker圖像:
docker build . -t securify在一個小例子上運行可靠:
docker run securify您可以通過指定登錄卷來更改分析的文件,然後將包含的每個*.sol文件通過searify進行處理:
docker run -v $( pwd ) /folder_with_solidity_files:/project securify添加一個--truffle標誌應允許Securefy通過已安裝依賴項的松露項目運行(因此,如果需要,請在需要之前npm install )。沒有此標誌,該項目將使用solc編譯。添加一個-h以獲取選項的完整列表。特別是,如果用戶想從松露中接收彙編信息,則應添加-v標誌。
如果要接收JSON輸出,Docker支持一個--json標誌,將抑制漂亮的輸出並返回JSON。確保添加-q標誌,如果不顯示進度信息,則導致純JSON輸出。匹配的行索引的索引是基於0的,這意味著與i的匹配是指i+1線是匹配的。特別是,第一行的索引為0。
可以通過test.py文件進行基本端到端測試:
python3 test . py可以使用Pipenv安裝要求:
pipenv install或使用pip :
pip install -r requirements.txt這些測試比較了通過Searify提供的當前JSON輸出與一些過去的輸出,並報告兩者之間的差異。
您可以在項目中添加以下.travis.yml以在新提交中運行:
services:
- docker
before_install:
- docker pull chainsecurity/securify
script:
- docker run -v $(pwd):/project chainsecurity/securify
這應該允許安全運行在松露項目中已經安裝了依賴項(因此,如果需要,請在需要之前npm install )。
輸出鬆散地遵循叮噹風格。僅報告警告和漏洞。如果也希望獲得合規性信息,請在Docker中使用--json標誌,或Java可執行文件上的-co標誌以json格式獲取所有分析信息。
參見貢獻。
加入我們的不和諧與其他用戶討論。
儘管Securefify定期用於幫助鏈接審核,但仍有錯誤,包括:
computeBranches是遞歸的,因此會拋出stackoverflowerror異常。在大多數情況下,使用java的-Xss選項,例如java -Xss1G -jar ...solc獲得二進制合同) 通過靜態分析智能合約的EVM代碼,以推斷有關合同的重要語義信息(包括控制流和數據流的事實)。使用可擴展的數據求解器Soufflé完全自動化此步驟。然後,確保檢查被推論的事實以發現安全性違規或證明與安全相關的說明的遵守情況。
Securefy掃描儀背後的完整技術細節可在研究論文中獲得。