É evidente que muitos softwares acabam por ser a peça chave na qual empresas, governos e proprietários de infraestruturas críticas confiam as suas operações mais vitais. Por essa razão, clientes corporativos estão legitimamente preocupados com a segurança do software e o potencial para sua exploração por aqueles que procuram perturbar maliciosamente as suas operações.

No campo da segurança no desenvolvimento de software, alguns desenvolvedores focalizam as suas acções somente em um limitado conjunto de procedimentos de codificação segura, levando-os a um estado de aparente esquecimento de que o raio de acção dos malfeitores em busca de vulnerabilidades nos seus produtos é bastante amplo.

Como consequência desta constatação, tenho focalizado parte do meu esforço profissional no aprimoramento do conjunto de práticas de segurança aplicáveis durante as distintas etapas do ciclo de vida de desenvolvimento de um software. E foi neste caminhar que esbarrei-me com um conceito que eleva a essência da segurança no desenvolvimento de software: Software Assurance, podendo ser definido como:

“O nível de confiança de que o software está livre de vulnerabilidades, quer sejam intencionais ou acidentalmente inseridas em qualquer momento durante seu ciclo de vida; e de que o software funciona da maneira pretendida.”

O poder deste conceito reside no facto de que na prática, o Software Assurance envolve uma responsabilidade partilhada entre os fornecedores,  provedores de serviços e soluções, e clientes; responsabilidade esta que é  sustentada por três pilares:   

  • Segurança: As ameaças à segurança são antecipadas e tratadas na altura da análise, desenvolvimento e testes do software. Isto requer uma atenção em ambos os aspectos de qualidade (por exemplo, ”livre de buffer overflow ”) e requisitos funcionais (por exemplo, ”os números de passaporte devem ser encriptados na base de dados ”).
  • Autenticidade: O software não é falsificado e os clientes são capazes de confirmar que eles têm os componentes reais.
  • Integridade: Os processos para codificação, criação e entrega de software contenham controles para aumentar a confiança de que o software funciona como o fornecedor pretende.

Tendo agora a autenticidade  e a integridade como parceiras da segurança, ganha-se a noção de que o trabalho dos profissionais encarregues de manterem imaculada a cadeia de fornecimento de software possuí uma dimensão que ultrapassa as habituais linhas de códigos.

E é com o intuito de massificar a criação de softwares seguros, aplicando procedimentos de Engenharia de Software e de Gestão de Projectos de Software que asseguram um produto final livre de falhas de concepção lógica e técnica, que dedicarei um espaço privilegiado neste blog na esperança de que este singelo processo de consciencialização surta o efeito desejado.

Anúncios