MADLIRA é uma ferramenta para detecção de malware no Android . Consiste em dois componentes: componente TFIDF e componente de aprendizado SVM. Em geral, é necessária uma entrada de um conjunto de malwares e benefícios e, em seguida, extrai os comportamentos mal-intencionados (componente TFIDF) ou calcula o modelo de treinamento (classificador SVM). Em seguida, ele usa esse conhecimento para detectar comportamentos maliciosos no aplicativo Android .

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:

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
Download