
Analisador com GUI para aprofundar a análise de arquivos PDF. Detecte payloads maliciosos, entenda as relações entre objetos e extraia informações essenciais para análise de ameaças.
A Análise Interativa de PDF (também chamada de IPA) permite que qualquer pesquisador explore os detalhes internos de qualquer arquivo PDF. Arquivos PDF podem ser usados para carregar payloads maliciosos que exploram vulnerabilidades e problemas de visualizadores de PDF, ou podem ser usados em campanhas de phishing como artefatos de engenharia social. O objetivo deste software é permitir que qualquer analista se aprofunde por conta própria no arquivo PDF. Por meio do IPA, você pode extrair payloads importantes de arquivos PDF, entender as relações entre os objetos e inferir elementos que podem ser úteis para a triagem de payloads maliciosos ou não confiáveis.
A principal inspiração vem das fantásticas pessoas por trás da Zynamics e de seu excelente produto, chamado PDF dissector.
Quando comecei a fazer engenharia reversa de malware, a principal ferramenta disponível para analisar payloads maliciosos consistia nas excelentes ferramentas de Didier Stevens. Tendo se tornado um padrão de facto, um dos principais problemas dessas ferramentas era o fato de poderem ser usadas a partir da linha de comando, exigindo memorizar uma combinação muito grande de flags e informando os números dos diversos objetos. Embora analistas e desenvolvedores tenham que lidar com todos os tipos de ferramentas de linha de comando diariamente, isso não significa que não possamos criar uma nova ferramenta gráfica de inspeção de arquivos.
De fato, parte dos campos de análise estática e engenharia reversa também se concentra em como exibir as informações mais relevantes ao analista do ponto de vista da experiência do usuário. As ferramentas de Didier Stevens, assim como o peepdf, já são usadas e bem testadas. No entanto, o analista poderia usar algo gráfico para conseguir entender a relação entre os diversos objetos, compreender a quais páginas eles se referem e quais tipos de objeto (imagens, fontes, cores, metadados), exportar o conteúdo de streams de forma simples e ver o conteúdo de dicionários em formato de tabela.
A principal fonte de inspiração vem da ferramenta desenvolvida pela Zynamics chamada PDF-dissector: o excelente feedback de alguns ex-usuários e os constantes pedidos para liberá-la como código aberto me motivaram a passar alguns dias criando esta ferramenta.
A ferramenta pode ser compilada com Rust e cargo. Nenhuma dependência é necessária além do Rust e dos crates baixados.
git clone https://github.com/seekbytes/IPA
cd IPA
## compile with debug symbols, the binary is inside ./target/debug/IPA
cargo b
## compile in release mode, the binary is inside ./target/release IPA
cargo b --release
O IPA tem as seguintes limitações por enquanto:
No final, a ferramenta pode ser realmente melhorada e aposto que algumas pessoas vão notar como meu código é ruim. Se você for uma delas, por favor me avise sobre possíveis melhorias, melhores padrões e qualquer sugestão.
Se você tiver algum problema, melhoria, ou apenas quiser me enviar uma mensagem, escreva para [email protected].