
Um Scanner de Malware Web
Um scanner de malware (web) desenvolvido durante o CyperCamp Hackathon 2017
No momento, existem algumas funcionalidades disponíveis para qualquer tipo de site (personalizado ou CMS) e algumas delas disponíveis apenas para plataformas específicas:
Para instalar o masc no seu computador, você pode simplesmente clonar este repositório. Você também pode baixar a última release, descompactá-la e testar. Ou quem sabe prefira instalar usando pip ('pip3 install masc').
Verifique os requisitos antes de executar.
Verifique este aviso antes se você usa Debian Linux.
Verifique este aviso antes se você usa Mac OSX.
O masc foi testado apenas em plataformas Linux e Mac OSX. Deve funcionar no Windows, mas ainda não testei.
Antes de mais nada, observe que esta ferramenta foi desenvolvida em ambientes Linux e Mac OSX e, no momento, foi testada apenas nesses sistemas operacionais
santi@zenbook:$ pip3 install python-magic yara-python watchdog termcolor pypandoc progress pyclamd
No meu notebook, após atualizar para o Debian testing, o masc começou a mostrar um erro relacionado ao Yara
OSError: /usr/lib/libyara.so: cannot open shared object file: No such file or directory
Depois de tentar várias soluções que encontrei na Internet, percebi que este arquivo estava localizado no meu computador em /usr/local/lib/python3.5/dist-packages/usr/lib, então criei um link simbólico do caminho anterior para /usr/lib
santi@zenbook:$ ln -s /usr/local/lib/python3.5/dist-packages/usr/lib/libyara.so /usr/lib/libyara.so
E agora, o masc e a biblioteca Yara funcionam sem problemas.
masc é desenvolvido em Linux, mas foi testado no Mac OSX. De qualquer forma, deve funcionar sem problemas em qualquer SO amigável ao Unix.
Em particular, no Mac OSX notei que é necessário instalar o Homebrew para usar a biblioteca python-magic corretamente como libmagic. Verifique primeiro o link anterior para a página inicial do brew e depois você poderá instalar conforme mostro abaixo:
santi@zenbook:$ brew install libmagic
Além disso, no meu computador precisei alterar a primeira linha do script masc.py. O Python3 está instalado em /usr/local/bin e não é permitido criar links simbólicos a partir de /usr/bin
Altere a primeira linha em masc.py
#!/usr/bin/python3
para esta linha
#!/usr/local/bin/python3
De qualquer forma, você sempre pode executar o masc usando o interpretador Python em vez de executar o script diretamente:
santi@zenbook:$ python3 masc.py
usage: masc [-h] [-af FILENAME] [--aw STRING] [-cc] [-c] [-l] [-b] [-m]
[-n NAME] [-p PATH] [-r] [-s] [-t {wordpress,drupal,custom}]
optional arguments:
-h, --help show this help message and exit
-af FILENAME, --add-file FILENAME
Add a suspect file to the dictionary
-aw STRING --add-word STRING
Add a suspect content to the dictionary
-cc, --clean-cache Clean masc cache (cache and logs files, NO backups)
-c, --clean-site Clean up the site (and apply some extra actions to hide information to attackers)
-l, --list-backups List local backups
-b, --make-backup Create a local backup of the current installation
-m, --monitor Monitor site to detect changes
-n NAME, --name NAME Name assigned to the scanned installation
-p PATH, --path PATH Website installation path
-r, --rollback Restore a local backup
-s, --scan Scan website for malware
-t {wordpress,drupal,custom}, --site-type {wordpress,drupal,custom}
which type of web you want to scan:: wordpress,
joomla, drupal or magento
As ações que você pode realizar sobre uma instalação web são:
E você deve considerar que, se quiser realizar algumas ações sobre algum tipo de instalação web, é obrigatório especificar o tipo (-t ou --type) e o caminho (-p ou --path).
Por exemplo, se você tem uma instalação WordPress em /var/www/html e deseja escaneá-la completamente:
santi@zenbook:$ ./masc.py --scan --site-type wordpress --path /var/www/html
E se quiser executar ações de limpeza (para remover algum malware, por exemplo):
santi@zenbook:$ ./masc.py --scan --site-type wordpress --path /var/www/html --clean-site
Há duas amostras de sites hackeados no arquivo zip de amostras:
Além disso, há um repositório no Docker Hub para realizar testes masc-wordpress
Você pode encontrar um tutorial sobre como usar o masc na wiki
Se você quiser contribuir para este projeto, dê uma olhada na wiki. Há uma seção sobre Como contribuir para este projeto
Agradecimentos ao OWASP WebMalwareScanner por algumas ideias e pelos bancos de dados de assinaturas com checksums e regras YARA (e como carregá-los para funcionar).
Santiago Faci [email protected]