
VisualCodeGrepper - Ferramenta de varredura de segurança de código.
VCG (VisualCodeGrepper)
Versão atual: 2.3.2
====================================================================================
Conteúdo:
O VCG é uma ferramenta automatizada de revisão de segurança de código que suporta C/C++, Java, C#, VB, PL/SQL, PHP e COBOL. Possui alguns recursos que, esperançosamente, devem torná-la útil para qualquer pessoa que realize revisões de segurança de código, particularmente quando o tempo é escasso:
Tentei produzir algo que não retorne a grande quantidade de falsos positivos que são retornados por algumas ferramentas e que também pesquise de forma inteligente para identificar estouros de buffer e comparações com sinal/sem sinal.
Novos recursos: 1) Mudança na GUI significa que a seleção do idioma de destino é feita por meio de uma lista suspensa em vez de menu (como na V2.3.1). 2) A funcionalidade beta agora inclui a verificação de R Script (como na V2.3.1). 3) Correções de bugs menores para lidar com vários problemas e restaurar a permissão de múltiplas instâncias do aplicativo.
Arquivos de entrada/Base de código:
Antes de verificar o código, certifique-se de que o idioma correto esteja selecionado, pois o VCG só testará problemas relacionados ao idioma selecionado e só verificará os tipos de arquivo relevantes. O idioma pode ser selecionado no menu de configurações ou na caixa de diálogo de opções. Selecione o diretório que contém o código a ser verificado usando Arquivo=>Novo Alvo... O VCG então carregará todos os arquivos que tiverem as terminações especificadas.
Os padrões estão abaixo, mas podem ser modificados usando a caixa de diálogo Opções: C/C++: .c .h .cpp .hpp Java: .java .jsp web.xml config.xml (os arquivos xml são incluídos para verificar a validação de entrada pelo Struts, etc.) PL/SQL: .pls .sql .pkb .pks C#: .cs .asp .aspx web.config (o arquivo web.config é incluído para verificar a validação de entrada, configurações de depuração, etc.) VB: .vb .asp .aspx web.config (o arquivo web.config é incluído para verificar a validação de entrada, configurações de depuração, etc.) PHP: .php php.ini (o arquivo php.ini é incluído para verificar configurações incorretas como register_globals) COBOL: .cob .cbl .clt .cl2 .cics R: .r
Opções e Configurações:
Tipos de arquivo - Use isto para alterar os tipos de arquivo que o VCG irá procurar para cada tipo de código. Para procurar em todos os arquivos de um diretório, adicione .* à lista ou exclua todos os tipos e envie uma string vazia. Arquivos de configuração - Especifique um arquivo de configuração para cada linguagem. Este contém uma listagem de quaisquer funções ou fragmentos de código que possam ser considerados um risco e que exijam relatório. Este recurso essencialmente adiciona uma camada adicional de verificações sobre as operações mais complexas realizadas como parte da varredura do código. Severidade - O VCG pode ser configurado para reportar apenas erros acima de um determinado nível de severidade. Por exemplo, selecione 'Medium' para obter apenas Medium, High e Critical no relatório. Configurações de COBOL - A coluna inicial deve ser especificada - ou seja, a primeira coluna após os números de linha. Geralmente será 1 para uma listagem sem números de linha ou 7 para uma listagem que inclua números de linha. Uma configuração diferente pode ser necessária se as linhas de código/comentário na listagem começarem em uma coluna diferente. A configuração z/OS pode ser usada para incluir verificações de uso seguro da API CICS, etc. Configurações OWASP (somente Java) - Se selecionadas, identificarão duas violações das boas práticas OWASP para programação Java listadas nas páginas de codificação segura da OWASP. Classes aninhadas e classes públicas não finais serão reportadas - como provavelmente haverá grandes quantidades destas violações sem grande risco, a opção é dada para desativar qualquer uma destas verificações. Arquivo de saída - A saída ASCII será gravada neste arquivo, se selecionado. Funcionalidade beta - Selecione se deseja usar qualquer funcionalidade beta clicando na caixa de seleção apropriada em Options -> Beta Functionality. Atualmente, a funcionalidade beta disponível é a localização de Comparação Com/Sem Sinal em C (muito não confiável), e a varredura de R (testada e funcionando razoavelmente bem - próxima de ser incluída na próxima versão).
Varredura:
A varredura pode ser realizada de três maneiras:
Arquivos de Configuração:
Existem arquivos de configuração para cada uma das seis linguagens que o VCG examina. Estes fornecem uma camada adicional de varredura para complementar as varreduras complexas integradas para cada linguagem. O conteúdo dos arquivos de configuração consiste em uma lista de funções/fragmentos de código a procurar, juntamente com uma descrição associada a aparecer nos resultados. A descrição inclui uma configuração opcional de severidade entre colchetes e é separada da função por '=>' com o seguinte formato: nome da função[=>][[N]][descrição] (onde N é uma classificação de severidade de 1 (Critical) a 3 (Medium) (ou, opcionalmente, 0 para 'normal'))
Por exemplo: strcat=>[3]String concatenation function which facilitates buffer overflow conditions. Appears in Microsoft's banned function list.
Saída:
O Visual Code Breakdown será mostrado quando a varredura terminar.
Os resultados são gravados no painel de resultados na ordem em que foram localizados. Os resultados têm o seguinte formato: SEVERITY: Code issue Line number - File name Description [code fragment]