Malware Detection using Learning and Information Retrieval for Android
Malware Detection using Learning and Information Retrieval for Android
MADLIRA is an Android static malware detector. It takes as input a set of Android malwares and a set of Android benwares and can either (1) extract a malicious API graph representing the malicious behaviors of the Android malwares in the set; or (2) learn to classify Android malwares without extracting the malicious behaviors. These phases are called the training phases. Then, given a new Android application, MADLIRA checks whether it is malicious or not.
This tool has two main components: TFIDF component, which extracts the malicious behaviors and uses these malicious behaviors to check whether a new application is malicious or not (read paper [1] for more details), and SVM component, which applies Random walk Graph kernel based support vector machines to classify malwares from benign programs (read paper [2] for more details).
Extraction of Malicious Behaviors Module takes as input a set of malwares and a set of benwares. After applying the Graph Computation component to extract their corresponding API call graphs, these graphs are fed to the Malicious Graph Computation component to compute the malicious API graph. This component implements the TFIDF weighting term scheme introduced in [1] to compute the malicious behaviors. It outputs malicious API graphs representing the malicious behaviors.
Malicious Behavior Detection Module takes as input a binary program. It first applies the Graph Computation component to compute its corresponding API call graph. Then, it checks whether this graph contains any malicious behavior from the malicious API graphs (the output of Extraction of Malicious Behaviors Module) or not. If this program contains any malicious behavior, the output is Malicious!. Otherwise, the output is Benign!.
Command: MADLIRA TFIDF
For this component, there are two functions: the training function (Malicious behavior extraction) and the test function (Malicious behavior detection)
MADLIRA TFIDF packAPK -PB benignApkFolder -B benignPack -PM maliciousApkFolder -M maliciousPack
MADLIRA TFIDF train -B benignPack -M maliciousPack
MADLIRA TFIDF check -S checkApk
Command:
MADLIRA TFIDF train <Options>
Compute the malicious specifications for a given training data.
-B <filename>: the archive file contains all graphs of training benwares.
-M <filename>: the archive file contains all categories of training malwares.
MADLIRA TFIDF check <Options>
Check malicious behaviors in the given applications in a folder.
-S <folder>: the folder contains all applications (apk files).
MADLIRA TFIDF test <Options>
Test the classifier for a given test data.
-S <folder>: the folder contains all graphs for testing.
MADLIRA TFIDF clear
Clean all training data.
MADLIRA TFIDF install
Clean old training data and install a new data for training.
-B <filename>: the archive file contains all graphs of training benwares.
-M <filename>: the archive file contains all categories of training malwares.
Training new data:
MADLIRA TFIDF packAPK -PB BenApkFolder -B BenPack -PM MalApkFolder -M MalPack
MADLIRA TFIDF clear
MADLIRA TFIDF train -B BenPack -M MalPack
Checking new applications:
MADLIRA TFIDF check -S checkApk
Output:
Learning Malicious Behaviors Module implements two phases: the learning phase and the detection phase. In the learning phase, it takes as input a set of malwares and a set of benwares. It first applies the first Module to compute their corresponding API call graphs. Then, these API call graphs are fed to the SVM training component, i.e., LIBSVM, to compute a SVM training model. In the detection phase, it takes as input a binary code and applies the first Module to compute its corresponding API call graph. Then, it uses SVM classifier with the training model (the output of the first phase) to classify the program either Malicious! or Benign!.
Command: MADLIRA SVM
For this component, there are two functions: the training function and the test function.
MADLIRA SVM packAPK -PB benignApkFolder -B benignPack -PM maliciousApkFolder -M maliciousPack
MADLIRA SVM train -B benignPack -M maliciousPack
MADLIRA SVM check -S checkApk
Command:
MADLIRA SVM train <Options>
Compute the classifier for given training data.
-T <t>: max length of the common walks (default value = 3).
-l <lambda>: lambda value to control the importance of length of walks (default value = 0.4).
-B <filename>: the archive file contains all graphs of training benwares.
-M <filename>: the archive file contains all graphs of training malwares.
MADLIRA SVM check <Options>
Check malicious behaviors in the given applications in a folder.
-S <folder>: the folder contains all applications (apk files).
MADLIRA SVM test <Options>
Test the classifier for a given test data.
-S <folder>: the folder contains all graphs for testing.
MADLIRA SVM clear
Clean all training data.
This tool uses the following packages: