Memory error prevention through static analysis and type systems
1University of Oulu, Faculty of Information Technology and Electrical Engineering, Information Processing Science
|Online Access:||PDF Full Text (PDF, 0.3 MB)|
|Persistent link:|| http://urn.fi/URN:NBN:fi:oulu-201905242071
Oulu : H. Hyyryläinen,
|Publish Date:|| 2019-06-03
|Thesis type:||Bachelor's thesis
Modern software is everywhere and much relies on it so it is important that it is secure and reliable. As humans, software developers make mistakes that may be really difficult to detect. In memory unsafe languages a large part of these mistakes are related to memory usage and management. In order to reduce the amount of bugs in software this thesis looks into using static analysis tools and other methods to automatically find where these mistakes are or alternatively preventing them altogether. This is done through a literature review. Unfortunately, static analysis results in many false positives that can take a long time for developers to sift through. For this reason many static analysis tools augment their usefulness by inserting dynamic, runtime checks in places where they are uncertain whether there is an error or not. One final approach, discussed in this thesis, for securing software memory usage, is to employ type systems or memory safe languages like Java that are designed so that the programmer is not allowed to access raw memory and make mistakes related to it. The large amount of checks that these kinds of languages must always do, result in a reduction in performance. As such all of these approaches have benefits and limitations regarding their use. The major findings were that much research has been done in static analysis tools that have managed to detect real problems. Many of the developed tools are unfortunately not available, and the ones that are available haven’t been updated in a long time or they require complicated setup reducing their usefulness.
© Henri Hyyryläinen, 2019. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.