Quando se fala de segurança de contêineres de software, é importante para as empresas pensar de forma contextual, levando em consideração a forma como elas enxergam o impacto dos contêineres em seus requisitos de segurança e futuras necessidades de DevOps. Boas práticas podem ajudar as equipes de segurança a montar uma estratégia que os permita reduzir vazamentos de dados em produção e no pipeline sem prejudicar a agilidade e a velocidade da atuação das equipes de DevOps.
Profissionais de TI e segurança precisam atentar às brechas de segurança geradas pela atuação acelerada do DevOps, mas enfrentam problemas por conta das estruturas e processos descentralizados. E, dado que os workloads e ambientes estão sempre mudando, não há uma solução mágica quando se trata de cibersegurança, só se pode contar com a informação do presente momento. Para ajudar a lidar com o atual panorama de segurança, e com a forma como os contêineres se encaixam neste contexto, precisamos fazer algumas questões importantes.
- Como os ambientes para workloads mudaram e no que estão focadas as equipes de desenvolvimento atualmente? (e.g. de VM para cloud para serverless, DevOps, microsserviços, mensurados por entrega e uptime)
Muitos anos atrás, os diálogos com o cliente giravam, essencialmente, em torno de migração de workloads legados de data centers para a nuvem. Enquanto subiam os sistemas, era necessário avaliar quais ferramentas de TI, incluindo segurança, funcionam normalmente na nuvem. Muitas dos programas tradicionais adquiridos previamente não funcionavam adequadamente quando levados para a nuvem, já que não haviam sido desenvolvidos para este ambiente.
Nos últimos anos, os mesmos clientes que haviam migrado workloads para a nuvem, começaram novos projetos e aplicações usando serviços nativos de cloud, passaram a desenvolver em Docker e a usar tecnologias serverless como AWS Lambda e funções do Azure e Google Cloud. Estas tecnologias permitiram que as equipes adotassem práticas de DevOps onde elas poderiam entregar continuamente partes de aplicações de forma independente, chegando com seu aplicativo ao mercado com muito mais agilidade do que aconteceria com uma aplicação monolítica. Os novos projetos originaram os pipelines de CI/CD, usando o Git para gestão de código-fonte (usando versões de host tanto do GitHub quando do BitBucket), Jenkins ou Bamboo para automação do DevOps e Kubernetes para automação do deploy, escalabilidade e gestão dos contêineres.
Ambos as tendências estão acontecendo em paralelo, conduzindo duas classes de aplicações de aplicativos – as legadas, monolíticas e as cloud native, com microsserviços. As questões para a empresa são simples: como eu protejo isso tudo? E como eu faço isso de forma escalável?
Vale mencionar a questão da maturidade da TI e a forma como este departamento se desenvolveu, implantando o “infrastructure as a code”, ou seja, criando códigos que ajudem a automatizar operações de TI. Isso inclui o “security as a code”, ou desenvolvimento de código para automação de segurança. As equipes de operações em nuvem vêm adotando a automação, se juntando a equipes de aplicativos para ajudar a escalar a automação de programas voltados para DevOps, enquanto mantém os requisitos de TI. Tecnologias como Chef, Puppet, Ansible, Terraform e Saltstack são escolhas populares.
- Dado que vulnerabilidades e ameaças sempre existirão, qual é o maior impacto que se pode esperar sobre as equipes de DevOps e segurança?
O que se nota quando empresas falam que elas não são preparadas para aplicar segurança em grande escala para grandes grupos de DevOps que estão atuando continuamente no processo desenvolver / publicar / executar e precisam de proteção contínua e ininterrupta.
Uma empresa típica tem uma TI centralizada e equipes de SecOps que estão apoiando diversos grupos de clientes internos, tipicamente unidades de negócios que são responsáveis por gerar renda para a empresa.
Então, como fazer com que dezenas ou milhares de equipes dessa área que seguem continuamente o referido processo, interajam com o pessoal de TI e SecOps em larga escala? Como TI e segurança podem adotar estas práticas de tecnologias e garantir que elas estejam seguras – tanto no pipeline de CI/CD quanto na produção?
Estas relações entre equipes de TI (incluindo as de segurança) e as unidades de negócios funcionam, essencialmente, em nível de diretoria (VP e superior), mas a entrega de resultados seguros – uma relação mais efetiva e automatizada – requer uma atuação conjunta em todos os níveis destas equipes.
É comum ver equipes de DevOps ao longo de diversas unidades de negócio incorporando segurança com vários graus de rigor – ou mesmo adquirindo produtos de segurança que só funcionam para seus projetos – comprados diretamente de seus centros de custo, implementados sem uma grande expertise em segurança e nem conformidade com requisitos de segurança corporativa ou conscientização de TI. Isso leva a uma postura de segurança fragmentada, duplicada, complicada e inconsistente em toda a empresa, além de custos mais altos de ferramentas de segurança que, por suas vezes, se tornam mais complicadas de gerenciar e dar suporte. A pressão para entregas cada vez mais rápidas dentro de cada unidade de negócios muitas vezes custa a capacidade de coordenar um plano abrangente de segurança; isso não é uma novidade, e por isso é tão importante que se encontre um equilíbrio para esta situação.
Em nível operacional, a relação entre equipes de aplicação em unidades de negócio as equipes de TI e SecOps nem sempre é colaborativa, saudável e produtiva. Às vezes, é conflituosa. Às vezes, este conflito se deve ao fato de que equipes de aplicação têm um entendimento superior das práticas e ferramentas de DevOps, bem como de tecnologias como Dockers, Kubernetes e serverless, do que o pessoal de TI. Não-raro se vê discussões acaloradas e improdutivas entre as duas partes, com o pessoal de apps tentando explicar as novas tendências a seus colegas, o que se torna ainda pior quando se tenta convencer o segundo grupo a fazer coisas de forma diferente.
Os conflitos pioram quando ambas as equipes não adotam as mudanças em suas abordagens quando o assunto é segurança de contêineres e ambientes serverless. Então, em certo aspecto, o grande problema é que se uma equipe de DevOps quer seguir com entregas contínuas de forma abrangente para toda a empresa, ela precisa de uma relação próxima com as equipes de TI e segurança, que precisam, por suas vezes, entender melhor as práticas e ferramentas do DevOps, além dos microsserviços que ajudam na implantação colaborativa de segurança nos ambientes tanto de pipeline quanto de produção. TI e segurança, portanto, precisam aprimorar seus conhecimentos para ficarem compatíveis com o DevOps e suas tecnologias, ajudando todos a trabalhar mais rápido, e não devagar, sem deixar de lado a segurança.
Na verdade, quando se fala de DevOps, o “dev” diz respeito à equipe de apps, e o “ops” deveria ser o conjunto de TI e segurança. Assim, há espaço para mudanças significativas na forma como empresas organizam suas equipes de desenvolvimento, TI e segurança, visto que os modelos tradicionais são mais indicados para entrega de aplicações legadas, monolíticas, que não seguem o modelo de CD.
A maior oportunidade para TI e segurança reside na interação com equipes de apps por meio de ferramentas self-service e práticas criadas para ajudar na agilidade das equipes, enquanto mantém conformidade com os requisitos de segurança de TI e da empresa.
- Como as equipes de DevOps podem obter vantagem com as melhores medidas de segurança para melhor proteger tecnologias emergentes como ambientes de container e suas ferramentas?
Só este tema já valeria um guia, dada sua riqueza. Em resumo, são três grandes áreas a serem analisadas: desenvolver, publicar e executar. Isso não é, de forma alguma, uma lista definitiva, mas sim um bom ponto de partida. Fale com a Trend para saber mais sobre isso.
Equipes de segurança têm uma oportunidade fantástica de introduzir os seguintes serviços na empresa, para todos os pipelines e ambientes de produção de todas as equipes, de forma consistente:
Desenvolver
- Identificar todas os repositórios de códigos de CI/CD em toda a empresa e seus respectivos donos;
- Análise de código estático;
- Scan de imagem para malware;
- Scan de imagem para vulnerabilidade;
- Scan de imagem para avaliação de configurações (garantia de consistência da imagem)
- Queries de indicador de comprometimento (IoC) em todos os registros
- Detecção de segredos
- Teste automático de segurança em ambientes preparados, com modelos genéricos e customizados para teste
- Avaliação de imagem – declaração da qualificação da imagem para as fases seguintes de desenvolvimento baseado nos resultados das checagens;
- Relatórios para equipes de apps e segurança nos scorecards.
Publicar
- Controle de admissão – a permissão ou bloqueio de imagens em ambientes de produção baseado em políticas de segurança, avaliação de imagens ou assinatura;
- Proteção de vulnerabilidade de contêineres – a Trend Micro vai liberar esta funcionalidade ainda neste ano;
Executar
- Proteção de Docker e Kubernetes em produção, incluindo detecção de anomalias em configurações;
- Fortalecimento do Kubernetes e do Docker;
- Uso dos recursos da política de rede do Kubernetes para microssegmentação, e não uma solução de terceiros. Depois, garantir que o Kubernetes esteja protegido.
- Proteção baseada em host – contra malwares, vulnerabilidades, controle de aplicação, monitoramento de integridade e inspeção de log – full stack de defesas de aplicações e do próprio host;
- Proteção baseada em pod para Kubernetes (container privilegiado, um por pod). Isso pode ser enviado aos ambientes Kubernetes como qualquer container, sem necessidade de agente de host;
Para contêineres em ambiente serverless, aplicação de proteção em cada imagem ou função serverless (biblioteca AppSec focada em RASP, OWASP, malware e vulnerabilidades dentro do fluxo de execução de aplicação). A Trend Micro vai liberar mais uma funcionalidade ainda este ano para este fim.
A Trend Micro proporciona uma abordagem de segurança robusta em todo ciclo de produção dos contêineres. Esta abordagem ajuda as equipes de apps a atingir compliance e os requisitos de segurança de TI para ambientes de CI/CD e produção. Com diversos recursos de segurança, automação completa de funções e equipes de inteligência de ameaças que são referência mundial, a Trend Micro é líder em cibersegurança para aplicações e para empresas que já estão focadas no uso de containers.