Ainda é comum no mercado encontrarmos empresas com algumas dúvidas quando o assunto é desenvolvimento seguro. Como por exemplo, quais são as diferenças entre code review e pentest.
Você pode ouvir a nossa versão em aúdio desse artigo:
Uma destas dúvidas está relacionada com o momento correto de execução de alguns tipos de testes no processo de desenvolvimento seguro.
Pensando nisso, vamos apresentar alguns conceitos e informações que esperamos que esclareçam estas dúvidas.
Um cenário complexo e desafiador
Todo início de ano temos uma série de pesquisas e dados que são publicados por diversos centros de pesquisa e empresas que tentam mapear o que aconteceu no ano anterior na área de Cybersecurity.
Este ano não foi diferente, e um dos relatórios mais esperados é o produzido pela NTT Security. E neste último relatório os dados nos mostram que o cenário vem se tornando um pouco mais complexo e desafiador.
Os dados podem não ser os mais recentes, mas ainda refletem muito do cenário que encontramos no mercado.
De forma global o relatório nos mostra que continuamos tendo mais ataques direcionados à aplicações web do que outras tecnologias, isso principalmente no mercado financeiro e em empresas de outros setores.
Esse dado é confirmado quando percebemos que 43% das empresas, em um cenário global, afirmam que não possuem profissionais suficientes e ou mesmo qualificados para buscar as soluções para estes problemas.
Se trouxermos o cenário para mais próximo de nossa realidade, analisando os dados do relatório para as américas, vamos encontrar dados bastante semelhantes aos dados globais.
Este fato pode e vai de encontro a um dos argumentos muito usados por gestores quando apresentamos dados para demonstrar um ponto de vista em nossas apresentações, de que estes dados são referentes aos cenários globais, europeus ou centrados nos EUA.
Estes dados demonstram a importância do entendimento do que são os testes relacionados e identificados no artigo, bem como do entendimento de como estes testes podem ajudar neste cenário.
O que é e quando usar o pentest
Em um de nossos artigos, já tratamos sobre pentests e inclusive já colocamos nosso entendimento sobre o que é um pentest e como ele deve ser usado dentro de um processo de desenvolvimento seguro, e só para relembrar colocamos aqui abaixo um trecho do artigo.
“O Pentest é um tipo de teste que deve ser executado preferencialmente dentro do processo de Continuous Application Security, idealmente em fases finais, de forma que seja possível observar a segurança de uma aplicação já em produção.”
A questão não é só de entendimento, temos também gestores e profissionais de desenvolvimento que ainda não conseguem identificar em qual momento é importante a execução de um pentest.
Para isso, vamos descrever como é um processo de desenvolvimento seguro, e dentro deste contexto, colocar onde o pentest é executado.
Como mostrado na imagem, a execução de pentests deve ocorrer na fase de testes de um processo de desenvolvimento.
A execução do pentest nesta fase vem garantir que todas as medidas de segurança implementadas durante o processo de desenvolvimento estão trabalhando dentro do esperado.
Escrevemos um artigo mostrando diferentes tipos de pentests e acreditamos que possa ajudar na construção do conhecimento.
O que é e quando usar o code review
Quando falamos de Code Review, precisamos entender que este é um outro tipo de teste e que a sua finalidade difere da finalidade do pentest.
Neste artigo não vamos detalhar muito o que é um code review, já temos um outro artigo descrevendo de forma bem detalhada o assunto.
Se utilizarmos como base a mesma imagem acima, também fica claro que o uso e execução do code review acontece em momento bem diferente de quando executamos um pentest.
Podemos perceber que o code review será executado dentro do processo de codificação, e é um dos mecanismos usados para garantir a segurança do código.
“Revisão de código segura é provavelmente a mais simples técnica efetiva para identificar bugs de segurança cedo dentro do processo de desenvolvimento. Quando usada em conjunto com testes de intrusão automáticos e manuais, code review pode aumentar significativamente a efetividade na verificação da segurança das aplicações.”
Veja que pela declaração acima, que podemos encontrar no OWASP Code Review Guide que não há restrição alguma no uso das duas formas de testar uma aplicação ou código.
Muito pelo contrário, percebemos que para garantir a segurança de uma aplicação, temos que lançar mão de várias soluções, técnicas e ferramentas, todas trabalhando em conjunto.
A segurança não é apenas um ato isolado
Acreditamos que ao fechar este artigo conseguimos deixar mais claro a função e o momento de cada um dos testes, mas sempre estamos abertos para ajudar a esclarecer as dúvidas que possam ter ficado.
O importante no processo de desenvolvimento seguro é entendermos que a segurança de um código não é o resultado de um ato isolado, o resultado de um código seguro é conseguido com um processo definido, claro e maduro.
O uso de técnicas e ferramentas é fator fundamental para conseguirmos alcançar o objetivo de proteção do código.
Mas sem deixar de lado o fator humano, o profissional com sua experiência vai sempre buscar resolver problemas e burlar soluções que dificilmente uma ferramenta faria.