Suas aplicações são seguras?

Conheça a Conviso!

Testes de Segurança em processos de desenvolvimento ágil

Ainda que os testes, frequentemente, sejam vistos como uma fase em separado do desenvolvimento de uma aplicação, no método ágil, eles são uma tarefa totalmente integrada ao esforço de codificação. Dessa forma, é fundamental que os programadores e empresas identifiquem quais testes e análises de segurança devem ser feitos durante esse trabalho, assim como os momentos mais adequados para a execução de cada um deles.
Quer aprender mais sobre o assunto? Então continue lendo nosso post:

 Antes dos sprints

Antes do início de cada unidade de desenvolvimento (ou sprint), os programadores podem fazer a modelagem de ameaças, teste pelo qual são buscados problemas de segurança sob a perspectiva de um agressor para, em seguida, se planejar as defesas.

Nessa fase, também é possível fazer a lista de falhas de segurança, uma análise em que se reúnem as informações sobre vulnerabilidades e os dados técnicos necessários para sua correção.

Outro teste importante é a verificação dos patches de segurança usados nos códigos comerciais ou open source reaproveitados no sistema. Em seguida, esses patches devem ser incorporados como tarefas no desenvolvimento ágil da aplicação.

Rotineiros

Durante o desenvolvimento em si, os programadores também podem fazer alguns testes importantes de segurança.

O teste unitário, por exemplo, permite a identificação de falhas que podem surgir após alterações recentes. Já o teste de regressão ajuda a verificar se as mudanças realizadas no código realmente corrigiram as falhas observadas anteriormente, conforme se esperava.

Nesse momento, a programação em par, que é um dos princípios do desenvolvimento ágil, também possibilita o teste de revisão manual, em que um colega verifica o código de outro. Sob o ponto de vista da segurança, esse procedimento ajuda a empresa a se certificar de que o código está dentro dos padrões e identifica possíveis falhas de implementação, como a autenticação de usuários insuficiente ou o uso de variáveis não filtradas.

A cada sprint

Alguns testes específicos podem ser conduzidos ao fim de cada unidade de desenvolvimento.
Na análise estática, por exemplo, avalia-se o código fonte da aplicação para encontrar vulnerabilidades, erros e omissões na linguagem, quase como um complemento automático para a revisão na programação em par.

Já na análise dinâmica, a empresa pode encontrar problemas que não ficaram claros no código, mas sim na execução do sistema, explorando os vários caminhos e funcionalidades da aplicação.

Por sua vez, a análise de componentes leva em conta a aplicação e o ambiente em que ela está inserida, testando o código de terceiros (open source ou comercial), elementos do sistema operacional e outras ferramentas aproveitadas.

Testes adicionais

Antes que a aplicação seja efetivamente instalada e disponibilizada para os usuários, ainda é possível conduzir alguns testes que ajudam a identificar vulnerabilidades que um agressor pode aproveitar em um ataque.

Na avaliação de vulnerabilidade, a empresa faz um scan na própria aplicação, validando suas configurações, avaliando os serviços de autenticação de usuários, entre outros aspectos. Já no teste de penetração, o desenvolvedor deve explorar a aplicação para ver como um agressor real agiria no sistema, identificando áreas que realmente representam um risco por meio da reprodução de técnicas e ferramentas utilizadas por esses usuários.

Não se esqueça de que, quanto mais cedo as vulnerabilidades e os erros são encontrados no código, menos tempo e dinheiro sua empresa precisará gastar para corrigi-los. Essa relação faz com que as soluções manuais e automatizadas para testes de segurança se tornem um fator crítico para um processo mais eficiente de desenvolvimento.

E você, já conhecia todos esses testes? Qual deles você costuma aplicar? Compartilhe suas dúvidas e experiências com a gente nos comentários!

Originalmente postado no Blog da Conviso Application Security – Siga-nos no Twitter @conviso Google+

Tags

Um comentário

Deixe uma resposta

Seu endereço de e-mail não será publicado.

topo