Documentation
Ectopass is a tool detecting Spectre-V1 gadgets in source code.
What is Spectre-V1?
Current processor optimizations such as branch prediction or speculation are essential for performance but can break security by accidentally leaking data. See for example the Spectre attack.
An example of those is Spectre-V1 which is still hard to mitigate today and can have critical consequences by allowing the attacker to leak any address is memory. Because of that all software are at risk and not only cryptography libraries manipulating secrets.
How Ectopass works
Ectopass is implemented as an LLVM pass (hence the name). It can be integrated with any codebase which can be compiled to LLVM IR (C, C++, Rust, Swift, etc).
Ectopass performs a direct analysis of the Control Flow Graph of the program extended with speculative execution.
Existing solutions
The existing solutions are either impractical (like changing the hardware) or do not scale for big codebases (like SLH).
Ectopass can help pinpoint the exact files where vulnerabilities can be found and limit the scope of SLH to those files. Activating SLH to all files of a project (industry default) can be very time consuming.
Check out our benchmarks here!
Ectopass demo
On the front page you can try out Ectopass with a small C program. Ectopass will compile it to LLVM IR with:
clang-18 -emit-llvm -Og -g -S program.cAnd then analyze it.