Skip to content

Commit

Permalink
Updating the Thesis Template for BibTex support on a PC and to match …
Browse files Browse the repository at this point in the history
…the latest SJSU guidelines.
  • Loading branch information
Zayd Hammoudeh committed Jan 29, 2017
1 parent 136c1a0 commit c1d7de6
Show file tree
Hide file tree
Showing 16 changed files with 5,272 additions and 88 deletions.
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
SJSU Thesis Template

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>
15 changes: 5 additions & 10 deletions abs.tex
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
%FIXME: Good information, though a little too much for an abstract. Move most of this to the introduction and add a paragraph summary here instead.
%
% If you are doing a thesis (i.e., not a writing project), GUP requires that your abstract only be a single paragraph. It CANNOT be multiple paragraphs, or it will be initially rejected as mine was.
%
% For more information on GUP's abstract requirements, please see here: http://www.sjsu.edu/gup/gradstudies/thesis/#Abstract Page
The 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 that attackers like to tap and exploit. For example, bank account information, medical records, and passwords are routinely transferred over the network. Unfortunately, a 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. A 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.

Malware is a software program designed to do malicious activities on the 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 obfuscation techniques, such as metamorphic malware. In this type of malware, the internal structure of the malware gets changed after every execution but the overall functionality remains the same. Transcriptase is metamorphic malware implemented in JavaScript. Execution of this script infects all of 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, the malware script generates a new morphed version.

%FIXME: Add citation for Rhino & Transcriptase
The purpose of my research is to develop a Firefox addon for detecting metamorphic JavaScript malware. As JavaScript malware executes in a browser, before the page gets loaded, the Rhino JavaScript engine can be used to generate an opcode sequence for the JavaScript content embedded in the webpage and then the Firefox addon will verify the generated JavaScript's opcode sequence. If JavaScript is found to be malicious, then the addon restricts the page load. This will provide dynamic protection from malware infecting the user's machine through the web browser. I use Transcriptase as my sample of JavaScript metamorphic malware.

%NOTE: Instructions might be totally different, but functionally equivalent
Even though the internal code of the malware gets changed after every execution, the 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 models, opcode graph similarity, and the simple substitution distance detection technique.

%FIXME: In both the intro and the abstract we'll need to give the results of the project, even though we won't talk about them in depth until much later in the paper.

Malware is a software program designed to do malicious activities on the 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 obfuscation techniques, such as metamorphic malware. In this type of malware, the internal structure of the malware gets changed after every execution but the overall functionality remains the same. Transcriptase is metamorphic malware implemented in JavaScript. Execution of this script infects all of 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, the malware script generates a new morphed version.
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

0 comments on commit c1d7de6

Please sign in to comment.