Se ainda não conseguiu, leia agora a coluna de Mathew J. Schwartz: Secure Coding Or Bust (Codificação Segura ou Falência). A coluna fornece pontos de vista interessantes sobre porque o desenvolvimento de software seguro é importante.
Também oferece ótimas sugestões para um bom começo, como o Software Assurance Maturity Model (SAMM), o Building Security In Maturity Model (BSIMM) e o Security Development Lifecycle, da Microsoft.
São todos excelentes, mas não incluem alguns dos obstáculos mais importantes que precisam ser vencidos antes que o programa seja executado a toda velocidade. Vamos pesquisar três desses a fundo.
Mas antes gostaria de chamar a atenção para um importante recurso técnico – o Open Web Application Security Project ou OWASP. É uma comunidade de desenvolvimento de aplicativos de segurança que oferece guias, informações sobre vetores de ameaças comuns, técnicas de ataque e providências na maioria dos tipos de vulnerabilidades que afetam os aplicativos de rede. Há muito para ver por lá, sugiro que se informe.
Agora vamos aos três aspectos essenciais que você precisa pra vencer:
- Aposte em um campeão: começar um programa de segurança de aplicativos do zero tem mais a ver com conseguir apoio executivo do que com as técnicas em si. Por quê? Porque aplicativos de segurança afetam todo o seu desenvolvimento de programa, desde os custos até a forma como são tratados os defeitos de formação dos desenvolvedores e o que é pedido a eles para priorizar; isso pode até mesmo reduzir o tempo de liberação. Construir a segurança do aplicativo em um programa onde ele não existia antes, não é nada fácil.
O que fazer então? Aposte em um campeão executivo. Alguém bem acima no organograma para fornecer a força política necessária quando as coisas ficarem difíceis. E elas costumam ficar difíceis especialmente quando os desenvolvedores estão sendo pressionados a acelerar a produção de um aplicativo – mesmo quando têm vulnerabilidades críticas que serão “deixadas para lidar mais tarde”. Sim. É aqui que a briga começa. Francamente muitas – se não a maioria – das equipes de segurança não têm o poder de diminuir o tempo de desenvolvimento para responder às preocupações de segurança. Eles podem aconselhar, mas não podem fazê-lo. Um executivo com a autoridade de desacelerar o desenvolvimento – quando necessário – é essencial em dados momentos. E ele vai ajudá-lo com todo o resto que se pode encontrar em uma estrutura de segurança: como obter orçamento e convencer os outros de que o desenvolvimento de aplicativos de segurança é o melhor interesse da empresa.
Acredite em mim: a maioria dos executivos não entende dessas coisas, e você precisará de alguém com poder para brigar por você.
- Listar uma equipe de padrão de qualidade: ter um executivo no programa de desenvolvimento de aplicativo de segurança também é importante para ajudar a mudar a maneira que funciona o desenvolvimento. Em vez de intrometer-se com os desenvolvedores e declarar como tudo o que eles codificaram até agora é horrível e “você vai mostrar como se faz direito”, talvez seja hora de tentar uma tática diferente. O ideal é convencer a organização que os defeitos de segurança devem ser tratados e corrigidos como parte do processo normal de Garantia de Qualidade (QA). A realidade é que muitas organizações não encaram as falhas de segurança da mesma maneira que tratam as falhas de software, que afetam o desempenho e disponibilidade. No entanto, tornar a falha de segurança parte do processo de QA seria interessante para orientar as equipes de desenvolvimento que o grupo de segurança está agindo como o novo xerife da cidade.
- Combater o desejo de fazer tudo desde o início: assim que começar a busca, começará a achar mais vulnerabilidades em aplicativos do que é capaz de lidar. É como ligar a luz da cozinha após um tempo de abandono: as baratas e os ratos estarão escondidos. Somente quando iluminado, seu programa de segurança mostrará uma dúzia de classes de vulnerabilidades, que ocorrem várias vezes em vários aplicativos. Há muitas vulnerabilidades, dependendo do tamanho da sua empresa, para voltar atrás em todos os softwares existentes e corrigir todos os aplicativos. Então comece com uma lista básica de vulnerabilidades que estão nos aplicativos recém-desenvolvidos. Comece com esses, a partir daí adicione vulnerabilidades a lista para a equipe de QA procurar durante o processo de avaliação.
Nem todos os problemas de segurança de software serão resolvidos com isso, mas certamente você estará no caminho certo. E não é tão fácil como baixar um framework de desenvolvimento de aplicativo e executá-lo.
(Tradução: Alba Milena | Edição: Adriele Marchesini) |
Nenhum comentário:
Postar um comentário