A tarefa de implementar o DevSecOps em um ambiente de desenvolvimento que seja altamente baseado na nuvem tem alguns desafios próprios, por conta de:
- Vulnerabilidades próprias das operações em nuvem;
- Abordagem de configuração-como-código;
- Dinamismo do ambiente.
Desafiador? Sim, mas não impossível!
DevSecOps sob medida
Escaneamento e automação
Um dos fundamentos da segurança no desenvolvimento de softwares é escanear o código em busca de vulnerabilidades. Na nuvem, normalmente as aplicações rodam como pacotes em um container; assim, o ideal é checar o código antes de montá-lo como imagem de container em sistemas de CI/CD.
As verificações devem ser distribuídas ao longo de todo o processo (desenvolvimento, testagem e implementação) não só para encontrar vulnerabilidades o mais cedo possível, mas também para evitar que a segurança se torne um gargalo. No fim das contas, isso vai garantir que o código seja seguro para ser “empacotado” e distribuído na nuvem.
Ferramentas de SAST e SCA são extremamente valiosas nessa tarefa, tanto pela qualidade dos resultados quanto pela flexibilidade – elas podem rodar tanto localmente como em sistemas de CI/CD nas diferentes fases da cadeia de desenvolvimento.
Esses processos devem ser feitos de maneira contínua e, sempre que possível, automatizada.
Proteção na execução
É possível criar imagens de container com aplicações livres de vulnerabilidades, mas como elas são distribuídas para data centers e rodam em máquinas virtuais, é importante se proteger contra problemas que surgem na execução do software.
Quando falamos em aplicações nativas da nuvem, é crucial monitorar e analisar as atividades dentro dos containers (conexões de rede, processos, chamadas de sistema, atividades em arquivos).
Também é necessário prestar atenção na infraestrutura do container – os sistemas de segurança devem ser capazes de detectar comportamentos incomuns (como mudanças de configuração e variações de ambiente) e suspeitos.
Soluções nativas
Provedores de serviços de nuvem normalmente oferecem soluções de segurança próprias. Idealmente, elas criam uma camada de segurança externa que é ao mesmo tempo sólida e flexível.
Este segundo ponto é importante porque pode ser necessário alterar as configurações de segurança durante a implementação ou em fases posteriores do ciclo. Com a flexibilidade, fica mais fácil automatizar esses processos nos sistemas de CI/CD.
Políticas e restrições
Existem três grandes categorias de políticas em ambientes de nuvem que ajudam a garantir a integridade e a privacidade das informações da sua organização:
- Políticas de Rede: Estabelecem um “perímetro de segurança” para a aplicação que roda no provedor, de modo que apenas ports, IPs e redes autorizados tenham acesso;
- Políticas de Gerenciamento Financeiro: Controlam os orçamentos operacionais e monitoram as tendências para identificar aumentos súbitos (que podem estar ligados a invasões);
- Políticas de Performance: Estabelecem limites de performance para VMs, armazenamento e redes para monitorar o uso de serviços.
É preciso definir o alcance dessas políticas, implementá-las no provedor de nuvem e monitorar mudanças não autorizadas. Também é necessário mantê-las atualizadas de acordo com a implementação das aplicações, e incorporá-las em todas as fases da cadeia de DevSecOps.
O DevSecOps pode estar ao alcance da sua organização – especialmente se você contar com o apoio de um especialista qualificado. Clique aqui e agende uma conversa!