trailofbits / vast

VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
https://trailofbits.github.io/vast/
Apache License 2.0
397 stars 25 forks source link

Configurable taint analysis #193

Open xlauko opened 2 years ago

xlauko commented 2 years ago

Design and create a taint analysis library on top of vast. It should be inter translation unit analysis.

We need to design API to query the user for possible points in other translation units.

pgoodman commented 2 years ago

Desirable features:

I think a data flow analysis may be a nice foundation, then tainting is built upon a data flow analysis. E.g. the tainting would be a layer on top, that could maintain per-path state, decide if a data flow step is accepted/rejected as a tainting step, etc.