A demanda por tecnologias de contêiner e serverless aumentou nos últimos anos. De acordo com uma empresa de pesquisa e consultoria de mercado, o tamanho do mercado global de contêineres deve crescer de US$ 1,2 bilhão em 2018 para US$ 4,98 bilhões em 2023, enquanto a arquitetura serverless deve crescer de US$ 7,6 bilhões em 2020 para US$ 21,1 bilhões até 2025. O aumento da demanda por tecnologias de contêiner e serverless se deve ao fato de que as empresas podem contar com elas para escalabilidade, eficiência e economia ao desenvolver e implantar aplicações.
No entanto, como acontece com qualquer tecnologia em expansão, as aplicações baseadas em contêineres e serverless não estão imunes a riscos e ameaças. É apenas uma questão de tempo para que pessoas com más intenções, que estão sempre lançando redes mais amplas para alcançar mais vítimas em potencial, comecem a atacá-las com frequência para vários esquemas. Diante disso, como as empresas podem fortalecer a segurança de tais aplicações contra ataques em potencial?
Este artigo concentra-se em certas considerações de segurança que os desenvolvedores precisam saber e as maneiras pelas quais eles podem construir a melhor defesa para aplicações baseadas em contêiner e serverless através da autoproteção da aplicação em tempo de execução (runtime application self-protection ou RASP, veja mais detalhes nesse webinar), uma ferramenta que incorpora segurança em uma aplicação em tempo de execução.
O que é RASP?
O RASP é uma ferramenta de segurança que roda em um servidor e começa a funcionar toda vez que uma aplicação é executada. Simplificando, o RASP foi projetado para detectar comportamento malicioso em tempo real. Ele é capaz de proteger aplicações de ataques, analisando tanto o comportamento de uma aplicação quanto o contexto desse comportamento.
Quais são os benefícios do RASP?
Em essência, o RASP fornece proteção em tempo real às aplicações. O RASP pode interceptar todos os tipos de tráfego que indicam comportamento malicioso, como injeção de SQL, cross-site scripting (XSS), vulnerabilidades, bots e ataques implantados por e-mail, Slack e outros tipos de mensagens.
Como o RASP é construído diretamente em uma aplicação, ele é inatamente capaz de monitorar o comportamento desta. Assim, ele pode evitar ataques com alta precisão, pois consegue discernir entre ataques e solicitações legítimas, reduzindo assim os falsos positivos e permitindo que os engenheiros de segurança se concentrem no combate a problemas mais sérios.
Além disso, o RASP também oferece melhor proteção contra exploits de zero-day. O RASP oferece uma solução de curto prazo se um patch para uma aplicação não estiver disponível por um longo período. E mais, o RASP não depende de nenhum tipo de assinatura para uma exploração porque a linha de base para a operação adequada é a própria aplicação.
Como o RASP protege aplicações serverless
Para ilustrar como o RASP protege aplicações serverless, demonstramos como uma função do Amazon Web Services (AWS) Lambda — um serviço serverless que permite às empresas executar código sem provisionamento e manutenção de servidor — pode ser protegida usando Trend Micro Cloud One™ — Application Security.
No artigo de pesquisa da Trend Micro “Protegendo pontos fracos em arquiteturas serverless: riscos e recomendações”, Alfredo de Oliveira, pesquisador de segurança sênior da Trend Micro, criou uma prova de conceito que envolve uma função AWS Lambda concedida com permissões altas para destacar os riscos de implementação de código incorreto em um sistema serverless. Sob tal condição, os agentes de ameaças poderiam alterar o tempo limite da função Lambda e, subsequentemente, executar ataques como escalonamento de privilégios e exfiltração de dados. Deve-se observar que, para esta prova de conceito, configuramos os privilégios administrativos do Lambda. Por padrão, Lambdas não têm permissões além das definidas pelo cliente. Diante disso, os clientes devem sempre seguir os princípios do menor privilégio ao definir uma função de execução.
A Figura 1 ilustra a cadeia de ataque envolvendo uma função AWS Lambda concedida com permissões altas, conforme descrito no parágrafo acima. Deve-se observar que as bibliotecas do Cloud One – Application Security já estão pré-instaladas no sistema.
Figura 1. Uma cadeia de ataque envolvendo uma função AWS Lambda com altas permissões
Conforme mostrado na Figura 2, a console do Cloud One – Application Security bloqueia o ataque de injeção de comando.
Figura 2. A console do Cloud One – Application Security é capaz de detectar o ataque de injeção de comando.
Figura 3. A console do Cloud One – Application Security também fornece uma descrição do ataque suspeito, os CVEs associados e informações de payload.
O documento de pesquisa da Trend Micro mencionado anteriormente também destaca a necessidade de proteger diferentes serviços em nuvem envolvidos no desenvolvimento de aplicações serverless. Conforme mostrado na Figura 4, o Trend Micro Cloud One™ – Conformity bloqueia as funções IAM que são muito permissivas de serem executadas dentro do sistema.
Figura 4. As funções do IAM que são muito permissivas são bloqueadas pelo Cloud One – Conformity de serem executadas dentro do sistema.
Como RASP pode proteger contêineres
Nesta seção, demonstramos como proteger uma aplicação baseada em contêiner em execução em instâncias de contêiner do Azure contra injeção de SQL, conforme detalhado em um artigo do LinkedIn de Chuck Losh, arquiteto de soluções da Trend Micro.
Primeiramente, uma nova implantação precisa ser executada e um contêiner baseado em PHP propositalmente vulnerável de uma imagem DVWA de um Azure Container Registry privado precisa ser puxado. Neste teste, as bibliotecas do Cloud One – Application Security já estão pré-instaladas no sistema, conforme mostrado na Figura 5.
Figura 5. As bibliotecas do Cloud One – Application Security são adicionadas ao código da imagem do contêiner
Depois que a implantação for executada através do portal do Azure mostrado na Figura 6, veremos se tudo funciona conforme o esperado. O resultado final deve ter a aplicação chamando o painel do Cloud One – Application Security para proteção em tempo real.
Figura 6. A imagem do contêiner que é executada por meio do Portal do Azure
Ao configurar os requisitos de configuração, a instância do contêiner já deve começar a ser executada. Isso também pode ser verificado na saída do Portal do Azure, conforme mostrado na Figura 7.
Figura 7. O portal do Azure mostra que a implantação do contêiner já está em andamento.
Figura 8. Para verificar se a instância do contêiner está em execução, a saída da CLI do Azure também pode ser exibida.
A aplicação de teste da web agora pode ser acessada. Depois de fazer login na aplicação da web baseada em contêiner DVWA, enviaremos um ataque de injeção de SQL, conforme mostrado na Figura 9. Podemos verificar a console Cloud One – Application Security mais tarde para ver se ela pode detectar esse comportamento malicioso.
Figura 9. O ataque de injeção de SQL submetido à aplicação baseada em contêiner
Conforme mostrado na Figura 10, a solicitação enviada foi bloqueada e detectada pela console do Cloud One – Application Security em tempo real.
Figura 10. O Cloud One – Application Security é capaz de detectar o ataque de injeção de SQL.
Como automatizar o RASP
Automatizar o RASP é uma abordagem ainda mais eficaz para proteger aplicações serverless. Um template de função do AWS Lambda (por exemplo, do CloudFormation) contém os componentes RASP necessários para integrar o Cloud One – Application Security no AWS Lambda.
Ao fornecer essas informações em um template CFN, as equipes de desenvolvimento podem ter autonomia para lançar uma função do AWS Lambda com a garantia de que a segurança já faz parte da própria aplicação. Isso também limita as várias etapas manuais mencionadas anteriormente.
Conclusão
O RASP é uma ferramenta que permite às organizações se moverem no formato “shift left”, o que é uma direção importante que permite aos desenvolvedores usar padrões seguros e bem compreendidos para gerenciamento de segredos e práticas de codificação resilientes.
Por outro lado, embora alguns possam defender os benefícios trazidos por novas tecnologias de segurança como o RASP, também é possível que alguns céticos que trabalham com processos tradicionais possam resistir a essas mudanças. Ainda assim, esses céticos poderiam ter suas dúvidas esclarecidas se as organizações realizassem discussões inclusivas sobre como cada equipe ou departamento pode preencher a lacuna e trabalhar juntos para construir uma cultura DevSecOps forte. Essa cultura, por sua vez, poderia ser fomentada por equipes de desenvolvimento e segurança conduzindo testes de software adequados, segurança integrada e visibilidade operacional em todos os momentos.
Trend Micro Cloud One
Embora os provedores de serviços em nuvem (cloud service providers ou CSPs) forneçam recursos de orientação e segurança para seus serviços, as empresas ainda devem garantir que melhorem a segurança dos serviços que estão conectados ao seu ambiente de computação.
A adoção do modelo de responsabilidade compartilhada é fundamental para proteger esses serviços, pois exige que o CSP e o usuário mantenham áreas de responsabilidade para manter o ambiente de computação protegido. No caso do AWS Lambda, deve-se observar que a função de execução só é iniciada com as permissões definidas pelo usuário. Portanto, os clientes devem seguir o princípio do menor privilégio ao definir uma função de execução.
As empresas também podem contar com a plataforma de serviços de segurança Trend Micro Cloud One. Ela oferece às empresas visibilidade centralizada sobre seus ambientes de nuvem híbrida e segurança em tempo real com os seguintes serviços automatizados e flexíveis:
- O Application Security é um framework de segurança integrado que detecta ameaças de forma proativa e protege aplicações e APIs em seus contêineres, serverless, bem como outras plataformas de computação em nuvem.
- O Conformity executa centenas de verificações automatizadas em relação aos padrões de conformidade do setor e às regras de práticas recomendadas de segurança em nuvem, melhorando a segurança da infraestrutura de nuvem e a postura de conformidade.
- O Container Security detecta ameaças, vulnerabilidades e dados confidenciais expostos, como chaves de API e senhas em imagens de contêiner.
- O Workload Security pode proteger automaticamente os sistemas legados com virtual patching e workloads em nuvem contra ameaças em evolução por meio da tecnologia de machine learning (ML).
- O File Storage Security protege os serviços de armazenamento de arquivos/objetos em nuvem que estão em arquiteturas de aplicações nativas da nuvem por meio da verificação de malware e integração em workflows personalizados.
· O Network Security defende nuvens privadas virtuais bloqueando ataques e ameaças e detectando infiltrações.