Por Rodrigo Silva
Em um dos artigos de uma série dedicada à segurança de perímetro publicada em nosso blog, foram analisados os desafios relacionados com a segurança de dados inerentes à adoção de novas tecnologias — mais especificamente, sobre como o processo de migração de dados e sistemas para um ambiente em nuvem flexibiliza o perímetro a ser protegido e, por extensão, aumenta a necessidade de controles.
Infelizmente, aponta artigo, ainda existem empresas que optam por migrar sistemas e rotinas para esses ambientes não só buscando vantagens operacionais, mas acreditando que eles também são, por si só, soluções de segurança, o que está longe de ser verdade como demonstrado por uma série de incidentes ocorridos nos últimos anos.
Em um dos mais recentes, informações sensíveis de mais de 100 milhões de cidadãos dos EUA e do Canadá (incluindo números de pagamento, de seguro social e de contas bancárias) foram expostos em um vazamento de dados da empresa Capital One. Os dados, acessados por uma falha de configuração de firewall, estavam armazenados em servidores da Amazon, que afirma que seus clientes são responsáveis pelas suas próprias aplicações. Na declaração oficial a empresa afirma que: “o atacante ganhou acesso a partir de uma configuração errada em uma aplicação web, e não através da infraestrutura subjacente”.
O caso é particularmente ilustrativo da questão da divisão de responsabilidades no que se refere à segurança de ambientes em nuvem. A realidade é que, independentemente do modelo de serviço em nuvem que se está contratando, a tarefa de manter dados e sistemas protegidos é compartilhada entre o fornecedor do serviço e o contratante.
Também é necessário destacar desde já que manter dados em nuvem seguros requer tantos ou mais cuidados e controles do que dados armazenados on premises (mesmo que esses controles sejam facilitados e simplificados em ambientes em nuvem).
Este artigo tem como objetivo mostrar alguns dos principais cuidados a serem considerados na jornada de migração para a nuvem.
Considerações ao iniciar a jornada de migração
São muitos os motivos que levam uma empresa a migrar dados e sistemas para ambientes em nuvem.
Entre eles estão desde questões relacionadas à escalabilidade (possibilidade de, com agilidade, redimensionar o ambiente de modo a suprir um aumento de demanda, por exemplo), até à visibilidade financeira, ou seja, a possibilidade que estes ambientes oferecem no que se refere ao detalhamento e controle de gastos.
Na verdade, há outras premissas a serem consideradas nesta jornada de migração que incluem, além da questão financeira e de escalabilidade, a garantia de disponibilidade do serviço, a confiabilidade, continuidade do negócio (recuperação e backup) além de outros tópicos relacionados à segurança da informação.
Neste quesito é importante observar, em primeiro lugar, que a maioria dos serviços em nuvem possui um modelo de responsabilidade compartilhada definido por contrato onde, grosso modo, a fornecedora é responsável “pela nuvem” em si e toda a estrutura necessária para o seu funcionamento, como softwares de gestão (incluindo, a depender do modelo de contratação, bancos de dados e ferramentas de rede) e a infraestrutura. À empresa que contrata o serviço (também dependendo do modelo de contratação) cabe a responsabilidade sobre o que “está na nuvem”: os dados de clientes, sistemas operacionais, aplicações, gerenciamento de identidades e acesso, entre outros itens — em alguns modelos, como o SaaS (Software as a Service), o cliente é responsável apenas pelo gerenciamento de identidades e controle de acesso.
Boas práticas
Como vimos, fornecedor e cliente possuem responsabilidades distintas no que se refere à segurança do ambiente e dos dados salvos na nuvem; além disso, com poucas variações, é possível identificar a maioria destas responsabilidades, o que permite apontar algumas boas práticas válidas para a migração de serviços em nuvem, independentemente do serviço ou fornecedor que se está contratando. A seguir, elencamos algumas delas.
Gerencie acessos utilizando uma bastion account (conta intermediária): alguns serviços permitem gerenciar permissões de acesso a dados e ferramentas através de uma conta intermediária que, a cada login, exige que o usuário identifique qual a sua função dentro da organização para que o acesso seja liberado. Por exemplo: um técnico responsável por analisar logs de um serviço deve, antes de obter acesso a esses logs, realizar um primeiro login no sistema de gerenciamento do serviço em nuvem com uma bastion account. A seguir, será exigido que ele escolha um de vários perfis possíveis de acordo com a função que ele exerce na sua empresa. Caso a escolha seja incorreta, ela pode gerar um alerta para o administrador do sistema, que irá seguir o procedimento previsto nesse caso. Dependendo do serviço, é possível limitar o número de tentativas incorretas, alterar os nomes dos perfis ou criar diferentes gatilhos para alarmar o administrador.
Utilize múltiplos fatores de autenticação: Todos os serviços em nuvem permitem o uso de múltiplos fatores de autenticação, adicionando uma camada a mais de segurança às contas. Entre os tipos de autenticação suportados estão dispositivos virtuais (aplicativos que geram códigos numéricos com base em algoritmos), chaves de segurança U2F (dispositivos de hardware que, assim como os virtuais, geram códigos numéricos com base em algoritmos), entre outros. É altamente recomendável o uso desta camada de segurança. Recomenda-se também dar preferência aos tokens físicos.
Mantenha atenção redobrada com a conta root: a maioria dos serviços oferece uma conta root, com permissão de acesso total a todas as funcionalidades do serviço. Por sua natureza, essa conta precisa estar sob monitoração constante, possuir senha forte, múltiplos fatores de autenticação habilitados, e uso restritíssimo.
Aplique as recomendações básicas de segurança: Entre as ferramentas oferecidas por serviços em nuvem está um checklist de ações básicas de segurança que é disponibilizado de forma gratuita — outras checagens e recomendações normalmente são oferecidas em pacotes de serviços avulsos. Recomenda-se sua execução.
Configure corretamente o gerenciamento de acesso a repositórios: a configuração de repositórios onde serão salvos os dados é feita manualmente, inclusive no que se refere ao controle de acesso a estes dados (por exemplo, definir que usuários terão acesso a qual repositório e se este repositório estará ou não público na Internet). Entre os acessos possíveis estão deletar, listar ou escrever informação nestes repositórios, o que deixa clara a necessidade de atenção total ao configurar estas ferramentas. Erros neste processo são considerados operacionais, podendo levar à exposição de dados sensíveis, e estão por trás da maioria dos casos de vazamentos envolvendo dados em nuvem.
Mantenha um time dedicado à monitoração, gerenciamento e otimização de logs: Mais do que monitorar logs, é importante manter uma equipe capaz de utilizar esta informação de forma inteligente; no mínimo é preciso saber — além dos recursos que estão sendo utilizados — que tipo de log está disponível para cada recurso e se este está habilitado ou não. A análise dos logs também precisa ir além do simples monitoramento e identificação de anomalias. Informações coletadas podem ser utilizadas para otimizar os logs, acrescentando informações que faltam e retirando as desnecessárias, adicionando proatividade à atividade de resposta a incidentes, tornando-a menos reativa.
Apenas o primeiro passo
Apesar de seu amplo escopo, compreendendo desde as etapas iniciais de configuração até a operação de ambientes em nuvem, as recomendações presentes neste artigo são apenas uma amostra dos cuidados iniciais necessários para a manutenção da segurança da informação nestes ambientes.
Considerando-se que empresas são entidades em constante evolução, é de se esperar que as estruturas mantidas por essas empresas também sofram transformações a fim de acompanhar esta evolução. Isso significa que este trabalho de manutenção de um ambiente (seja on premises, seja em nuvem) não é algo estanque, pronto e acabado, mas um processo que deve ser contínuo e de constante (e igual) evolução.
*artigo desenvolvido a partir da palestra “Visão Geral dos Serviços de Identidade AWS: Habilitando e protegendo a sua jornada na nuvem”, ministrada pelo autor no 2019 AWS Summit São Paulo, em junho/2019