Falando em segurança no desenvolvimento de aplicações, é ponto fechado a necessidade de se pensar em segurança a cada fase do desenvolvimento. Pensar em segurança somente na hora de encriptar informações, ou autenticar um usuário, não pode ser considerado como levar segurança a sério.
No contexto mundial atual, onde as aplicações se tornam cada vez mais interconectadas, é importante que todos envolvidos no processo de construção do software estejam alinhados e comprometidos com a segurança, de Gerentes de Projeto até Testadores.
Com o objetivo de formalizar e padronizar as interações dos papéis nos diversos momentos da construção de software, surgiu o conceito de Metodologia de Desenvolvimento Seguro. Na linha das metodologias, quem já foi em minhas palestras ou costuma ler os meus blogs há algum tempo, vai lembrar da metodologia segura desenvolvida e utilizada pela Microsoft, a SDL (Secure Development Lifecycle). Apesar de eficiente e totalmente alinhada com o conceito da Computação Confiável, a SDL não é a única metodologia disponível.
Criada pela OWASP (Open Web Application Security Project), o CLASP (Comprehensive, Lighweight Application Security Process) também é um mundo a ser considerado e é dele que falarei brevemente por aqui.
O CLASP, assim como o SDL, é uma excelente iniciativa, mas se você pensa em comparar "qual é o melhor", com certeza entrará em uma cruzada em direção ao erro. Acontece que as duas metodologias possuem sensíveis diferenças de filosofia e de impactos nos projetos, sendo necessário a avaliação de acordo com a realidade da equipe e dos projetos para que a decisão de adoção de uma das duas (ou uma terceira) seja tomada adequadamente.
A principal diferença entre os dois em meu ver é como as duas se relacionam com a metodologia de desenvolvimento habitual (Seja RUP, seja xP, seja o tão em moda SCRUM). A SDL prega ser, por si só, uma metodologia fechada de desenvolvimento, focado em segurança, exigindo inclusive uma equipe própria, dedicada e não interligada a equipe do desenvolvimento funcional, o que sem dúvidas aumenta o custo do projeto e de gerenciamento de pessoal. Já o CLASP, prega ser um "framework", um conjunto de processos que devem ser inclusos dentro dos processos definidos pela metodologia de desenvolvimento funcional escolhida. Devido a esta característica, o CLASP não exige uma equipe focada somente na segurança do software, possuindo uma tabela "de-para", relacionando quais papéis de sua metodologia se relacionam com quais papéis da metodologia funcional.
Já nessa pequena análise, se faz notório diferenças práticas dos impactos em custo e prazo que as duas metodologias trarão aos seus projetos (pois para ter segurança é necessário um impacto, que deve ser visto como um investimento de retorno garantido). O SDL tende a obter, em um mundo real, resultados mais claros e diretos pelo fato de que os profissionais estarão focados somente na segurança, esquecendo a parte funcional do projeto, porém exigirá um custo alto em contratação e gerência de pessoal. Já o CLASP, é mais viável de utilização em projetos comerciais menores, pois não exige uma nova equipe, o que diminui considerávelmente o custo, mesmo trazendo um impacto maior em prazos.
Para conhecer melhor o CLASP, visite o site da OWASP (www.owasp.org) e encontre a documentação completa da metodologia de desenvolvimento. A leitura dos documentos é importante, pois mesmo que essa não seja a metodologia escolhida, o conhecimento adquirido ao ler os documentos será de grande valia ao profissional.
Ainda com relação ao CLASP, considero que o capítulo 5 da documentação do CLASP é um "must have" para todo profissional, por ser uma documentação extensa e detalhada (mais de 200 páginas) somente de possíveis falhas de segurança, devidamente classificadas.
Por último, devo dizer que o site da OWASP é uma página obrigatória nos favoritos de cada desenvolvedor. O portal possui um excelente projeto de categorização de boas práticas e soluções de segurança no desenvolvimento, em especial para as duas plataformas mais populares do momento: O Java e o .net. Não deixe de passar por lá e de incorporar segurança aos seus projetos. O cliente agradece!