Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
flawfinder — uma ferramenta de análise estática para encontrar vulnerabilidades em código-fonte C/C++ | Kitploit
Ferramentas/GitHubGitHub/david-a-wheeler/flawfinder
Análise EstáticaAnálise Estática de Código (SAST)Análise de VulnerabilidadesAnálise de CódigoDevSecOpsTop em Análise de Código nº15Top em Análise Estática de Código (SAST) nº12
GitHubdavid-a-wheeler/flawfinder

flawfinder

uma ferramenta de análise estática para encontrar vulnerabilidades em código-fonte C/C++

5808553há 3 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
Compartilhar

Sobre

Isto é o "flawfinder" por David A. Wheeler.

Flawfinder é um programa simples que analisa código-fonte C/C++ e relata potenciais falhas de segurança. Pode ser uma ferramenta útil para examinar software em busca de vulnerabilidades, e também pode servir como uma introdução simples a ferramentas de análise estática de código fonte em geral. Foi projetado para ser fácil de instalar e usar. Flawfinder suporta a Common Weakness Enumeration (CWE) e é oficialmente CWE-Compatible. Suporta vários formatos de saída, incluindo SARIF, SonarQube e HTML.

Flawfinder pode ser usado em conjunto com ferramentas de análise de código baseadas em IA. A saída do Flawfinder pode ser usada para identificar rapidamente quais áreas de código merecem atenção mais próxima, que um sistema de IA pode então examinar com mais detalhes.

Para mais informações, consulte o site do projeto

Plataformas

Flawfinder é projetado para uso em sistemas Unix/Linux/POSIX (incluindo Cygwin, sistemas baseados em Linux, MacOS e vários BSDs) como uma ferramenta de linha de comando. Requer Python (testamos com Python 3; Python 2.7 deve funcionar, mas está cada vez menos testado).

Instalação

Se você apenas quer usá-lo, pode instalar o flawfinder com o "pip" do Python ou com o gerenciador de pacotes do seu sistema (flawfinder tem pacotes para muitos sistemas). Também suporta instalação fácil seguindo as convenções usuais de instalação de fonte make install. O arquivo INSTALL.md tem instruções de instalação mais detalhadas. Você NÃO PRECISA instalá-lo para executá-lo, mas é mais fácil assim.

Uso

Para executar o flawfinder, basta fornecer uma lista de arquivos fonte ou diretórios para examinar. Por exemplo, para examinar todos os arquivos em "src/" e subdiretórios recursivamente:

root@kitploit:~
flawfinder src/

Para examinar todos os arquivos no diretório atual e subdiretórios recursivamente:

root@kitploit:~
flawfinder ./

Os hits (achados) recebem um nível de risco de 0 (risco muito baixo) a 5 (risco alto). Por padrão, são exibidos achados de nível de risco 1 ou superior. Você pode mostrar apenas os hits de nível de risco 4 ou superior no diretório atual e abaixo desta forma:

root@kitploit:~
flawfinder --minlevel 4 ./

A página de manual (flawfinder.1 ou flawfinder.pdf) descreve como usar o flawfinder (incluindo suas várias opções) e informações relacionadas (como ele suporta CWE). Por exemplo, a opção --html gera saída em formato HTML. A opção --help fornece uma breve lista de opções.

Erros de Codificação de Caracteres

O Flawfinder deve ser capaz de interpretar corretamente a codificação de caracteres do seu código-fonte. Na grande maioria dos casos isso não é um problema, especialmente se o código-fonte estiver codificado corretamente usando UTF-8 e seu sistema estiver configurado para usar UTF-8 (a situação mais comum de longe).

No entanto, é possível que o flawfinder pare se houver um problema de codificação de caracteres e você estiver usando Python3. O sintoma usual são mensagens de erro como esta: Error: encoding error in FILENAME 'ENCODING' codec can't decode byte ... in position ...: invalid start byte

Infelizmente, o Python3 não fornece recursos internos úteis para lidar com isso. Assim, não é trivial lidar com esse problema sem depender de bibliotecas externas (que estamos tentando evitar).

Se você tiver esse problema, consulte a página de manual do flawfinder para uma coleção de várias soluções. Uma das mais simples é simplesmente converter o código-fonte e a configuração do sistema para UTF-8. Você pode converter o código-fonte para UTF-8 usando ferramentas como a ferramenta de sistema iconv ou o programa Python cvt2utf; você pode instalar o cvt2utf usando pip install cvt2utf.

Por baixo dos panos

Mais tecnicamente, o flawfinder usa varredura léxica para encontrar tokens (como nomes de funções) que sugerem prováveis vulnerabilidades, estima seu nível de risco (por exemplo, pelo texto das chamadas de função) e relata os resultados. O Flawfinder não usa ou tem acesso à maioria das informações sobre fluxo de controle, fluxo de dados, tipos de dados, namespaces e escopos. Assim, o flawfinder necessariamente produzirá muitos falsos positivos para vulnerabilidades e deixará de relatar muitas vulnerabilidades. Por outro lado, o flawfinder pode encontrar vulnerabilidades em programas que não podem ser compilados ou que não podem ser vinculados. O Flawfinder também não se confunde tanto com a maioria das definições de macro e outras peculiaridades com as quais ferramentas mais sofisticadas têm dificuldade.

Ação do GitHub do Flawfinder

Há uma ação do GitHub disponível para quem usa o GitHub.

Uso

Consulte action.yml

Crie um arquivo .yml em .github/workflows com o seguinte conteúdo:

Demonstração básica:

root@kitploit:~
- name: flawfinder_scan
  uses: david-a-wheeler/[email protected]
  with:
    arguments: '--sarif ./'
    output: 'flawfinder_results.sarif'

Você pode adicionar muitas outras adições aos argumentos. Por exemplo, --error-level=4 fará com que um erro seja retornado se o flawfinder encontrar uma vulnerabilidade de nível 4 ou superior. Observe o número da versão após o símbolo @; você pode selecionar uma versão diferente.

Você pode encontrar o nome da ação e a string de versão no Marketplace clicando no botão "Use latest/xxx version".

Opções de entrada:

  • arguments: Argumentos de comando do Flawfinder
  • output: Nome do arquivo de saída do Flawfinder. Pode ser enviado para o GitHub.

Integração com SonarQube

O Flawfinder integra-se ao plugin cxx do SonarQube. Adicione as regras do Flawfinder no SonarQube em "Administration > CXX External Analyers > Other Rule Definitions" executando o Flawfinder uma vez usando as seguintes opções.

root@kitploit:~
flawfinder --listrules --sonar [...]

Em seguida, no seu CI/CD, execute o Flawfinder assim para gerar saída que o SonarQube possa entender.

root@kitploit:~
flawfinder -CDQ --sonar [...]

Você deve redirecionar a saída para um arquivo que possa então carregar no SonarQube via a opção sonar.cxx.other.reportPaths.

Contribuições

Adoramos contribuições! Para mais informações sobre como contribuir, consulte o arquivo CONTRIBUTING.md.

Licença

O Flawfinder é lançado sob a licença GNU GPL versão 2 ou posterior (GPL-2.0+). Consulte o arquivo COPYING para informações sobre a licença.

Baixar ferramenta