scanner de qualidade de código-appsec

Qualidade do código e Segurança de Código Tenho vivido com duas ferramentas diferentes. Não precisa ser assim.

A maioria das equipes de engenharia mantém duas conversas distintas sobre a mesma base de código. Uma delas diz respeito à segurança: existe risco de injeção de SQL, algum segredo embutido no código, alguma dependência explorável? A outra diz respeito à manutenção: esta função é muito complexa? Este código está duplicado três vezes? Há algum código morto que ninguém se atreve a apagar?

Essas conversas geralmente acontecem em ferramentas diferentes, executadas por equipes diferentes e em horários diferentes. Um scanner de segurança sinaliza o que é explorável. Uma ferramenta de qualidade separada, geralmente comprada e gerenciada independentemente, sinaliza o que é caro de manter. Duas licenças, duas dashboards, dois analisadores sintáticos percorrendo a mesma árvore sintática abstrata para responder a duas perguntas diferentes.

Essa divisão tem um custo. Defeitos de confiabilidade (o tipo que causa falhas em tempo de execução, não violações) não recebem a mesma triagem rigorosa que as descobertas de segurança, porque estão fora do escopo da equipe de segurança. dashboardE quando uma equipe já possui um mecanismo de análise estática que examina cada arquivo para fins de segurança, implementar um segundo mecanismo, sem relação com o primeiro, apenas para verificar a qualidade do código, é um trabalho redundante sem nenhum benefício compartilhado.

Por que a qualidade do código é importante (e como ela difere de Segurança de Código)

Qualidade do código e Segurança de Código Responder a duas perguntas diferentes. Segurança de Código Pergunta-se: este código pode ser explorado? A qualidade do código pergunta: este código pode ser mantido? Uma função pode ser perfeitamente segura e ainda assim ser um emaranhado de quinhentas linhas que ninguém quer tocar, e um módulo bem organizado e fácil de ler ainda pode ser distribuído com uma falha crítica de injeção. Nenhuma das duas disciplinas substitui a outra.

O custo de ignorar a qualidade do código não se manifesta como uma violação de segurança imediata. Ele se manifesta mais lentamente: um novo funcionário leva duas semanas em vez de dois dias para fazer uma alteração segura; uma funcionalidade rotineira leva três sprints porque ninguém consegue prever o que um bloco duplicado pode quebrar em outro lugar; um engenheiro de plantão perde uma hora rastreando um bug em um código obsoleto que deveria ter sido removido há um ano. Nada disso dispara um alerta de segurança. Tudo isso se reflete na velocidade de desenvolvimento e, quando o problema se torna visível em uma retrospectiva da sprint, a correção já é cara.

É por isso que devemos tratar a qualidade com o mesmo rigor que a segurança: não porque um código com problemas seja uma ameaça, mas porque deixar que a dívida de manutenção se acumule sem monitoramento é o que transforma uma base de código no lugar onde as funcionalidades vão para morrer.

A Melhor Opção: Um Motor, Dois Catálogos de Regras

O analisador de qualidade de código da Xygeni analisa o código-fonte em busca de defeitos de manutenção e confiabilidade: "code smells" (cheiros de código), violações de complexidade, código morto e duplicação — padrões que não causam uma violação de segurança, mas que provocam interrupções, regressões e lentidão nas equipes.

A escolha de design que a distingue é arquitetônica, não cosmética. O Code Quality compartilha seu mecanismo de análise estática com Xygeni SAST digitalizadorOs mesmos analisadores sintáticos, a mesma construção de AST, a mesma descoberta de arquivos. O que não compartilha é o catálogo de regras. As regras de qualidade são focadas na qualidade, não na segurança, e as descobertas são apresentadas em uma seção de Qualidade dedicada da plataforma Xygeni, mantida separada de SAST e o restante das tabelas de risco de segurança.

O resultado: as equipes obtêm uma visão de manutenibilidade e uma visão de segurança a partir da mesma análise subjacente, sem mesclar duas preocupações diferentes em uma só, repleta de ruído. dashboard.

Duas maneiras de obter um sinal de qualidade em seu Pipeline

Nem todos os recursos de "qualidade de código" funcionam da mesma maneira internamente. Muitos CI/CD-As ferramentas de qualidade nativas são camadas de agregação: Eles não analisam seu código por conta própria.Eles importam resultados de qualquer linter que você já esteja executando (um linter de JavaScript, um linter de Python, um detector de duplicatas), cada um reformatado em um esquema JSON compartilhado e cada um configurado como seu próprio. pipeline etapa. Isso é flexível, mas significa que seu sinal de qualidade é tão consistente quanto a quantidade de ferramentas, formatos e mantenedores distintos que você reuniu, um para cada idioma.

O analisador de qualidade de código da Xygeni segue um caminho diferente: um mecanismo nativo, já em execução para segurança, estendido com um catálogo de regras de qualidade. Não há necessidade de instalar um linter específico para cada linguagem, reformatar um formato de relatório ou manter uma tarefa separada para cada ferramenta. Você obtém um único comando, um modelo de severidade consistente e uma única solução. dashboard seção, porque a análise nunca foi dividida entre as ferramentas desde o início.

O que é?

O Code Quality funciona como um comando CLI independente:

qualidade do oxigênio -d [opções] (xygeni code-quality funciona como um alias.)

