Veja boas práticas que farão toda a diferença para profissionais que buscam garantir desenvolvimento seguro de aplicativos
O desenvolvimento seguro de aplicativos é um grande desafio, mas uma prática fundamental, uma vez que a segurança deve estar no topo das prioridades quando se fala de sistemas corporativos. A boa notícia é que existem estratégias modernas que aliam agilidade, produtividade e eficiência na proteção de dados, entre outros benefícios.
Quais habilidades desenvolvedores e outros profissionais envolvidos em projetos de construção de aplicativos devem trabalhar para lidar com ameaças?
Sobre isso vamos ajudar a refletir ao longo deste artigo.
Desenvolvimento seguro em ferramentas de infraestrutura como código
Ferramentas de infraestrutura como código (ou IaC) agora são parte essencial da maioria dos fluxos de trabalho de desenvolvimento de aplicativos. Usando-as, os times conseguem provisionar automaticamente e em larga escala ambientes de software. Ou seja, maximizam a escalabilidade e minimizam os riscos de erros de configuração, entre outros.
Por outro lado, se as configurações aplicadas usando modelos de IaC tiverem problemas de segurança, esses percalços são proliferados. Além disso, as ferramentas IaC normalmente não alertam os desenvolvedores em tempo hábil.
Por isso, algumas boas práticas são recomendadas. Entre elas, destacam-se:
- não codificar senhas ou outros segredos em modelos de IaC — é melhor armazená-los em um gerenciador externo;
- manter os modelos de IaC curtos e modulares, para evitar riscos de erros humanos;
- não confiar cegamente nas configurações padrão de IaC, certificando-se de adaptar os modelos ao seu ambiente;
- usar ferramentas de verificação de IaC para validar as configurações antes de aplicá-las — scanners IaC verificam automaticamente os modelos IaC em busca de configurações incorretas que podem criar problemas de segurança;
→ Leia também: O que é e por que é tão importante o desenvolvimento seguro?
Desenvolvimento seguro em código aberto
O código-fonte aberto de terceiros é cada vez mais aproveitado por equipes modernas de desenvolvimento. Ele economiza tempo, pois não é preciso criar o código do zero; e geralmente é gratuito, o que gera redução de custos.
Mas, é preciso atenção: há riscos significativos a serem considerados. O que não significa que eles não possam ser mitigados, especialmente sabendo onde no aplicativo deve-se incorporar o código-fonte aberto e também verificar esse código para identificar se há vulnerabilidades conhecidas nele.
→ Leia também:
- Quais são os principais riscos no uso de Open Source?
- Por que fazer análise de compliance e vulnerabilidade open source em suas aplicações?
- Boas práticas de segurança no desenvolvimento com Open Source.
Desenvolvimento seguro no nível do container
Os aplicativos modernos geralmente são implantados usando contêineres, que adicionam outra camada de infraestrutura e complexidade às pilhas de software. E, por isso, criam vários riscos de segurança.
Desenvolvedores e demais profissionais envolvidos, portanto, devem saber quais são esses riscos. Dessa forma, podem tomar medidas para resolvê-los.
Aqui estão algumas habilidades essenciais:
- proteger imagens de contêiner garantindo que todos os componentes externos dos quais eles dependam sejam seguros;
- usar um scanner de imagem de contêiner para verificar vulnerabilidades;
- verificar os arquivos de configuração usados para implantar e orquestrar contêineres;
- usar ferramentas de monitoramento para coletar e analisar dados de ambientes complexos em contêineres e detectar sinais de violações em tempo hábil;
Desenvolvimento seguro mitigando riscos de microsserviços
Entre outros benefícios, os microsserviços facilitam a criação de aplicativos ágeis e escaláveis que não possuem um único ponto de falha. Por isso se tornaram tão populares.
Mas, nem tudo são flores: eles também aumentam significativamente a complexidade das arquiteturas de aplicativos, o que, por sua vez, aumenta os riscos de problemas de segurança.
Como dependem da rede para se comunicarem, os microsserviços podem aumentam as chances de exposição de dados confidenciais. Isso porque controles inseguros de autenticação e autorização podem permitir que uma violação se espalhe de um microsserviço para um aplicativo inteiro.
Além disso, problemas de segurança com as ferramentas usadas para ajudar a gerenciar microsserviços (como malhas de serviço) criam outro conjunto de riscos de segurança a serem gerenciados.
Mas algumas das principais práticas recomendadas de segurança de microsserviços incluem:
- ao projetar a arquitetura, esforçar-se para isolar cada microsserviço o máximo possível — permitir interações entre serviços apenas quando estritamente necessário;
- sempre exigir autenticação e autorização para que os microsserviços se comuniquem;
- isolar as redes internas que os microsserviços usam da internet pública e nunca expor um microsserviço diretamente à web (a menos que seja muito necessário);
→ Leia também: Os principais acertos e erros no desenvolvimento seguro de software.
Resumindo
A maioria dos desafios de segurança com os quais os desenvolvedores lidam hoje não existia há dez anos. Há uma década, ninguém estava provisionando centenas de servidores usando modelos de IaC ou implantando aplicativos com arquiteturas altamente complexas baseadas em microsserviços e contêineres.
No entanto, essas práticas são a nova norma para o desenvolvimento moderno. Por isso, desenvolvedores e demais profissionais envolvidos devem manter-se atualizados sempre, já que o que se espera deles é — no final das contas — desenvolvimento rápido e seguro.
Que tal, o que acha destas abordagens para segurança da informação? Acha que as organizações já estãoi usando práticas e ferramentas voltadas para isto? Deixe seu comentário!