Desenvolvimento Seguro em Cloud, primeiros passos

Você que está nos acompanhando, já viu os artigos sobre Modernização de Aplicações como uma Estratégia Financeira, aonde a abordagem Cloud Native te ajuda a reduzir custos com aplicação, e também viu como funciona um DevSecOps na Prática e entendeu a relevância de uma esteira madura, neste artigo vamos abordar um desafio, que não é recente mas que tem grande valor, o Desenvolvimento Seguro em Nuvem.

Com a crescente migração de aplicações para a Nuvem, e também o nascimento de aplicações já para a nuvem, o foco em desenvolvimento seguro tem se tornado cada dia mais solicitado, e antes o que era mais focado em ferramentas, hoje é diferente, vai desde o processo de arquitetura, esteira de DevSecOps, Deploy e monitoramento.

Com a adoção do “Cloud-First”, as arquiteturas estão sendo redefinidas para suportar tecnologias em nuvem, microserviços, containers, api’s, elasticidade. Esse novo ambiente proporciona desafios e oportunidades.

O que era uma responsabilidade maior, ou se pensava ser, de um time de segurança, também se torna algo de responsabilidade mútua, afinal, agora você tem Engenheiros de Cloud, Segurança, Product Managers, Desenvolvedores. Soma-se a isso a entrega com o uso de métodos ágeis, o fluxo é muito mais vivo e as entregas precisam ser cada vez mais rápidas, mas em conformidade com leis e regulamentos que vem sendo aprovados pelo mundo como a GDPR na Europa e a LGDP aqui no Brasil. A garantia de segurança se torna cada vez mais requerida dentro das organizações

Mas o que eu preciso me preocupar na hora de criar uma aplicação?

De acordo com estudos, a adoção do Ágil e DevOps reduzem a entrega de produtos defeituosos, grande parte do processo de testes, build, algumas validações já podem ser feitas automaticamente por esteiras de desenvolvimento, importante construir uma esteira madura e facilitar a mitigação de riscos já no desenvolvimento.

 

A Adoção de um modelo de SDL – O Security Development Lifecycle (SDL) consiste em um conjunto de práticas que oferecem suporte a requisitos de garantia e conformidade de segurança. O SDL ajuda os desenvolvedores a construir um software mais seguro, reduzindo o número e a gravidade das vulnerabilidades do software, enquanto reduz o custo de desenvolvimento – É algo que deve começar a fazer parte dos times que desenvolvem aplicações e estendidos aos Engenheiros e papéis envolvidos, algo que deve ser cultura de uma organização, um bom material é o SDL da Microsoft.

 

Algumas boas práticas devem ser observadas como passos iniciais:

  • Arquitetura com o princípio de “Segurança no Desenho”:  A seleção da tecnologia deve ser a segunda opção, as arquiteturas estão cada vez mais complexas, foque em trabalhar para que sua aplicação possa mudar de tecnologia, se necessário.
  • Integrar soluções de autenticação com suas aplicações: Importante ter um único ponto de controle sobre acessos a aplicação e a dados, facilitando o controle.
  • Encriptação dos dados em trânsito e armazenados: Extremamente importante, todos os dados trafegados e armazenados por sua aplicação devem ser criptografados, quando possível.
  • Princípio do menor privilégio para aplicações e usuários (Least Privilege): Outra coisa é garantir que suas aplicações (e usuários) só tenham acesso ao que realmente é necessário, e com o tipo de privilégio necessário (leitura, escrita, entre outras opções).
  • Aplicação que usem conexão com outros serviços com o uso de soluções de encriptação e rotação automático das senhas e chaves:  Que os dados de conexão (como senha e chaves de acesso) estejam protegidas por soluções que armazenem estes dados, e que apenas a aplicação consiga ler esses parâmetros, não precisa que o desenvolvedor saiba a senha do banco de produção, e que estes valores mudem sozinhos de tempos em tempos.

Segurança é o trabalho de todos: Desenvolvedores, StakeHolders, Engenheiros, Product Managers. Embora seja uma tarefa de todos, importante lembrar que nem todos precisam ser especialistas, e sim entender através da perspectiva de um possível ataque, assim ajudando a elevar a discussão sobre os processos.

Com isso, importante ressaltarmos sempre que o desenvolvimento de uma aplicação segura é sempre envolto por vários componentes, conexões externas, acessos, entre outros, e esses são apenas alguns dos passos que já contribuem para que possamos iniciar nossa jornada.

(*) José Augusto Ferronato é Cloud Enginner na Stefanini

Junte-se a nós

Receba Em Seu E-mail Conteúdos Exclusivos

Inscreva-se em nossa newsletter e receba novidades sobre o Grupo Stefanini.