Segurança na Nuvem: categorias de serviços
Os serviços em nuvem oferecem grande flexibilidade ao usuário, permitindo o acesso a diversos recursos de forma rápida como também a capacidade de escalar de acordo com o uso. E é por isso que muitas organizações criam aplicativos nativos da nuvem e migram sistemas legados para um provedor. Afinal, provedores de nuvem seguem rígidos protocolos de segurança para garantir a estabilidade do serviço, proteger contra ataques e cumprir diferentes normas e padrões de qualidade.
Para manter um uso seguro dos serviços, é necessário compreender quais etapas os provedores realizam e quais práticas o usuário deve implementar. Portanto, neste artigo, revisaremos as categorias de serviços em nuvem e os melhores métodos para garantir a segurança na nuvem ao usar cada uma das categorias.
Alguns exemplos abaixo se baseiam em dois dos provedores de nuvem mais populares atualmente, Amazon AWS e Microsoft Azure. Embora abordemos as práticas recomendadas, não há como discutir todos os requisitos de segurança na nuvem em um único artigo. Portanto, entre em contato com seu provedor de nuvem para obter as informações mais atualizadas possíveis.
Padrões de qualidade
Os provedores de nuvem usam várias técnicas de segurança e seguem rígidos padrões de qualidade para atender as normas internacionais e de todo o setor. Além disso, alguns projetos podem exigir o cumprimento de determinadas normas, como ISO ou HIPAA.
A AWS possui um portal chamado Artifact, onde as informações de compliance podem ser verificadas para os recursos em uso. O Azure também oferece documentações online. Por isso, sempre verifique diretamente com seu provedor de nuvem as informações mais recentes sobre quais normas são cobertas pelos diferentes serviços que você pretende usar.
Responsabilidade compartilhada pela manutenção de sistemas
O modelo oposto à nuvem são os serviços on-premises, nos quais a empresa tem total controle sobre hardware e software. Embora o controle absoluto pareça poderoso, as empresas que usam soluções no local também têm total responsabilidade por fornecer um local de instalação adequado, seguro e protegido, gerenciar energia e temperatura, garantir que os componentes físicos funcionem corretamente, manter o sistema atualizado e muito mais.
Depois de migrar para a nuvem, algumas dessas responsabilidades passam de usuários como você para o provedor. O nível de gestão varia de acordo com as diferentes categorias de serviços. A seguir, vamos descobrir essas diferentes categorias.
IaaS – Infrastructure as a Service
Nessa categoria de serviços, o provedor é responsável por oferecer a infraestrutura necessária para que o usuário controle seus serviços e aplicações. Esta categoria oferece um maior controle sobre o que será instalado e as configurações de cada aplicativo, além de exigir uma maior responsabilidade para garantir a segurança desses serviços.
Um exemplo de serviço que se enquadra no IaaS são as máquinas virtuais (VMs), onde o provedor gera e dá acesso a um dispositivo com hardware especificados e sistema operacional selecionado pelo usuário no momento de sua criação. O usuário é então responsável por gerenciar o sistema e configurar o software de acordo com suas necessidades.
Ao contrário das máquinas físicas locais, esse serviço permite escalabilidade rápida, seja replicando seu conteúdo em novas máquinas virtuais (escalabilidade horizontal), seja ajustando as especificações do hardware, como processamento ou memória (escalabilidade vertical). Esses conceitos de escalabilidade não se aplicam apenas a VMs, mas também a muitos outros serviços em nuvem.
PaaS – Platform as a Service
Nesse modelo de serviço, o provedor oferece a infraestrutura, conforme visto anteriormente, e uma plataforma para seus serviços ou aplicações controladas pelo provedor. Um exemplo é um banco de dados gerenciado.
No modelo anterior, o usuário precisaria instalar um aplicativo de banco de dados em uma máquina virtual, aqui esse serviço é oferecido diretamente pelo provedor de forma mais fácil e rápida, pois o usuário não precisará instalar o software e tem opções de backup e atualizações.
Este serviço também precisa de uma ou mais máquinas para funcionar. Porém, isso passa a ser responsabilidade do provedor, que garante o acesso ao banco de dados, pronto para configuração e uso.
SaaS – Service as a Service
Nesse modelo, o usuário interage diretamente com o aplicativo que pretende utilizar. Portanto, o provedor lida com toda a responsabilidade pelo sistema nos bastidores. Um exemplo dessa categoria são os serviços de e-mail.
Com o e-mail, o usuário envia e recebe e-mails diretamente sem se preocupar com a infraestrutura sob o capô. O usuário é responsável principalmente por manter e proteger o acesso à sua conta, remover spam e evitar links maliciosos. O provedor oferece todos os recursos e é responsável por manter o sistema funcionando com eficiência.
Dicas de segurança na Nuvem
A seguir veremos algumas dicas e boas práticas para alguns dos serviços em nuvem mais utilizados.
Tudo começa com sua conta
Para acessar os serviços em nuvem, o usuário primeiro precisa se registrar em um provedor. As credenciais, que geralmente são formadas por um nome de usuário e senha, devem ser mantidas em segurança, pois fornecem acesso direto às suas informações mais importantes. No caso de credenciais comprometidas, pode-se expor dados sensíveis e gerar altos custos indevidamente.
A AWS fornece controle granular de permissões com o IAM – Identity and Access Management, que tem suas próprias práticas recomendadas. A Microsoft também fornece recomendações para segurança na nuvem de contas do Azure.
Vejamos algumas dicas para garantir maior segurança na nuvem da sua conta:
- Gere uma senha exclusiva e forte. Além disso, não compartilhe credenciais com outros usuários. Cada usuário deve ter suas próprias credenciais de acesso;
- Faça uso da autenticação de múltiplos fatores. Dessa maneira, mesmo que suas credenciais sejam comprometidas, o invasor não terá acesso à sua conta, a menos que forneça o segundo (ou mais) passos de autorização;
- Gerencie os níveis de privilégio de cada usuário. Use o modelo de menor privilégio para garantir que os usuários possam acessar apenas o necessário para realizar as tarefas;
- Use tokens ao invés de nomes de usuário e senhas para acessar usuários não humanos, como CLIs e APIs. Alterne esses tokens de acesso regularmente.
Máquinas Virtuais (VMs)
Nesse tipo de serviço, a parte física (hardware) utilizada para fornecer a VM fica sob responsabilidade do provedor. No entanto, o usuário ainda é responsável por gerenciar os recursos, instalar, configurar e fornecer acesso ao software. Este serviço é chamado Elastic Cloud Computing (EC2) na AWS e Máquinas Virtuais no Azure. Abaixo, algumas dicas rápidas:
- Evite usar contas de administrador ou super usuário para executar os sistemas. Gere usuários específicos com o nível de privilégio necessário para concluir suas tarefas;
- Revise as portas de rede e o acesso à máquina. E proíba acesso a todas as portas não utilizadas;
- Restrinja o acesso remoto, permitindo apenas os usuários e endereços IP necessários;
- Mantenha o sistema operacional atualizado com os patches de segurança mais recentes;
- Monitore o uso de memória e processamento. Gere alertas para ser informado sobre o uso incomum.
Bancos de dados gerenciados
Existem muitas opções de bancos de dados gerenciados disponíveis na nuvem, sejam eles SQL, não relacionais ou gráficos. Os bancos de dados gerenciados oferecem muitas vantagens, pois não há necessidade de manter uma máquina para hospedar o banco de dados e não há instalação, apenas a configuração. A AWS oferece seu serviço Relational Database Service, enquanto o serviço do Azure é denominado Azure SQL Databases.
No entanto, algumas responsabilidades de segurança na nuvem ainda são do usuário, por isso:
- Não compartilhe as credenciais de acesso de super usuário. Certifique-se de armazená-las com segurança;
- Remova qualquer banco de dados ou estruturas pré-criadas, pois elas são geradas apenas para testes;
- Os usuários só devem ter acesso restrito com base no que precisam para suas funções. Remova o acesso para exclusão de estruturas e bancos de dados, a menos que seja necessário;
- Permita apenas o acesso direto ao banco de dados pela máquina ou sistema que o utilizará;
- As strings de conexão e credenciais devem ser mantidas em segurança. Portanto, um serviço de segurança na nuvem para armazenamento de credenciais é recomendado.
Armazenamento de Objetos
O armazenamento de objetos em nuvem pode ser útil de várias maneiras. Um exemplo é fornecer arquivos estáticos para sistemas Web. Como esses arquivos não mudam, eles podem ser armazenados em cache e distribuídos facilmente usando um serviço de nuvem e podem até ser servidos por uma rede de entrega de conteúdo (CDN). Esse serviço é chamado de Simple Storage Service (S3) na AWS e Blob storage no Azure.
Confira abaixo algumas dicas de segurança na nuvem para este serviço:
- Os objetos geralmente são armazenados em contêineres com permissões específicas. Portanto, revise as permissões para os contêineres e certifique-se de que apenas os arquivos destinados a serem acessados publicamente sejam adicionados aos contêineres públicos;
- Revise as permissões dos usuários para criar, excluir e visualizar objetos;
- Esse tipo de serviço geralmente é cobrado por armazenamento e transferência. Portanto, estabeleça limites e alertas para evitar cobranças excessivas;
- Revise e remova periodicamente objetos e contêiners não utilizados.
Serviços de e-mail
Geralmente não pensamos no e-mail como um serviço em nuvem, mas ele se enquadra na categoria SaaS. O cliente é o usuário final do sistema e toda a responsabilidade pela implementação, manutenção, gerenciamento e atualização do serviço é do provedor.
Ainda é preciso ser cauteloso e entender como usar o sistema com segurança. Apesar de não fazer parte do portal Azure, a Microsoft oferece seu próprio serviço de e-mail chamado Outlook. Aqui estão algumas recomendações:
- Não reutilize sua senha de e-mail em nenhum outro lugar. Mantenha as credenciais seguras, como em um gerenciador de senhas;
- Se possível, use a autenticação de múltiplos fatores;
- Não compartilhe suas credenciais com ninguém;
- Sempre verifique o endereço do remetente e não abra e-mails de domínios suspeitos;
- Tenha cuidado ao clicar em links e baixar anexos. Sempre verifique e avalie as informações do remetente e o corpo do e-mail;
- Relate qualquer tentativa de phishing, ou seja, e-mails fraudulentos tentando obter acesso indevido ou roubar credenciais;
- Lembre-se de sempre sair da sua conta, especialmente ao usar computadores públicos.
Outros serviços
Existem várias outras categorias e muitos outros serviços de diferentes provedores de nuvem. Não seria viável abordá-los todos, mas algumas das dicas acima sempre se aplicam, como, fornecer o menor privilégio necessário, usar senhas fortes e exclusivas e armazenar suas credenciais com segurança. Para garantir as melhores práticas de segurança na nuvem e verificar as informações mais recentes, entre em contato com o serviço de informações diretamente com o provedor escolhido.
Lembre-se de que, ao usar serviços em nuvem, a segurança é uma responsabilidade compartilhada entre o usuário e o provedor. Portanto, certifique-se sempre de aplicar as melhores práticas para obter total segurança na nuvem.
Conte com a Programmers para obter segurança na nuvem
Não existe caminho para a transformação digital que não passe pela adoção de plataformas, ferramentas e serviços na nuvem. Portanto, a computação em nuvem é premissa para entregar serviços de valor aos seus clientes, de maneira rápida, escalável, segura e moderna. Capaz de prover a robustez que negócios de peso requerem e a agilidade que mercados dinâmicos demandam.
Seja no desenvolvimento de aplicações ou na migração de seus sistemas legados para a nuvem, conte com a Programmers para fornecer à sua organização e aos seus clientes o maior valor possível. Entre em contato ainda hoje!
Douglas Modena é Senior Developer na Programmers. Formado em análise e desenvolvimento de sistemas, seu foco de atuação é principalmente no desenvolvimento web. Além de se interessar por tecnologia, ele também gosta de séries e livros de ficção científica, viajar e aprender novos idiomas.