#use wml::debian::template title="Exemplo de auditoria automatizada: flawfinder" #use wml::debian::recent_list #use wml::debian::translation-check translation="be191e77facf8c0d489cfd320232517e5233a3e2"

O flawfinder é um escaneador de propósito geral para encontrar e reportar potenciais falhas tanto em código-fonte C quanto C++.

Executando flawfinder

Executar o flawfinder é tão simples quanto invocar o comando com o nome de diretórios ou arquivos para examinar. Se dado um nome de diretório, ele processará todos os arquivos-fonte válidos que encontrar dentro daquele diretório.

Além de fornecer ao programa uma lista de arquivos ou diretórios, existem diversas opções de linha de comando que podem ser usadas para controlar o comportamento da ferramenta.

Cada uma das opções é explicada nas páginas man, mas as seguintes opções são particularmente úteis e serão usadas em nosso exemplo:

Para produzir um arquivo HTML contendo os resultados de nosso programa, somente se preocupando com funções de "alto risco", executaríamos algo assim:

flawfinder --html --context --minlevel=4 test.c > output.html

Os resultados

Executar o flawfinder contra nossa amostra de código produz a seguinte saída:


# Nota do tradutor: trecho não traduzido, pois trata-se da saída do programa

Examining test.c

Number of hits = 4
Number of Lines Analyzed = 48 in 0.53 seconds (1392 lines/second)


Entendendo a saída

Muito parecida com a saída do RATS, este relatório é muito simples de ler. Ele claramente mostra as funções que foram detectadas como potencialmente perigosas, como também uma descrição do problema.

A inclusão de informação contextual é muito útil também, já que ela pode imediatamente atrair a atenção para áreas de interesse, ou rejeitar outros relatórios como sendo inválidos.

A análise da nossa amostra de código é claramente inteligente, no sentido de que ela não avisou sobre toda utilização da problemática função strcpy - somente aquelas que considerou serem potencialmente perigosas.

Nesse sentido, ela conseguiu realçar todas as falhas do nosso código ao mesmo tempo em que não teve falso positivos.


Voltar para o projeto de auditoria | Voltar para a página de amostra de auditoria