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...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
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 |