Solving real world security problems : hacking and protection (2)

Researchers are always looking for better ways to improve their vulnerabilities detection and analysis workflow. A way of improving static and dynamic analysis is explored here: to build highly contextualized databases of knowledge about a software codebase – everything from its code structure, to i...

Full description

Saved in:
Bibliographic Details
Main Author: Tan, Joshua Jun Ming
Other Authors: Liu Yang
Format: Final Year Project
Language:English
Published: 2018
Subjects:
Online Access:http://hdl.handle.net/10356/74867
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-74867
record_format dspace
spelling sg-ntu-dr.10356-748672023-03-03T20:44:20Z Solving real world security problems : hacking and protection (2) Tan, Joshua Jun Ming Liu Yang School of Computer Science and Engineering DRNTU::Engineering Researchers are always looking for better ways to improve their vulnerabilities detection and analysis workflow. A way of improving static and dynamic analysis is explored here: to build highly contextualized databases of knowledge about a software codebase – everything from its code structure, to its commit history, to its function calls. This project seeks to contribute to the knowledge base by discovering which functions have many calls to other functions, which are those that are most frequently called, and which are the isolated ones. Armed with this information, researchers can easily identify which functions/files are affected when a single statement is modified. By precisely narrowing down the number of functions/files to analyse (with static/dynamic analysis tools), time and other computational resources are conserved. This project is composed of three major components: the Code Parser, Patch Analyser, and Graph Builder. The Patch Analyser parses patch files and determines the files and functions which have been modified. The Code Parser comes up with a full listing of the function calls and highlights certain interesting statements (e.g. casting operations) that are invoked within these functions. The Graph Builder then translates this to a function call graph which is added to the knowledge base. This graph can be queried manually or programmatically to draw new insights regarding the structure of the software. A total of 192 patch files for the Linux kernel were analysed. These patches are significant in that they are mostly classified as in the “Medium” to “High” severity range. These were used to generate the training and test sets for evaluation of the neural network-driven prediction model. Future work could involve selecting other high-variance features from the code repository to improve the prediction model and help to contribute to the swifter discovery of genuine vulnerabilities in software. Bachelor of Engineering (Computer Science) 2018-05-24T07:09:38Z 2018-05-24T07:09:38Z 2018 Final Year Project (FYP) http://hdl.handle.net/10356/74867 en Nanyang Technological University 43 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering
spellingShingle DRNTU::Engineering
Tan, Joshua Jun Ming
Solving real world security problems : hacking and protection (2)
description Researchers are always looking for better ways to improve their vulnerabilities detection and analysis workflow. A way of improving static and dynamic analysis is explored here: to build highly contextualized databases of knowledge about a software codebase – everything from its code structure, to its commit history, to its function calls. This project seeks to contribute to the knowledge base by discovering which functions have many calls to other functions, which are those that are most frequently called, and which are the isolated ones. Armed with this information, researchers can easily identify which functions/files are affected when a single statement is modified. By precisely narrowing down the number of functions/files to analyse (with static/dynamic analysis tools), time and other computational resources are conserved. This project is composed of three major components: the Code Parser, Patch Analyser, and Graph Builder. The Patch Analyser parses patch files and determines the files and functions which have been modified. The Code Parser comes up with a full listing of the function calls and highlights certain interesting statements (e.g. casting operations) that are invoked within these functions. The Graph Builder then translates this to a function call graph which is added to the knowledge base. This graph can be queried manually or programmatically to draw new insights regarding the structure of the software. A total of 192 patch files for the Linux kernel were analysed. These patches are significant in that they are mostly classified as in the “Medium” to “High” severity range. These were used to generate the training and test sets for evaluation of the neural network-driven prediction model. Future work could involve selecting other high-variance features from the code repository to improve the prediction model and help to contribute to the swifter discovery of genuine vulnerabilities in software.
author2 Liu Yang
author_facet Liu Yang
Tan, Joshua Jun Ming
format Final Year Project
author Tan, Joshua Jun Ming
author_sort Tan, Joshua Jun Ming
title Solving real world security problems : hacking and protection (2)
title_short Solving real world security problems : hacking and protection (2)
title_full Solving real world security problems : hacking and protection (2)
title_fullStr Solving real world security problems : hacking and protection (2)
title_full_unstemmed Solving real world security problems : hacking and protection (2)
title_sort solving real world security problems : hacking and protection (2)
publishDate 2018
url http://hdl.handle.net/10356/74867
_version_ 1759854430640930816