10 considerações de segurança para a AWS durante a migração
29 de novembro de 2022
0 minutos de leituraO armazenamento de dados na nuvem oferece muitas vantagens práticas em relação aos data centers tradicionais, mas a migração também envolve considerações de segurança específicas.
Ao migrar para a AWS, comece do jeito que pretende continuar. Empresas que passam a armazenar dados na nuvem precisam atualizar sua abordagem de segurança da informação para proteger os dados. Adotar práticas de segurança adequadas durante a migração ajudará as equipes futuras a entregar aplicações e funcionalidades com segurança e eficiência, além de evitar riscos comuns da AWS. Por outro lado, manter as práticas de segurança tradicionais deixará as equipes mais lentas e limitará seu sucesso no futuro.
Recentemente, criamos o relatório Snyk Top 10: Security Strategies when Migrating to AWS, que aborda os principais pontos para tornar essa transição simples e segura. Neste artigo, vamos analisar brevemente cada um deles:
Adote uma abordagem integrada para AppSec e CloudSec.
Integre as equipes de segurança às equipes de AppDev e DevOps.
Modernize o desenvolvimento de aplicações com segurança em todo o SDLC.
Projete a arquitetura de nuvem pensando em segurança.
Capacite desenvolvedores e engenheiros de nuvem para criar soluções seguras.
Use infraestrutura como código desde o início — e proteja-a.
Use barreiras de segurança na nuvem nos pipelines de implantação.
Construa a segurança na nuvem com base em políticas como código (PaC).
Use os serviços de gerenciamento de identidade e acesso (IAM) com segurança.
Defina o que importa — e acompanhe continuamente.
1. Adote uma abordagem integrada para AppSec e CloudSec
No passado, era possível separar as operações de nuvem e o desenvolvimento de aplicações em camadas distintas. Hoje, as fronteiras entre segurança de aplicações e segurança de infraestrutura estão cada vez menos definidas. Pessoas mal-intencionadas podem explorar facilmente vulnerabilidades em qualquer ponto da sua stack. Se as equipes de AppSec e CloudSec usarem ferramentas distintas para analisar aplicações em busca de riscos de segurança, há um risco real de deixar passar vulnerabilidades que afetam várias camadas ou situações em que uma camada impacta outra.
Não deixe que a segurança de AppSec e CloudSec fique isolada em silos. Uma abordagem abrangente de DevSecOps deve usar um processo centralizado e integrado para identificar e reduzir riscos. Isso não só oferece mais contexto sobre o ambiente de nuvem e o desenvolvimento de software, como também aumenta a eficiência e melhora a priorização geral de riscos em toda a organização.
2. Integre as equipes de segurança às equipes de AppDev e DevOps
Os silos prejudicam tanto a segurança de ponta a ponta quanto o desenvolvimento ágil. A prática convencional de tratar segurança como uma função separada pode consumir muito tempo, pois as equipes precisam interromper o trabalho para lidar com cada novo risco que surge.
Em vez disso, trate os riscos de segurança desde o início, integrando práticas e controles de segurança ao ciclo de vida do desenvolvimento de software. A abordagem de DevSecOps incorpora objetivos de segurança ao ciclo de vida do desenvolvimento de software (SDLC) o mais cedo possível e promove uma cultura de responsabilidade compartilhada pela segurança. Quando as equipes de segurança trabalham em conjunto com desenvolvedores e engenheiros de nuvem no projeto e desenvolvimento de sistemas baseados na nuvem, elas podem incorporar a segurança a cada etapa do SDLC e maximizar a eficiência.
Essa responsabilidade compartilhada é viabilizada por ferramentas que priorizam os desenvolvedores e se integram às plataformas que eles já usam e conhecem. Plataformas que oferecem visibilidade centralizada e facilitam a comunicação entre equipes também são essenciais para uma colaboração eficaz.
3. Modernize o desenvolvimento de aplicações com segurança em todo o SDLC
A migração para a AWS é uma excelente oportunidade para adotar uma cobertura de segurança de ponta a ponta em todo o SDLC.
Deixar os testes de segurança para o fim do processo de desenvolvimento de aplicações pode causar atrasos. Em vez disso, adote uma abordagem de shift left para integrar a segurança o mais cedo possível ao SDLC, manter a agilidade do desenvolvimento e gerenciar os novos riscos introduzidos pela tecnologia de nuvem.
Automatize as verificações de segurança em cada pull request para identificar problemas antes de aceitar as alterações de código no ambiente de produção. Esse processo ajuda a manter alta visibilidade da segurança durante a criação e os testes da aplicação, confirmando sua postura de segurança.
4. Projete a arquitetura de nuvem pensando em segurança
Pessoas mal-intencionadas costumam explorar falhas de arquitetura para acessar dados valiosos. Para minimizar o impacto das ameaças à segurança, pense como um invasor e identifique onde estão esses pontos fracos. Procure por erros comuns de configuração na nuvem e tome medidas para evitá-los.
Aprimore as habilidades da sua equipe de segurança em arquitetura de segurança da AWS. Aproveite recursos como o Cloud Security Podcast, programas de treinamento e certificações da AWS. Considere criar uma função dedicada de arquiteto de segurança na nuvem para projetar e gerenciar uma arquitetura segura.
5. Capacite desenvolvedores e engenheiros de nuvem para criar soluções seguras
Quando surgem erros de configuração na nuvem, os desenvolvedores estão na melhor posição para corrigi-los sem comprometer a funcionalidade. Muitas vezes, são as únicas pessoas capazes de proteger o código da aplicação e os templates de infraestrutura como código (IaC) (por exemplo, AWS CloudFormation, AWS CDK e Terraform) antes da implantação.
Capacitar os desenvolvedores significa permitir que tomem decisões e assumam a responsabilidade pela segurança das próprias aplicações. Essa mudança costuma ser tanto cultural quanto funcional e exige apoio da liderança, capacitação, visibilidade e transparência entre as equipes, além das ferramentas certas. Garanta que os desenvolvedores tenham o necessário para identificar e corrigir as vulnerabilidades do próprio código.
6. Use infraestrutura como código desde o início — e proteja-a
Infraestrutura como código (IaC) significa que agora a infraestrutura pode ser tratada como código. Proteger essa infraestrutura deixou de ser responsabilidade da equipe de TI e passou a ser dos desenvolvedores. E a melhor maneira de protegê-la é seguir as boas práticas de programação e verificá-la junto com o código da aplicação.
A IaC é uma forma mais eficiente e consistente de criar e gerenciar ambientes da AWS em grande escala e também permite verificar a segurança na nuvem antes da implantação. Verificar a segurança da IaC resulta em uma redução mediana de 70% nos erros de configuração da nuvem — além de um aumento mediano de 70% na produtividade da engenharia e na velocidade de implantação.
Definir processos e procedimentos para viabilizar uma IaC segura desde o início da transição para a AWS traz mais clareza, agilidade e eficiência à migração. A Amazon Web Services oferece o AWS CloudFormation como solução nativa de IaC, mas opções independentes, como o Terraform, também são amplamente usadas.
7. Use barreiras de segurança na nuvem nos pipelines de implantação
Uma consequência de antecipar a segurança é a necessidade de monitorar continuamente o ambiente para detectar problemas. As verificações de segurança devem ser automatizadas no CI/CD para evitar erros de configuração antes da implantação. O uso de IaC permite incluir verificações de segurança na infraestrutura de nuvem criada para as aplicações que serão implantadas na AWS.
Uma abordagem de DevSecOps para a segurança na nuvem oferece aos engenheiros feedback automatizado quando surge um problema, além de orientações claras para corrigi-lo com rapidez e segurança. A IaC ajuda a evitar que os engenheiros implantem repetidamente erros de configuração semelhantes.
8. Construa a segurança na nuvem com base em políticas como código
As revisões manuais de conformidade consomem muito tempo e são difíceis de escalar. As ferramentas de políticas como código (PaC) automatizam o processo ao codificar e aplicar políticas. Além de tornar o processo mais rápido e eficiente, eliminar a possibilidade de erro humano também o torna mais confiável e consistente.
Use PaC para criar uma fonte única da verdade para as políticas, alinhando desenvolvedores, equipes de segurança, DevOps e compliance. A automação de políticas ajuda as equipes de segurança a ampliar sua atuação sem aumentar o quadro de funcionários.
9. Use os serviços de gerenciamento de identidade e acesso com segurança
Embora pareça que o objetivo do gerenciamento de identidade e acesso (IAM) seja apenas gerenciar permissões de usuários, ele também é a melhor maneira de ter visibilidade de toda a rede baseada na nuvem. Configurações de IAM com permissões excessivas são uma porta aberta para que invasores acessem o plano de controle da nuvem.
Configurações seguras de IAM devem ser parte fundamental da arquitetura de segurança na nuvem. Avalie continuamente as configurações de IAM em busca de pontos fracos e ajude os engenheiros a usar os serviços de IAM com segurança, seguindo o princípio do menor privilégio. Um especialista dedicado em segurança na nuvem pode garantir que o IAM seja configurado e gerenciado corretamente.
Além disso, cada usuário precisa receber treinamento de conscientização sobre segurança, com foco na importância de senhas fortes e da autenticação multifator (MFA).
10. Defina o que importa — e acompanhe continuamente
As métricas são essenciais para garantir que seus esforços de segurança na AWS estejam funcionando como deveriam. É importante medir a eficácia dos seus programas de segurança na nuvem. As equipes que acertam na segurança da AWS a incorporam às operações e medem com disciplina o que realmente importa.
Você deve conhecer o estado da sua postura de segurança e conseguir demonstrá-lo com números concretos. Esses números podem ser diferentes dos usados nos modelos tradicionais de implantação. Em um modelo de implantação de CI/CD, é aceitável e esperado haver certo nível de vulnerabilidades. Uma abordagem de segurança de ponta a ponta ajuda a diferenciar vulnerabilidades críticas das não críticas e a priorizar o que mais importa. Demonstre o progresso não apenas medindo a redução de riscos, mas também o aumento da eficiência das equipes de desenvolvimento e DevOps na correção dessas vulnerabilidades.
Dependendo das prioridades da sua organização, algumas métricas a considerar são o tempo para corrigir vulnerabilidades, a porcentagem de vulnerabilidades críticas ainda abertas, o número de vulnerabilidades com risco aceito e a porcentagem de vulnerabilidades de baixa gravidade. Nenhuma métrica é uma tarefa pontual: o objetivo é melhorar de forma constante e contínua.