Desenvolvimento de código seguro: inviável com Agile?
As equipes ágeis são reconhecidas por produzirem, com velocidade, código confiável e de alta qualidade. No entanto, observa-se que uma pressão por tal velocidade pode resultar em revisões de código e testes limitados e, por fim, na falta de atenção a aspectos de segurança. Seria o desenvolvimento de código seguro inviável dentro de Agile?
Um estudo realizado com pequenas e médias empresas indica que as equipes ágeis não levam as questões de segurança a sério, mesmo quando estão construindo sistemas que estarão acessíveis pela web. O estudo diz:
Mesmo em casos em que a segurança é um requisito forte e a modelagem dos aspectos de segurança é solicitada à equipe, não há garantia de que o resultado final atenda aos critérios de qualidade esperados.
Adrian Lane também analisou os riscos de segurança associados ao desenvolvimento de software através de metodologias ágeis. De acordo com Lane:
As implementações de Agile, baseadas nas instruções contidas em livros, tem principalmente o foco na entrega eficiente de funcionalidades de negócio, o que ocorre à custa de uma negligência aos aspectos de segurança, deixando-os fora do escopo do desenvolvimento.
Rocky Heckman sugere que mesmo com técnicas como desenvolvimento orientado a testes (TDD) e programação em pares, o foco continua a ser principalmente sobre a entrega de funcionalidades:
O objetivo principal dos testes é a geração de código de alta qualidade, sempre com a perspectiva de novas funcionalidades e a confiabilidade na repetição das operações. Há pouca ou nenhuma atenção aos testes contra ameaças e vulnerabilidades.
O desenvolvimento ágil representa então uma total negligência às questões de segurança? Existem alternativas.
Jim Bird sugere que com um pouco de cautela é possível lidar com os riscos de maneira incremental. De acordo com Bird, as práticas de segurança devem ser inseridas no trabalho das equipes, como quaisquer outras práticas de qualidade. Por exemplo, as equipes podem utilizar de maneira incremental a análise da superfície de ataque para acompanharem as mudanças no perfil de riscos do sistema, que podem ser causadas por mudanças arquiteturais.
A modelagem contra ameaças não deve ser uma grande dificuldade para equipes que estão construindo software incrementalmente e que conhecem bem o seu código. As alterações, na sua maioria, podem ser realizadas dentro de um sprint de uma ou duas semanas. Assim sempre é possível reanalisá-las, mesmo quando se altera a superfície de ataque.
Bird também menciona o uso de sprints de segurança, em que a equipe procura por bugs que representam ameaças no código, antes de realizar alterações mais importantes. Bird cita também Adrian Lane, quando diz que a segurança deve ser essencialmente uma preocupação da equipe de desenvolvimento e não do cliente. As equipes devem assumir a responsabilidade e dar a devida atenção a estes aspectos.
Mesmo de um cliente muito bem intencionado não se pode esperar o completo entendimento das questões relacionadas a como se construir um software seguro.
Dessa forma, com boas métricas e uma atitude correta é sim possível fazer da segurança parte do processo de desenvolvimento. Bird destaca:
Não há nenhuma razão para que o desenvolvimento ágil seja um fracasso em termos de segurança. O esforço técnico, o compromisso com a qualidade e com os detalhes que são necessários para se construir software seguro, são os mesmos, independentemente das práticas de desenvolvimento utilizadas.
E você, qual sua opinião sobre o tema, baseado em suas próprias experiências? Qual a relação entre as práticas ágeis e a segurança das aplicações desenvolvidas por sua equipe?
Desenvolvedores desenvolvem aquilo que é proposto
by
Giulliano Morroni
E se segurança for elencada como requisito de suma importância, logicamente que as pessoas irão trabalhar com atenção neste aspecto. Não concordo com esta abordagem.
Re: Desenvolvedores desenvolvem aquilo que é proposto
by
Robson Castilho
Sim. Mesmo que haja o papel de arquiteto de software explícito no time, os demais devem conhecer pelo menos um pouco de arquitetura (assim como um pouco de análise, de testes, front-end, etc..). Assim o time fica mais balanceado, não ficando na mão de um só. Além do mais, o dev passa a ser muito mais completo (nos dias de hoje não tem mais esse negócio de "só faço isso").
Desenvolvedor deve ter compromisso com qualidade, seja interna ou externa..
Agora concordo contigo: também não entendi esse estudo.
[]s
Metodologias não-ágeis são 100% seguras
by
anderson freitas
Todo software, independentemente da metodologia aplicada tem foco na entrega de funcionalidades.
Dizer que esse é o foco exclusivamente de métodos ágeis, seria tornar verdadeira a frase do assunto desse comentário: "Metodologias não-ágeis são 100% seguras".
Adicionar os itens relacionados a segurança dentro do escopo do projeto cabe a qualquer bom desenvolvedor, seja utilizando métodos ágeis ou não.
Se o software não é seguro, não é exatamente por que foi desenvolvido com métodos ágeis.
Se o software foi desenvolvido com métodos ágeis, não é exatamente inseguro por isso.
Esta mais relacionado a quem desenvolve, e não a qual metodologia utilizada.
Será que é só com equipes ágeis?
by
Fernando Lozano
O primeiro estudo citado só envolveu projetos ágeis, então não tinha como concluir diferente. Já o segundo não quer dizer que ágil gera software inseguro, e sim que o material que ensina ágil, assim como o material que ensina rup, análise estruturada, struts, asp.net, php, ruby e etc também não ensina a desenvolver com a devida preocupação com segurança.
Então, em vez de reclamar, segue uma fonte rica de informações para os desenvolvedores interessados poderem aprender:
www.owasp.org/index.php/Main_Page
Conteúdo educacional
Lean na Globo.com
Bernardo Heynemann 24 Mai, 2013
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião