Skip to content

Latest commit

 

History

History
118 lines (77 loc) · 2.35 KB

readme.md

File metadata and controls

118 lines (77 loc) · 2.35 KB

Security tools usage

Akropolis Delphi package provides abilities to run security tools upon its code for continuous development. Tools included:

Before launching any of the utilities, verify that you have installed all dependencies for the project:

npm install

1. Flattener

The project includes script for flattening Delphi smart contracts. Script is built with the usage of Brownie framework APIs.

Run:

npm run sec:flatten

Verify, that flattened files has appeared in the the flattened directory.

2. Slither

Prerequisites

The first step is to install Slither (if it is not installed yet). Full recommendations for installation can be found on Slither's GitHub.

Dependency: python3 version 3.6 or greater, python3-dev.

To install the tool run the command:

pip3 install slither-analyzer

Launch

  1. Flatten necessary contracts:
npm run sec:flatten
  1. Run script for Slither launching:
npm run sec:slither

Detectors' settings can be corrected in Slither's config file

3. Echidna

Test contracts for Echidna with defined properties to be tested are located in contracts/test/echidna directory. Configuration file contains necessary settings.

Prerequisites

To start the analysis you need to load echidna binary file in the root directory of the project: Run the script:

npm run sec:load-echidna

Also, be awared, that Echidna requires Slither to be installed as well. The main restirction: Echidna does not work correctly on Windows.

  1. Flatten necessary echidna contracts:
npm run sec:flatten-echidna
  1. Compile all contracts:
npm run compile
  1. Run the analyzer:
npm run sec:echidna

4. Manticore

Prerequisites

Install Manticore:

pip3 install "manticore[native]"

Launch

  1. Flatten necessary contracts:
npm run sec:flatten
  1. Compile the flattened files:
npx truffle compile
  1. Run the analyzer
manticore flattened/VaultSavings.sol --contract VaultSavings