
Este projeto contém o código-fonte para o CERT Basic Fuzzing Framework (BFF) e o CERT Failure Observation Engine (FOE).
Este projeto contém o código-fonte do CERT Basic Fuzzing Framework (BFF)
O BFF para Windows era anteriormente conhecido como CERT Failure Observation Engine (FOE).
Dependendo do seu nível de dificuldade e pontos de experiência preferidos, escolha entre as opções abaixo.
A maior parte do código do BFF pode ser encontrada no pacote certfuzz src/certfuzz. Para testar o código certfuzz em uma instalação existente do BFF, substitua o diretório certfuzz na sua instalação pelo diretório certfuzz encontrado neste repositório.
Alguns itens específicos de plataforma estão em src/windows e src/linux. O BFF para OSX também usa src/linux. Consulte src/linux/README e src/windows/README.txt para os readmes específicos de plataforma, e src/linux/INSTALL se você se sentir mais aventureiro.
Na verdade, usamos um sistema de integração contínua com algumas ferramentas específicas de plataforma em conjunto com o código no diretório build/ para construir as versões encontradas nos links acima. No entanto, no momento, espera-se que o código de compilação funcione apenas nesse ambiente. Na verdade, o código no branch master é centrado no SVN, então nem funcionou quando mudamos para o git. Nós corrigimos isso em nosso sistema de desenvolvimento interno, mas ainda não mesclamos isso com o código postado aqui.
Além disso, os scripts de compilação modificam alguns arquivos e movem coisas para montar os pacotes de versão e construir instaladores. Os nomes dos arquivos (mas não necessariamente os locais) nos diretórios src/ geralmente permanecem intactos, então você deve ser capaz de descobrir para onde as coisas vão se estiver procurando fora do diretório src/certfuzz. (Como mencionado na seção Fácil acima, src/certfuzz deve ser apenas uma substituição direta.)
Se tudo isso parece mais um desafio do que um aviso, vá em frente.
Veja src/experimental/README.md para alguns becos sem saída que podem ser marginalmente úteis.
O CERT Basic Fuzzing Framework (BFF) é uma ferramenta de teste de software que encontra defeitos em aplicativos executados em Linux, Mac OS X e Windows.
O BFF realiza fuzzing mutacional em software que consome entrada de arquivos. Eles coletam automaticamente casos de teste que causam falhas no software de maneiras únicas, bem como informações de depuração associadas às falhas. O objetivo do BFF é minimizar o esforço necessário para que fornecedores de software e pesquisadores de segurança descubram e analisem eficientemente vulnerabilidades de segurança encontradas por meio de fuzzing.
Fuzzing mutacional é o ato de pegar dados de entrada bem formados e corrompê-los de várias maneiras, procurando casos que causem falhas. O BFF coleta automaticamente casos de teste que causam falhas no software de maneiras únicas, bem como informações de depuração associadas às falhas. O objetivo do BFF é minimizar o esforço necessário para que fornecedores de software e pesquisadores de segurança descubram e analisem eficientemente vulnerabilidades de segurança encontradas por meio de fuzzing.
Tradicionalmente, o fuzzing tem sido muito eficaz para encontrar vulnerabilidades de segurança, mas devido à sua natureza inerentemente estocástica, os resultados podem ser altamente dependentes da configuração inicial do sistema de fuzzing. O BFF aplica técnicas de aprendizado de máquina e computação evolutiva para minimizar a quantidade de configuração manual necessária para iniciar e completar uma campanha de fuzzing eficaz. O BFF ajusta seus parâmetros de configuração com base no que encontra (ou não) ao longo de uma campanha de fuzzing. Ao fazer isso, pode aumentar drasticamente tanto a eficácia quanto a eficiência da campanha. Como resultado, não é necessário conhecimento especializado para configurar uma campanha de fuzzing eficaz, e tanto novatos quanto especialistas podem começar a encontrar e analisar vulnerabilidades muito rapidamente.
A seguir estão algumas das características específicas disponíveis no BFF:
No CERT/CC, usamos a infraestrutura do BFF para encontrar várias vulnerabilidades críticas em produtos como Adobe Reader e Flash Player; Foxit Reader; Apple QuickTime, Preview e Mac OS X; Xpdf; Poppler; FFmpeg; JasPer; Wireshark; codec de vídeo VMware VMnc; codec de vídeo Indeo; e muitos outros. Veja Vulnerabilidades Públicas Descobertas Usando BFF.
O BFF e o FOE começaram como dois projetos separados, mas relacionados, dentro da equipe de Análise de Vulnerabilidades do CERT/CC. Com o tempo, eles convergiram em sua arquitetura a ponto de o BFF 2.7 e o FOE 2.1 compartilharem grande parte de seu código. A partir do BFF 2.8, essa integração está completa e aposentamos o nome FOE em favor do BFF.
Postagens no blog sobre BFF e FOE podem ser encontradas na categoria Vulnerabilidades do CERT/CC no SEI Blog.