An evaluation of graph representation of programs for malware detection and categorization using graph-based machine learning methods

dc.contributor.advisorChairperson, Graduate Committee: Clemente Izurietaen
dc.contributor.authorPearsall, Reese Andersenen
dc.date.accessioned2024-04-10T19:20:36Z
dc.date.accessioned2024-05-04T15:52:52Z
dc.date.available2024-04-10T19:20:36Z
dc.date.available2024-05-04T15:52:52Z
dc.date.issued2023en
dc.description.abstractWith both new and reused malware being used in cyberattacks everyday, there is a dire need for the ability to detect and categorize malware before damage can be done. Previous research has shown that graph-based machine learning algorithms can learn on graph representations of programs, such as a control flow graph, to better distinguish between malicious and benign programs, and detect malware. With many types of graph representations of programs, there has not been a comparison between these different graphs to see if one performs better than the rest. This thesis provides a comparison between different graph representations of programs for both malware detection and categorization using graph-based machine learning methods. Four different graphs are evaluated: control flow graph generated via disassembly, control flow graph generated via symbolic execution, function call graph, and data dependency graph. This thesis also describes a pipeline for creating a classifier for malware detection and categorization. Graphs are generated using the binary analysis tool angr, and their embeddings are calculated using the Graph2Vec graph embedding algorithm. The embeddings are plotted and clustered using K-means. A classifier is then built by assigning labels to clusters and the points within each cluster. We collected 2500 malicious executables and 2500 benign executables, and each of the four graph types is generated for each executable. Each is plugged into their own individual pipeline. A classifier for each of the four graph types is built, and classification metrics (e.g. F1 score) are calculated. The results show that control flow graphs generated from symbolic execution had the highest F1 score of the four different graph representations. Using the control flow graph generated from symbolic execution pipeline, the classifier was able to most accurately categorize trojan malware.en
dc.identifier.urihttps://scholarworks.montana.edu/handle/1/18088
dc.language.isoenen
dc.publisherMontana State University - Bozeman, College of Engineeringen
dc.rights.holderCopyright 2023 by FIRST MIDDLE LASTen
dc.subject.lcshComputer securityen
dc.subject.lcshMalware (Computer software)en
dc.subject.lcshMachine learningen
dc.subject.lcshGraphic methodsen
dc.titleAn evaluation of graph representation of programs for malware detection and categorization using graph-based machine learning methodsen
dc.typeThesisen
mus.data.thumbpage33en
thesis.degree.committeemembersMembers, Graduate Committee: Carson H. Gross; Travis Petersen
thesis.degree.departmentComputingen
thesis.degree.genreThesisen
thesis.degree.nameMSen
thesis.format.extentfirstpage1en
thesis.format.extentlastpage62en

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
pearsall-an-evaluation-2023.pdf
Size:
1.91 MB
Format:
Adobe Portable Document Format
Description:
An evaluation of graph representation of programs for malware detection and categorization using graph-based machine learning methods

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
825 B
Format:
Plain Text
Description: