Information Exposure Checker
Paul Muntean, Alexander Malkis · 2016
This work package presents an information exposure checker which is designed to detect infor- mation exposures in C/C++ code. Information flow vulnerabilities in C code are detrimental as they can cause data leakages or unexpected program behavior. Detecting such vulnerabilities with static code analysis techniques is challenging because of complex control and data flow. Static analysis tools used for detecting information exposure bugs can help software engineers detecting bugs without introducing run-time overhead. Such tools can make the detection of information-flow bugs faster and cheaper without having to provide user input in order to trigger the bug detection. We present a bug-detection tool for detecting information exposure bugs in C/C++ programs. Our tool is context-sensitive and uses static code analysis for bug detection, which was developed in the SIBASE working package 5.2.1. We developed our bug finding tool as an Eclipse plugin in order to easily integrate it in software development work flows. Textual annotations introduce information flow constraints into code as described in the SIBASE working package 5.1.2. The constraints are checked later by our tool. The bug reports provide user friendly visualizations that can be easily traced back to the location where the bug was detected. We discuss one static analysis approach for detecting information exposure bugs and relate briefly the usability of our bug testing tool to empirical research. We conducted an empirical evaluation based on 90 test programs which were selected from the National Institute of Standards and Technology (NIST) Juliet test suite for C/C++ code. We reached a true-positive coverage of 94.6% in ≈121 seconds for the test programs . Our results show that our approach is effective and can be further applied to detection of different types of vulnerabilities. This report is based on publications listed in Chapter 6.