Voltar às atualizações
New releaseSep 15, 2026

FACT_core v4.4.1

Ferramenta de Análise e Comparação de Firmware

Compartilhar

Logotipo do FACT com lupa como o C
A Ferramenta de Análise e Comparação de Firmware (FACT)

codecov Codacy Badge Gitter chat CI Build License: GPL v3

Conteúdo

Por que FACT?

A análise de firmware pode ser usada para alcançar vários objetivos interessantes. Os principais são identificar funcionalidades, componentes e potenciais fragilidades de segurança em firmware de caixa preta.

A Ferramenta de Análise e Comparação de Firmware (FACT) visa automatizar o máximo possível do trabalho manual de análise de firmware. O FACT combina um conjunto crescente de análises poderosas para criar uma interface unificada que leva o usuário de uma amostra de firmware arbitrária a uma análise concluída. Algumas das principais características da análise do FACT é que os resultados são

  • navegáveis
  • pesquisáveis
  • e comparáveis.

Além disso, o FACT oferece várias maneiras de navegar e visualizar os resultados das análises e o conteúdo do firmware para fácil acessibilidade. A interface principal do FACT é uma interface web baseada em html/js/css que pode ser hospedada localmente ou compartilhada em rede. Além disso, o FACT oferece uma API HTTP semelhante a REST que pode ser explorada com um SwaggerUI integrado. Alguns recursos principais da interface web são:

  • Visualização fácil do firmware por meio de uma renderização em árvore de arquivos de todos os componentes do firmware.
  • Navegação rápida pelos resultados da análise observando resumos dos resultados em todos os componentes do firmware.
  • Destaque dos resultados de análise relevantes como tags no topo de cada página.
  • Várias opções de download para firmware e componentes para avançar para análises aprofundadas.

Embora o FACT seja mantido como um protótipo de pesquisa, o projeto é bem testado, inclui uma base de documentação e oferece uma infinidade de recursos de nível de produção. Estamos sempre em busca de feedback e solicitações de recursos.

Mais detalhes e algumas capturas de tela podem ser encontrados em nossa página do projeto.

Configuração

Requisitos

O FACT é projetado como uma aplicação multiprocesso; quanto mais Núcleos e RAM, melhor.

MínimoRecomendado
4 Núcleos16 Núcleos
8 GB de RAM64 GB de RAM
10 GB de espaço em disco10* GB de espaço em disco

[!NOTE] Cerca de 10 GB são necessários para configurar o código, o contêiner e os binários do FACT. Espaço adicional é necessário para armazenamento de arquivos descompactados e resultados de análise. Isso pode ser em uma partição ou unidade separada.

Instalação Local

É possível, em princípio, instalar o FACT em qualquer distribuição Linux, mas o instalador é limitado a

  • Debian 12/13 ou compatível (estável)
  • Ubuntu 22.04/24.04/26.04 ou compatível (estável)
  • Kali (experimental)

A instalação em distribuições mais antigas (por exemplo, Debian 11 "Bullseye" ou Ubuntu 20.04 "Focal") pode ainda funcionar, mas não é considerada estável, pois essas distribuições atingiram o fim da vida útil.

O FACT requer Python 3.10–3.14 (deve ser o padrão em todas as distribuições suportadas)

O processo de configuração é amplamente automatizado e encapsulado em um único script. No entanto, alguns recursos podem ser selecionados especificamente. Para um guia detalhado sobre como instalar o FACT, consulte INSTALL.md.

[!IMPORTANT] Observe que, embora faça uso extensivo de contêineres, o FACT ainda contém muitas dependências (e não há desinstalação fornecida). Se você deseja manter seu sistema limpo, pode tentar uma das opções de configuração fornecidas a seguir.

Vagrant

Fornecemos boxes vagrant mensais e prontas para uso do nosso branch master. Vagrant é uma maneira fácil e conveniente de começar a usar o FACT sem precisar instalá-lo em sua máquina. Basta configurar o vagrant e importar nossa box fornecida para o VirtualBox. Nossas boxes podem ser encontradas no site vagrantup!

Confira como começar a usar o FACT e o vagrant em nosso tutorial.

Docker

Há também uma versão dockerizada, mas atualmente não é mantida. (consulte o repositório FACT_docker para mais informações).

Uso

Você pode iniciar o FACT executando o script start_fact.py. O script detecta automaticamente todos os componentes instalados.

src/start_fact.py

Depois disso, o FACT pode ser acessado em http://localhost:5000 (padrão) ou https://localhost (se o FACT estiver instalado com nginx).

Você pode desligar o sistema pressionando Ctrl + c ou enviando um SIGTERM ao script start_fact.py.

[!CAUTION] O FACT não se destina a ser usado como um serviço público de internet. A interface web não é uma aplicação endurecida. Tentamos limitar os problemas de segurança aplicando SecDevOps, mas o FACT ainda pode oferecer vulnerabilidades. Certifique-se de redefinir todas as senhas na configuração do FACT se planeja hospedá-lo em redes não totalmente confiáveis.

Documentação

[!TIP] Mais documentação sobre como usar o FACT pode ser encontrada em nossas páginas wiki.

Você também pode dar uma olhada em nossa documentação Sphinx.

Informações sobre o que é o FACT e como ele funciona também podem ser encontradas nos slides na pasta docs.

API REST

O FACT fornece uma API REST. Mais informações podem ser encontradas na página wiki.

Gerenciamento de Usuários

O FACT fornece uma autenticação básica opcional, gerenciamento de papéis e usuários. Mais informações podem ser encontradas na página wiki.

Contribuindo

A maneira mais fácil de contribuir é escrever seu próprio plugin. Nosso Manual do Desenvolvedor pode ser encontrado no wiki do GitHub.

Plugins adicionais

Plugins adicionais atualmente disponíveis:

Categorias