Segurança de Aplicação

Code Review versus Secure Code Review

No processo de construção do software, há diversas etapas que são essenciais para que o desenvolvimento seja realizado de acordo com padrões de qualidade e segurança. Para que o código mantenha estes padrões durante o desenvolvimento, temos duas abordagens importantes que podem ser utilizadas para validar a qualidade do software: code review e secure code review. Neste artigo, comentaremos a importância de cada um, e como são utilizados.

No geral, o code review tem como objetivo identificar possíveis falhas, bugs ou oportunidades de melhorias no código fonte de acordo com a sintaxe e boas práticas de cada linguagem. Enquanto o secure code review tem como foco a identificação de problemas relacionados a vulnerabilidades de segurança. Caso tenha interesse, a OWASP fornece um material completo relacionado a secure code review.

Qual a diferença entre Code Review e Secure Code Review?

O objetivo do code review é encontrar e apontar falhas, bugs ou oportunidades de aprimoramento no software. A revisão pode ser feita em pares, ou por apenas um desenvolvedor, o mais importante é a compreensão do código e disseminação das lições aprendidas entre os desenvolvedores.

Geralmente, o code review é feito após cada commit (quando é feita alteração no código), ou em alguns casos a cada Pull Request (quando é solicitado uma porção do código a uma branch). É importante que na hora de fazer o code review o desenvolvedor atente-se às boas práticas. Em alguns casos a própria empresa costuma ter um guia de desenvolvimento.

Caso a empresa não possua um guia de boas práticas, é essencial que seja estabelecido um critério para análise dos códigos. A seguir, temos alguns pontos importantes que podem ser levados em consideração na análise: reutilização de código, complexidade do código, nomeações de variáveis, campos, parâmetros ou até mesmo se as classes ou métodos refletem o que realmente representa.

Ainda falando sobre code review, é possível utilizar análises manuais ou automatizadas. A análise manual consiste no próprio desenvolvedor procurar pelos problemas, falhas ou defeitos, utilizando um guia ou experiência própria de desenvolvimento. Já na análise automatizada, é utilizado ferramentas que auxiliam na padronização da qualidade do código (conferir se as boas práticas estão de fato sendo aplicadas),  ser acionável em pontos importantes, e até mesmo relatórios dos testes realizados.

Além disso, é bom lembrar que tanto para o code review quanto para o secure code review, não há discriminação hierárquica para quem esta fazendo a revisão. Entretanto, é necessário que tenha conhecimentos em desenvolvimento e segurança de software (ainda mais se o foco for secure code review).

Para que o code review seja eficiente, é válido estabelecer uma certa frequência na revisão, além de ter bem definida a etapa em que deve ser realizada. A seguir, enumerei  algumas práticas que podem deixar o seu code review mais eficiente:

  • Foque na qualidade durante o code review, e não na quantidade linhas.
  • Prefira tempos curtos, no entanto, com maior concentração, foco na qualidade.
  • Estabeleça objetivos e métricas claras, como: “diminuir erros reportados”.

Já no processo de secure code review, além de ter como base alguns dos itens mencionados no code review, a atenção deve ser voltada primordialmente para a segurança do software. É importante estar atento às possíveis brechas de segurança, pois algumas dessas falhas podem estar relacionadas com: autenticação, autorização, gerenciamento de sessão, injeção de código, controle de acesso, entrada de dados, dentre outros.

A revisão manual no secure code review, terá como ponto de atenção a revisão de brechas voltada para segurança do código. Essa revisão costuma ser mais precisa, no entanto, mais lenta, através dela é levada em consideração as regras de negócios, sendo assim, a tendência de ter falsos positivos podem ser diminuídas, o que por sinal é um grande ganho dessa prática.

Por outro lado, para uma melhor otimização do tempo, temos também a automatização do secure code review. Durante este processo é possível utilizar ferramentas de SAST que realiza um scan no código, permitindo automatizar parte do processo da análise, facilitando a busca por brechas. Quer saber mais sobre a diferença entre code review e SAST?

Podemos concluir que o code review é fundamental no desenvolvimento, e para que seja bem estruturado deve ser adotado métodos e ferramentas, como um guia de boas práticas,  revisão manual e testes automatizados. Cada técnica tem um papel específico no processo e, em conjunto, podem levar a uma melhoria significativa na qualidade e segurança do software.

A revisão manual pode identificar falhas que outras técnicas não conseguem detectar. Já os testes automatizados verificam a funcionalidade e segurança do software em diferentes cenários. A combinação dessas técnicas pode trazer resultados ainda mais positivos, como a identificação mais eficiente de vulnerabilidades e a melhoria contínua do processo de revisão de código. Somado a um bom guia de boas práticas, torna-se ainda mais poderoso!

Lembre-se: o code review busca aprimorar a qualidade do software no geral, como bugs, defeitos e a disseminação de boas práticas na análise do código, o processo tem como foco a qualidade. Já no secure code review, o foco é em encontrar vulnerabilidades de segurança, seja de forma manual ou automatizada.

Nova call to action

About author

Articles

Bacharel em Sistemas de Informação, e pós-graduando em defesa cibernética. Possuo 4 anos de experiência na área de segurança da informação, atualmente exerço o cargo de consultor de segurança de aplicações na Conviso. Apaixonado por tecnologia, ciência e segurança da informação.
Related posts
Segurança de Aplicação

Por que a documentação de software é importante para desenvolvedores?

Para iniciar, se você é um desenvolvedor ou trabalha com desenvolvimento de software, já deve ter…
Read more
Segurança de Aplicação

Padrões de Arquitetura de Segurança

Os padrões de arquitetura de segurança são baseados nas declarações de política e estabelecem…
Read more
ProdutoSegurança de Aplicação

A melhor forma de configurar uma ferramenta de Application Security Testing (AST) em seu CI/CD

Aqui iremos entender algumas maneiras (e seus prós e contras) para configurar uma ferramenta de…
Read more

Deixe um comentário