Insalling
Faça o download do arquivo MADLIRA.7z e descomprima-o.
Dados Instalados:
- MADLIRA.jar é o aplicativo principal.
- noAPI.txt declara o prefixo de APIs.
- family.txt lista malwares por família.
- Pasta TrainData contém a configuração de treinamento e o modelo de treinamento.
- Amostras de pasta contém dados de amostra.
- Pasta TempData contém dados para computação do kernel.
Funcionalidade
Esta ferramenta tem dois componentes principais: componente TFIDF e componente SVM.
Componente TFIDF
Command: MADLIRA TFIDF
Para este componente, existem duas funções: a função de treinamento (Extração de comportamento mal-intencionado) e a função de teste (Detecção de comportamento mal- intencionado )
Extração de comportamento mal-intencionado
- Colete aplicativos e aplicativos maliciosos e opere-os em pastas chamadas benginAPKFolder e maliciousApkFolder, respectivamente.
- Prepare os dados de treinamento e coloque-os em dois arquivos chamados benignPack e maliciousPack usando o comando:
MADLIRA TFIDF packAPK -PB benignApkFolder -B benignPack -PM maliciousApkFolder -M maliciousPack
- Extraindo comportamentos maliciosos de dois arquivos compactados (benignPack e maliciousPack) usando o comando:
MADLIRA TFIDF train -B benignPack -M maliciousPack
Detecção de comportamento malicioso
- Colete novos aplicativos e coloque-os em uma pasta chamada checkApk.
- Detectar comportamentos maliciosos de aplicativos na pasta checkApk usando o comando:
MADLIRA TFIDF check -S checkApk
Comando:
MADLIRA TFIDF train <Options>
Compute the malicious specifications for 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.
Exemplos:
treinando novos dados:
- Primeiro, colete os aplicativos de treinamento (arquivos APK) e armazene-os em pastas chamadas MalApkFolder e BenApkFolder.
- Empacote aplicativos de treinamento em arquivos mortos chamados MalPack e BenPack usando este comando:
MADLIRA TFIDF packAPK -PB BenApkFolder -B BenPack -PM MalApkFolder -M MalPack
- Limpar dados de treinamento antigos:
MADLIRA TFIDF clear
- Calcule os gráficos maliciosos dos pacotes de treinamento (BenPack e MalPack)
MADLIRA TFIDF train -B BenPack -M MalPack
Verificando novos aplicativos:
- Coloque esses aplicativos em uma pasta chamada checkApk e use este comando:
MADLIRA TFIDF check -S checkApk
Saída:
Componente SVM
Command: MADLIRA SVM
Para este componente, existem duas funções: a função de treinamento e a função de teste.
Fase de treinamento
- Colete aplicativos benignos em uma pasta chamada benignApkFolder e aplicativos mal-intencionados em uma pasta chamada maliciousApkFolder.
- Prepare dados de treinamento usando os comandos:
MADLIRA SVM packAPK -PB benignApkFolder -B benignPack -PM maliciousApkFolder -M maliciousPack
- Calcule o modelo de treinamento por este comando:
MADLIRA SVM train -B benignPack -M maliciousPack
Detecção de comportamento malicioso
- Colete novos aplicativos e coloque-os em uma pasta chamada checkApk
- Detectar comportamentos maliciosos de aplicativos na pasta checkApk usando o comando:
MADLIRA SVM check -S checkApk
Comando:
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 applications in a folder.
-S <foldername>: the folder contains all apk files.
MADLIRA SVM test <Options>
Test the classifier for given graph data.
-S <foldername>: the folder contains all graphs of test data.
-n <n>: the number of test samples.
MADLIRA SVM clear
Clean all training data.
Pacotes:
esta ferramenta usa os seguintes pacotes:
- apktool-2.2.1 ( https://ibotpeaches.github.io/Apktool/ )
- ojalgo-41.0.0 ( https://github.com/optimatika/ojAlgo )
- libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ )
Referências
- Khanh Huu The Dam e Tayssir Touili. Extraindo Comportamentos Maliciosos do Android . Em processo de ForSE 2017
- Khanh Huu The Dam e Tayssir Touili. Aprenda malware para Android. Em Anais do IWSMA @ ARES 2017