Segurança de Aplicação

Code Review X 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.

Você também pode ouvir esse conteúdo:

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

A Importância da Supply Chain para a Segurança das Aplicações

Para iniciar, quando pensamos em desenvolvimento de software, geralmente associamos essa área a…
Read more
Segurança de Aplicação

O que é WAAP (Web Application and API Protection)

Primeiramente, bem-vindo ao mundo da Proteção de Aplicativos Web e API (WAAP – Web…
Read more
Segurança de Aplicação

Os desafios em segurança de aplicações no uso da inteligência artificial por desenvolvedores

À medida que a inteligência artificial (IA) se torna cada vez mais presente em nosso dia a dia…
Read more

Deixe um comentário