Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed .DS_Store
Binary file not shown.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
*.out
*.pdf
*.toc
*.gz
*.gz
.DS_Store
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
Firefox Add-on for Metamorphic JavaScript Malware Detection
<h2>SJSU Thesis Template</h2>

I am not the original author of this template. It is modified from a template created by the University of Rhode Island (URI). A link to their original template is: http://egr.uri.edu/ele/thesisguide/step2/

I am not even the original author of the SJSU version of the template. I got it from Dr. Thomas Austin (https://github.com/taustin). When I used the original template as is, it was rejected by San Jose State's GUP department for no compliance with the thesis guidelines. I modified the template to conform with the rules as of December 2016. You should refer to their latest guidelines (http://www.sjsu.edu/gup/gradstudies/thesis/) as their requirements are updated regularly.

As part of my thesis, I switched to BibTex. The requirements needed to use BibTex are below. These should be done after the thesis is successfully built.

1. Rather than building with standard BibTex, use the file "uribibtex.bat" that is bundled with this repository. If you are using a Tex editor (which I highly recommend), you should have it point to this file instead of the standard BibTex executible.

2. To rebuild the references file used by the tool in #1, you should double click on the file "genbib.bat" in the "build" subdirectory.

The example steps for BibTex were debugged on a Mac. Given the "*.bat" files, the approach above probably will not work out of the box on a Mac. Here is a link with more general information on using BibTex.

I am also including a Texmaker session so you can load it into Texmaker directly. You need to modify the session file to match the local path on your machine. If you can get TexStudio working instead, it is a better tool in my humble opinion.
12 changes: 12 additions & 0 deletions Texmaker_Session.tks
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<TexmakerSession quickmode="12">
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/ack.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/abs.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/chap4.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/appA.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/appB.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/chap3.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/chap2.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="false" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/chap1.tex" line="0" master="false"/>
<document bookmark1="0" bookmark2="0" hasfocus="true" bookmark3="0" file="C:/Users/zhammoud/Desktop/Courses/SJSU-thesis-LaTeX_Zayd/thesis.tex" line="0" master="false"/>
</TexmakerSession>
7 changes: 2 additions & 5 deletions abs.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
Internet has evolved into the greatest medium of communication and data exchange that the world has ever known. Since the late 1990s, it has become a vast interconnected source of information and services widely used for commercial and personal purposes. This evolution has led to the emergence of social networking, online banking and advertising, among various other commercial and non-commercial uses. Transactions over the Internet often involve the transfer of sensitive data which attackers like to tap and exploit. For example, bank account information, medical records and passwords are routinely transferred over the network. Unfortunately, user's personal computer is a weak link in this system where personal computers typically run a large number of applications, which are rarely managed in a proper way. Single visit to a compromised web page is sufficient to infect a web browser. When a user visits such a compromised website, malicious JavaScript programs are automatically loaded with HTML code in the web browser. Execution of such malicious JavaScript can expose the personal data of the user.
This paper is very abstract.

Malware is a software program designed to do malicious activities on victim's computer with the intention of extracting information and exploiting resources without his consent. Researchers developed techniques for malware detection like signature detection. To overcome the malware detection techniques, malware writers came up with different types of Malwares among which Metamorphic Malware is an advanced version. In this malware, internal structure of the malware gets changed after every execution but the overall functionality remains the same. Transcriptase is a metamorphic malware implemented in JavaScript. Execution of this script infects all the JavaScript files in the folder where the malware script is placed. As a result of this infection, a morphed version of the malware script gets attached to benign JavaScript files in the folder. Whenever this infected JavaScript gets executed in any other folder, it infects other benign JavaScript files. For each infection, malware script generates a new morphed version.
{\bf Keywords:} Apples, Bananas, Cherries

The purpose of my research is to develop a Firefox browser plugin for Metamorphic JavaScript malware detection. As JavaScript malware executes in a browser, before the page gets loaded Rhino can be used to generate an opcode sequence for the JavaScript content embedded in the webpage and then the Firefox plugin will verify the generated JavaScript's opcode sequence. If JavaScript is found to be malicious, then the plugin will restrict page load. This will provide dynamic protection from malware infecting through browser. I will be using Transcriptase.

Even though, internal code of the malware gets changed after every execution, same instructions (i.e., responsible for malware functionality) have to be used somewhere in code. So several detection techniques that work on the statistical distribution of instructions to detect the malware have been developed. Some of those techniques are Hidden Markov Model, Opcode Graph Similarity and Simple Substitution Distance detection technique. One detection technique will be chosen among these techniques based on the “accuracy" and “on the fly performance", which will be implemented in Firefox plugin.
3 changes: 2 additions & 1 deletion ack.tex
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
I am very thankful to my advisor Dr. Thomas Austin for his continuous guidance and support throughout this project and believing me. Also, I would like to thank the committee members Dr. Chris Pollett and Fabio Di Troia for monitoring the progress of the project and their valuable time.
I want to thank me, myself, and I.

52 changes: 0 additions & 52 deletions bib.tex

This file was deleted.

1 change: 1 addition & 0 deletions build/genbib.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bibtex thesis
Loading