Giter Site home page Giter Site logo

fortress-security-audit-engine's Introduction

Fortress Live Security Audit Engine

Fortress Live Security Audit runs a real-time security audit on deployed smart contracts of DeFi app when a threat pattern gets detected by Fortress Threat Detection and Response Engine. Security Audit consists of checking vulnerabilities of smart contracts and logic errors related to past security incidents of DeFi apps. The engine is built on Slither. Requires Solc-select to quickly switch between Solidity compiler versions.

How to install

Fortress requires Python 3.6+ and solc, the Solidity compiler.

Prequisites

Install

git clone https://github.com/crytic/fortress.git && cd fortress
python3 setup.py install (make sure Solc Select is installed)

Manually run security audit to a contract hosted on Etherscan

fortress 0x7F37f78cBD74481E593F9C737776F7113d76B315

Live run security audit to a contract of DeFi app

Fortress Threat Detection and Response mechanism runs the engine live. Read README on Threat Detection and Response Engine(https://github.com/fortressfoundation/fortress-tdr-engine) repo for details.

Detectors

Num Detector What it Detects Impact Confidence
1 name-reused Contract's name reused High High
2 rtlo Right-To-Left-Override control character is used High High
3 shadowing-state State variables shadowing High High
4 suicidal Functions allowing anyone to destruct the contract High High
5 uninitialized-state Uninitialized state variables High High
6 uninitialized-storage Uninitialized storage variables High High
7 arbitrary-send Functions that send ether to arbitrary destinations High Medium
8 controlled-delegatecall Controlled delegatecall destination High Medium
9 reentrancy-eth Reentrancy vulnerabilities (theft of ethers) High Medium
10 erc20-interface Incorrect ERC20 interfaces Medium High
11 erc721-interface Incorrect ERC721 interfaces Medium High
12 incorrect-equality Dangerous strict equalities Medium High
13 locked-ether Contracts that lock ether Medium High
14 shadowing-abstract State variables shadowing from abstract contracts Medium High
15 tautology Tautology or contradiction Medium High
16 boolean-cst Misuse of Boolean constant Medium Medium
17 constant-function-asm Constant functions using assembly code Medium Medium
18 constant-function-state Constant functions changing the state Medium Medium
19 divide-before-multiply Imprecise arithmetic operations order Medium Medium
20 reentrancy-no-eth Reentrancy vulnerabilities (no theft of ethers) Medium Medium
21 tx-origin Dangerous usage of tx.origin Medium Medium
22 unchecked-lowlevel Unchecked low-level calls Medium Medium
23 unchecked-send Unchecked send Medium Medium
24 uninitialized-local Uninitialized local variables Medium Medium
25 unused-return Unused return values Medium Medium
26 shadowing-builtin Built-in symbol shadowing Low High
27 shadowing-local Local variables shadowing Low High
28 void-cst Constructor called not implemented Low High
29 calls-loop Multiple calls in a loop Low Medium
30 reentrancy-benign Benign reentrancy vulnerabilities Low Medium
31 reentrancy-events Reentrancy vulnerabilities leading to out-of-order Events Low Medium
32 timestamp Dangerous usage of block.timestamp Low Medium
33 assembly Assembly usage Informational High
34 boolean-equal Comparison to boolean constant Informational High
35 deprecated-standards Deprecated Solidity Standards Informational High
36 erc20-indexed Un-indexed ERC20 event parameters Informational High
37 low-level-calls Low level calls low-level-calls Informational High
38 naming-convention Conformance to Solidity naming conventions Informational High
39 pragma If different pragma directives are used Informational High
40 solc-version Incorrect Solidity version Informational High
41 unused-state Unused state variables Informational High
42 reentrancy-unlimited-gas Reentrancy vulnerabilities through send and transfer Informational Medium
43 too-many-digits Conformance to numeric notation best practices Informational Medium
44 constable-states State variables that could be declared constant Optimization High
45 external-function Public function that could be declared as external Optimization High
40 solc-version Incorrect Solidity version Informational High
41 unused-state Unused state variables Informational High
42 reentrancy-unlimited-gas Reentrancy vulnerabilities through send and transfer Informational Medium
43 too-many-digits Conformance to numeric notation best practices Informational Medium
44 constable-states State variables that could be declared constant Optimization High
45 external-function Public function that could be declared as external Optimization High

NOTE: This is Pre-Alpha Release. Development for stable alpha release is being done and this may work unstable at the moment.

fortress-security-audit-engine's People

Contributors

canercak avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.