Compartilha seu modelo de opções com oxigênio sastAssim, qualquer pessoa que já esteja executando o scanner de segurança da Xygeni reconhecerá a interface imediatamente:

OpçãoO que faz
-d, --dirDiretório para análise
--detectorsExecute IDs de detectores específicos ou uma classificação de gravidade e tudo o que estiver acima dela.
--fail-onSaída diferente de zero em uma determinada severidade, para CI/CD gating
--baselineCompare com uma linha de base e retorne apenas as novas descobertas.
--uploadEnviar resultados para a plataforma Xygeni

Geração de um relatório de qualidade de código

Uma análise gera um relatório de qualidade de código que você pode enviar para a plataforma, exportar como JSON para artefatos de CI ou entregar a um líder de equipe sem precisar compartilhá-lo com ele. dashboard Acesso. Ambos são comandos de uma linha:

# Digitalize e carregue diretamente para a plataforma Xygeni

Qualidade xygeni -n MeuProjeto –enviar

# Exporte um relatório de qualidade de código como JSON, contendo apenas as descobertas críticas.

qualidade do oxigênio -d –detectores críticos –formato json –saída qualidade.json

Após o upload, esse mesmo relatório de qualidade de código é o que preenche a seção Qualidade do dashboardFiltrável, com detalhes deslizantes por descoberta, linhas de base e o mesmo comportamento de relatório que as equipes já usam para SAST.

Executar verificação de qualidade em conjunto com uma verificação de segurança.

Para equipes que desejam ambos os sinais em um único passe, o SAST O scanner aceita um –incluir-qualidade bandeira:

oxigênio sast -d –incluir-qualidade

Porque SAST A análise sintática e a verificação de qualidade de código compartilham o mesmo estágio, o que é mais eficiente do que executar os dois analisadores em sequência. Isso gera dois relatórios separados, um de segurança e outro de qualidade, e cada um deles é armazenado em seu próprio diretório. dashboard A flag altera a forma como a varredura é executada, não a forma como os resultados são organizados.

Digitalização sem conectividade

Para ambientes isolados da internet ou executores de CI sem saída para a plataforma Xygeni, as verificações de qualidade podem ser executadas localmente e carregadas posteriormente:

qualidade do oxigênio -d -n MeuProjeto

…mais tarde, a partir de um host com conectividade:

xygeni report-upload -n MyProject -r depsdoctor-quality.json

Os resultados são apresentados na seção de Qualidade exatamente da mesma forma que seriam em uma análise em tempo real: mesma triagem, mesma política, mesmo comportamento de referência.

Por que é importante manter a qualidade separada da segurança

Seria fácil incluir os "code smells" na mesma lista de gravidade que uma vulnerabilidade explorável. A Xygeni, deliberadamente, não faz isso. Uma função duplicada e uma injeção de SQL não representam o mesmo tipo de risco, e tratá-las da mesma forma leva as equipes a reagirem de forma exagerada a ruídos relacionados à manutenção ou a reagirem de forma insuficiente a descobertas de segurança reais. Manter os catálogos de regras, os relatórios e o dashboard As visualizações separadas, embora compartilhem o mesmo mecanismo subjacente, significam que cada equipe recebe o sinal que lhe interessa sem precisar pagar por uma segunda ferramenta de análise estática.

Experimente: A Qualidade de Código já está disponível através da CLI do Xygeni. Equipes que já estão utilizando oxigênio sast pode adicionar –incluir-qualidade aos seus existentes pipeline Em uma única linha, sem nova ferramenta para integrar, sem segunda. dashboard checar.

Perguntas frequentes

O que é a Qualidade de Código Xygeni?

Xygeni Code Quality é um scanner de análise estática que detecta defeitos de manutenibilidade e confiabilidade, incluindo "code smells" (cheiros de código), violações de complexidade, código morto e duplicação. Ele é executado como um comando independente (qualidade xygeni) e os relatórios são inseridos em uma seção dedicada à Qualidade na plataforma Xygeni, separada das descobertas de segurança.

A qualidade do código é a mesma coisa que SAST?

Não. Qualidade do código e SAST Compartilham o mesmo mecanismo de análise sintática subjacente, mas utilizam catálogos de regras independentes e produzem relatórios independentes. SAST A análise de segurança busca vulnerabilidades; a análise de qualidade de código busca defeitos de manutenção e confiabilidade.

Posso executar uma verificação de qualidade e uma verificação de segurança ao mesmo tempo?

Sim. Correndo oxigênio sast -d –incluir-qualidade Executa ambos os conjuntos de regras em uma única passagem, o que é mais eficiente do que executar os dois analisadores separadamente, já que eles compartilham o estágio de análise sintática. Os resultados ainda geram dois relatórios separados e aparecem em dois diretórios distintos. dashboard .

Preciso de uma licença separada para o Code Quality?

Para carregar e visualizar os resultados de qualidade, é necessário ter a permissão de Qualidade de Código, a mesma necessária para executar a verificação.

O Code Quality pode funcionar sem acesso à internet?

Sim. As verificações podem ser executadas localmente sem o -carregar sinalizador, e o relatório resultante pode ser carregado posteriormente a partir de um host conectado usando Relatório xygeni - upload.

sca-tools-software-composição-análise-ferramentas
Priorize, corrija e proteja seus riscos de software
Crie sua conta gratuita.
Nenhum cartão de crédito é necessário.

Garanta o desenvolvimento e a entrega do seu software.

com o Suíte de Produtos da Xygeni