Magika é uma ferramenta desenvolvida pelo Google para detectar tipos comuns de conteúdo de arquivos, usando Deep Learning. O objetivo é ajudar a detectar com precisão tipos de arquivos binários e textuais. A identificação é precisa e realizada em milissegundos, mesmo quando executado com apenas uma CPU.
Projeto : github.com/google/magika
Demo : google.github.io/magika
Acesse : Lista das extensões suportadas
Dashboard : github.com/100security/magika-dashboard
Realize o clone do projeto Magika e entre no diretório:
Linuxgit clone https://github.com/google/magika cd magika/ ls -l
Instale a biblioteca magika:
Linuxpip install magika
Para realizar a avaliação de forma recursiva utilizando os exemplos já disponíveis no repositório basta informar o parâmetro -r seguido do diretório tests_data :
Linuxmagika -r tests_data/
Crie um diretório e modifique as extensões de vários arquivos para fazer os seus testes:
mkdir 100security cd 100security ls -l
Execute o comando magika seguido do * para verificar todos os arquivos do diretório:
Linuxmagika *
Execute o magika no arquivo 100security.pptx e em seguida renomeie o arquivo para .mp3 e verifique o arquivo novamente:
Linuxmagika 100security.pptx mv 100security.pptx 100security.mp3 magika 100security.mp3
Execute o comando magika seguido do arquivo e do parâmetro --json para exibir mais detalhes:
Linuxmagika 100security.mp3 --json
Execute o comando magika seguido do arquivo e do parâmetro --generate-report para gerar um relatório detalhado.
É possível visualizar o BEG ou Magic Number que identifica cada tipo de arquivo (exemplo):
Extensão | BEG / Magic Number |
.docx | 80,75,3,4 |
.exe | 77,90 |
.html | DOCTYPE html |
37,80,68,70 | |
.png | 137,80,78,71 |
.txt | (vazio) |
.zip | 80,75,3,4 |
magika 100security.jpg --generate-report
Para gerar o relatório completo sobre a avaliação dos arquivos, saia do diretório atual e execute o comando:
Linuxcd .. magika 100security/* --json > result.json cat result.json
Para melhorar o exemplo vou mover o diretório 100security para dentro do diretório tests_data e gerar o arquivo result.json novamente:
Linuxmv 100security/ tests_data/ magika -r tests_data/* --json > result.json cat result.json
Para melhorar a visualização do result.json, desenvolvi uma Interface Web disponível no link github.com/100security/magika-dashboard
Em seguida basta mover o arquivo result.json para o diretório dashboard e visualizar o resultado.
Linuxcd /var/www/html/ git clone https://github.com/100security/magika-dashboard cd magika-dashboard/ ls -l cp /magika/result.json .
Basta acessar o diretório magika-web via web para visualizar o resultado.
Exemplo: www.100security.com.br/magika-dashboard
Você pode clicar sobre os cards Code, Document, Text, Application, Archive, Image, Executable, Audio, Video, Total, Alert, % Score < 100%para aplicar o Filtro, veja os exemplos a seguir:
Clique sobre o card Code:
Clique sobre o card Alert:
Clique sobre o card Score < 100%: