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

01 - Passo

Realize o clone do projeto Magika e entre no diretório:

Linux
git clone https://github.com/google/magika

cd magika/

ls -l

02 - Passo

Instale a biblioteca magika:

Linux
pip install magika

03 - Passo

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 :

Linux
magika -r tests_data/

04 - Passo

Crie um diretório e modifique as extensões de vários arquivos para fazer os seus testes:

  • Deixei apenas o arquivo 100security.pptx com a extensão correta.
Linux
mkdir 100security

cd 100security

ls -l

05 - Passo

Execute o comando magika seguido do * para verificar todos os arquivos do diretório:

Linux
magika *

06 - Passo

Execute o magika no arquivo 100security.pptx e em seguida renomeie o arquivo para .mp3 e verifique o arquivo novamente:

Linux
magika 100security.pptx

mv 100security.pptx 100security.mp3

magika 100security.mp3

07 - Passo

Execute o comando magika seguido do arquivo e do parâmetro --json para exibir mais detalhes:

Linux
magika 100security.mp3 --json

08 - Passo

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
.pdf 37,80,68,70
.png 137,80,78,71
.txt (vazio)
.zip 80,75,3,4
Linux
magika 100security.jpg --generate-report

💡  Relatório e Dashboard

01 - Passo

Para gerar o relatório completo sobre a avaliação dos arquivos, saia do diretório atual e execute o comando:

Linux
cd ..

magika 100security/* --json > result.json

cat result.json

02 - Passo

Para melhorar o exemplo vou mover o diretório 100security para dentro do diretório tests_data e gerar o arquivo result.json novamente:

Linux
mv 100security/ tests_data/

magika -r tests_data/* --json > result.json

cat result.json

03 - Passo

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.

Linux
cd /var/www/html/

git clone https://github.com/100security/magika-dashboard

cd magika-dashboard/

ls -l

cp /magika/result.json .

04 - Passo

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:

  • Este filtro exibe todos os arquivos que foram categorizados como Code


Clique sobre o card Alert:

  • Este filtro exibe todos os arquivos nos quais foram encontradas inconsistências referentes a extensão. Por exemplo: O arquivo pode estar salvo como .jpg e é um arquivo executável .exe, e neste caso gera um alerta suspeito para que você possa investigar.


Clique sobre o card Score < 100%:

  • Este filtro exibe todos os arquivos nos quais o Magika conseguiu afirmar o tipo de arquivo com Score < 100% de assertividade.


👍 Se este artigo te ajudou compartilhe!



  Autor

Marcos Henrique

 São Paulo/SP



  Inteligência Artificial

© 2024 - 100SECURITY

Contato