Por que os desenvolvedores são a chave para a segurança na nuvem
30 de setembro de 2022
0 minutos de leituraNa época dos data centers locais e dos primeiros passos na nuvem, as funções de desenvolvimento de aplicações, operações de infraestrutura e segurança eram, em grande parte, isoladas. Na nuvem, essa divisão de responsabilidades aumenta o tempo de lançamento de inovações no mercado, reduz a produtividade e cria riscos desnecessários.
A transformação da segurança: do data center para a nuvem
Em um ambiente de data center, os desenvolvedores criam aplicações de software, as equipes de TI constroem a infraestrutura para executá-las e as equipes de segurança garantem que as aplicações e a infraestrutura estejam protegidas. Os desenvolvedores precisam criar software dentro das limitações da infraestrutura e dos sistemas operacionais subjacentes, e os processos de segurança determinam o ritmo de todos. Quando a equipe de segurança encontra uma vulnerabilidade em produção, o processo de correção normalmente envolve todas as partes interessadas — e muito retrabalho.
Ao libertar as equipes das limitações físicas do data center, a nuvem está provocando a maior transformação no setor de TI em décadas. Mas as organizações levaram anos para começar a aproveitar todo o potencial da nuvem como plataforma para criar e executar aplicações, em vez de usá-la apenas para hospedar aplicações de terceiros ou migradas de um data center. Quando a nuvem é usada simplesmente como um “data center remoto”, a divisão clássica de responsabilidades é mantida, e grande parte do potencial da nuvem não é aproveitada.
A mudança para usar a nuvem como plataforma para criar e executar aplicações está transformando profundamente a segurança. Do ponto de vista do cliente da nuvem, plataformas como Amazon Web Services (AWS), Microsoft Azure e Google Cloud são 100% software, e os desenvolvedores agora programam a criação e o gerenciamento da infraestrutura em nuvem como parte integrante das aplicações. Isso significa que eles projetam a arquitetura da nuvem, definem configurações críticas para a segurança — e as alteram constantemente.
Isso cria uma grande oportunidade para organizações que atuam em setores altamente competitivos, pois as equipes de aplicações e nuvem podem inovar muito mais rápido do que conseguiriam em um data center. Mas também representa um grande desafio para as equipes que precisam proteger ambientes de nuvem cada vez mais complexos e dinâmicos.
Capacitar os desenvolvedores deve ser prioridade
Hoje, a única forma eficaz de abordar a segurança na nuvem é capacitar os desenvolvedores que criam e operam nela com ferramentas que os ajudem a trabalhar com segurança. Se isso não acontecer, a segurança se tornará o fator limitante da velocidade das equipes na nuvem e do sucesso da transformação digital.
Para entender como capacitar os desenvolvedores em segurança na nuvem, precisamos definir o que queremos dizer com “desenvolvedor”. O termo abrange diversas funções, incluindo:
Desenvolvedores de aplicações que criam na nuvem e usam serviços nativos da nuvem como componentes integrantes das aplicações. Nesse modelo, a fronteira entre aplicação e infraestrutura é arbitrária e está se tornando cada vez menos nítida — ou até desaparecendo por completo.
Engenheiros de nuvem (ou DevOps) que usam infraestrutura como código (IaC) para programar a configuração, a implantação e o gerenciamento de ambientes de infraestrutura em nuvem e disponibilizar essa infraestrutura para os desenvolvedores de aplicações.
Engenheiros de segurança na nuvem que usam política como código (PaC) para expressar políticas de segurança e conformidade em uma linguagem que outras aplicações possam usar para validar a segurança automaticamente e disponibilizar essas bibliotecas de PaC para equipes de toda a organização.
Independentemente da descrição de seus cargos, os desenvolvedores controlam a própria infraestrutura de computação em nuvem, porque ela é totalmente definida por software. Ao criar aplicações na nuvem, eles também constroem a infraestrutura dessas aplicações usando IaC — e são responsáveis por esse processo.
Isso significa que a função da equipe de segurança evoluiu: agora, ela é formada por especialistas no domínio que transmitem conhecimento e regras aos desenvolvedores para garantir um ambiente de desenvolvimento seguro. Em vez de expressar essas regras em linguagem humana para que outras pessoas as entendam e interpretem, a equipe usa PaC, que verifica outros códigos e ambientes em execução em busca de condições indesejadas. A PaC capacita todas as partes envolvidas na nuvem a trabalhar com segurança, sem ambiguidades nem divergências sobre as regras e como aplicá-las em cada etapa do ciclo de vida de desenvolvimento de software (SDLC).
As organizações que fazem a segurança na nuvem da maneira certa defendem o modelo DevSecOps e permitem que os desenvolvedores garantam a segurança das aplicações após a implantação. A IDC prevê que um número cada vez maior de desenvolvedores (mais de 43 milhões até 2025) será totalmente responsável pelo desempenho contínuo e pela segurança do próprio código depois que ele estiver em execução.
Configurações incorretas na nuvem são vulnerabilidades
Há bastante tempo, as aplicações seguem um ciclo de vida de desenvolvimento de software com etapas de criação, teste, implantação e monitoramento. A adoção da abordagem shift left em segurança de aplicações trouxe um retorno significativo em velocidade, produtividade e segurança, pois é mais fácil, rápido e seguro corrigir problemas no início do SDLC. Com a adoção de IaC, a infraestrutura em nuvem agora também tem seu próprio SDLC, o que significa que a segurança na nuvem pode — e deve — ser abordada nas etapas anteriores à implantação.
A principal preocupação com a segurança na nuvem são as configurações incorretas. Mas é importante reconhecer que uma configuração incorreta pode ser qualquer aspecto do ambiente de nuvem que não consiga impedir a ação de agentes maliciosos. As configurações incorretas de um único recurso são as mais conhecidas e costumam aparecer nas notícias sobre violações na nuvem, como deixar uma porta perigosa aberta ou permitir acesso público a um serviço de armazenamento de objetos. Mas as configurações incorretas também podem envolver todo o ambiente — são vulnerabilidades arquiteturais que dão aos invasores a capacidade de descobrir recursos, movimentar-se pelo ambiente e extrair dados.
Toda grande violação na nuvem envolve a exploração dessas falhas de projeto nos ambientes de nuvem — ou o comprometimento do plano de controle. O plano de controle é a superfície de APIs que configura e opera a nuvem. Por exemplo, você pode usá-lo para criar um contêiner, modificar uma rota de rede e obter acesso a bancos de dados ou a snapshots deles (que são mais populares entre os invasores do que os bancos de dados de produção ativos). Em outras palavras, o plano de controle de APIs é o conjunto de APIs usado para configurar e operar a nuvem.
As APIs impulsionam a computação em nuvem. Elas eliminam a necessidade de uma arquitetura de TI fixa em um data center centralizado. Isso significa que os invasores não precisam respeitar os limites arbitrários que as empresas estabelecem em torno dos sistemas e repositórios de dados nos data centers locais. Identificar e corrigir configurações incorretas é uma prioridade, mas é essencial entender que elas são apenas um dos meios para atingir o objetivo final dos invasores: comprometer o plano de controle — algo que teve papel central em todas as grandes violações na nuvem até hoje.
5 etapas para apoiar o desenvolvimento seguro na nuvem
É fundamental capacitar os desenvolvedores para encontrar e corrigir configurações incorretas na nuvem ao desenvolver IaC. Mas é igualmente importante oferecer as ferramentas necessárias para projetar arquiteturas de nuvem inerentemente protegidas contra os ataques atuais de comprometimento do plano de controle.
Toda organização pode seguir cinco etapas para capacitar efetivamente os desenvolvedores a trabalhar com segurança na nuvem:
1. Entenda seu ambiente de nuvem e o SDLC
As equipes de segurança devem integrar engenheiros às equipes de aplicações e DevOps para entender tudo o que está em execução, como está configurado, como é desenvolvido e implantado, e o que muda à medida que isso acontece. É importante saber quais aplicações estão associadas aos recursos de nuvem, quais dados estão envolvidos e como são usados. Pense como um invasor para identificar riscos de comprometimento do plano de controle.
2. Priorize o design seguro e evite configurações incorretas
Quando um ataque de comprometimento do plano de controle já está em andamento, geralmente é tarde demais para impedi-lo. Uma segurança eficaz na nuvem exige evitar as condições que possibilitam esses ataques. Incorpore a segurança em todo o SDLC da nuvem para detectar configurações incorretas antes da implantação e priorize o projeto de arquiteturas de ambiente seguras por natureza.
3. Capacite os desenvolvedores com ferramentas que orientem sobre segurança
Os desenvolvedores trabalham rápido, e as ferramentas de segurança precisam acompanhar esse ritmo para serem adotadas sem reduzir a velocidade. As ferramentas de segurança na nuvem devem fornecer feedback útil e prático sobre problemas de segurança e como corrigi-los rapidamente.
4. Adote política como código para a segurança na nuvem
A PaC ajuda as equipes de segurança a ampliar seu trabalho com os recursos disponíveis, capacitando todas as partes envolvidas na nuvem a trabalhar com segurança, sem ambiguidades nem divergências sobre quais são as regras e como aplicá-las. Ela alinha todas as equipes em torno de uma única fonte confiável de políticas, elimina erros humanos na interpretação e na aplicação dessas políticas e viabiliza a automação de segurança (avaliação, aplicação e muito mais) em todas as etapas do SDLC.
5. Priorize a mensuração e a melhoria de processos
A segurança na nuvem tem menos a ver com detectar invasões e monitorar redes em busca de atividades maliciosas e mais a ver com impedir que as explorações aconteçam. As equipes de nuvem bem-sucedidas avaliam continuamente os riscos do ambiente e a produtividade das equipes de desenvolvimento e segurança, que deve melhorar à medida que tarefas manuais e sujeitas a erros são automatizadas.
A segurança na nuvem começa com os desenvolvedores
Os desenvolvedores estão na melhor posição — e muitas vezes na única — para proteger o código antes da implantação, manter sua integridade em produção e entender onde aplicar correções. Mas também são pessoas, sujeitas a erros e trabalhando em um cenário de experimentação e falhas constantes. A automação baseada em PaC elimina o risco de erro humano ao automatizar a busca e a detecção de falhas antes da implantação.
As organizações que adotam uma abordagem de segurança na nuvem que prioriza os desenvolvedores vão inovar com mais rapidez e segurança do que seus concorrentes.
Segurança de IaC pensada para quem desenvolve
A Snyk protege sua infraestrutura como código do ciclo de vida do desenvolvimento de software até a execução na nuvem, com um mecanismo unificado de políticas como código para que todas as equipes possam desenvolver, implantar e operar com segurança.



