Static Analysis
- Some approaches
- Automatic testing
- Code inspection
- Static Analysis combines best of both of the above
- SAST = Static Application Security Testing
- Rice’s Theorem — Static Analysis can’t find all the paths for nontrivial property.
- Either over-estimation or under-estimation of behaviors of program.
- Sound vs Complete Analysis
Flow Analysis
- Many vulnerabilities are caused by untrusted inputs.
- Taint Analysis — from source to sink
- Know where the sinks are
- Mark user inputs as tainted