Protegendo seu ambiente da AWS

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?  

Com mais empresas do que nunca utilizando serviços em nuvem como a AWS, e com ambientes de nuvem cada vez mais complexos, é essencial que as organizações desenvolvam estratégias de segurança proativas e abrangentes que criem segurança desde o início e evoluam à medida que suas infraestruturas sejam dimensionadas para manter sistemas e dados seguro.

Concentre-se no controle
Embora o modelo de responsabilidade compartilhada defina que os provedores devem se concentrar na segurança da nuvem, a realidade é que você ainda precisa ter os controles certos configurados corretamente.

Controles de registro e gerenciamento de identidade e acesso oferecem aos clientes um controle mais granular e maior insight sobre a segurança da carga de trabalho. Em outras palavras, embora você possa confiar em seu provedor de nuvem, os controles de acesso são uma boa ideia sempre, pois eles permitem impor regras e políticas que façam sentido para o seu negócio exclusivo.

Mesmo que a AWS esteja aderindo às práticas recomendadas do setor, pode haver áreas em que faça sentido ajustar as regras de acordo com sua situação específica.

Melhor ainda, quanto mais insights você obtiver por meio de controles, melhor você estará quando descobrir e abordar TI paralela (um grande risco de segurança) e monitoramento e gerenciamento gerais de ameaças. Então, se você não tem controles de gerenciamento de identidade e acesso adequados atualmente, agora é um bom momento para adicionar essa camada de segurança à sua postura.

Identificar, definir e categorizar ativos de informação
A primeira etapa ao optar pela implementação das práticas recomendadas de segurança da AWS é identificar todos os ativos de informações que você precisa proteger (dados do aplicativo, dados do usuário, código, aplicativos) e definir uma abordagem eficiente e econômica para protegê-los ameaças externas.

Recursos de informações essenciais, como informações relacionadas a negócios, processos internos específicos e outros dados de atividades estratégicas. Componentes / elementos que suportam os ativos de informações essenciais, como infraestrutura de hardware, pacotes de software, lista de pessoal e parcerias. 

Controle o acesso aos recursos do AWS IoT usando sua própria solução de gerenciamento de identidades e acesso
O AWS IoT é uma plataforma de nuvem gerenciada que permite que os dispositivos conectados interajam de forma fácil e segura com aplicativos em nuvem e outros dispositivos usando o protocolo MQTT (Message Queuing Telemetry Transport), HTTP e MQTT pelo protocolo WebSocket.

Cada dispositivo conectado deve se autenticar no AWS IoT e o AWS IoT deve autorizar todas as solicitações para determinar se o acesso às operações ou recursos solicitados é permitido. Até agora, o AWS IoT suportava dois tipos de técnicas de autenticação: o protocolo de autenticação mútua Transport Layer Security (TLS) e o algoritmo AWS Signature Versão 4. Os chamadores devem possuir um certificado X.509 ou credenciais de segurança da AWS para poder autenticar suas chamadas. As solicitações são autorizadas com base nas políticas anexadas ao certificado ou às credenciais de segurança da AWS.

No entanto, muitos dos usuários têm seus próprios sistemas que emitem tokens de autorização personalizados para seus dispositivos. Esses sistemas usam mecanismos de controle de acesso diferentes, como tokens OAuth over JWT ou SAML. O AWS IoT agora suporta um autorizador personalizado para permitir o uso de tokens de autorização personalizados para controle de acesso.

Agora você pode usar tokens personalizados para autenticar e autorizar HTTPS sobre o protocolo de autenticação do servidor TLS e conexões MQTT sobre WebSocket para o AWS IoT. 

Lembre-se de onde você armazena suas chaves de acesso
Nunca armazene suas chaves de acesso e chave secreta em instâncias ec2 ou qualquer outro armazenamento em nuvem. Se você precisar acessar recursos da AWS a partir de uma instância do ec2, poderá sempre usar as funções do IAM.

Use os serviços de segurança da AWS ao integrar serviços adicionais ou migrar novas cargas de trabalho para sua implantação
Quando uma equipe de desenvolvimento implanta uma carga de trabalho na AWS, o provedor de nuvem não protege esse aplicativo de todas as ameaças de segurança externas, como ataques de negação de serviço distribuída (DDoS).

Mesmo quando uma infraestrutura da AWS funciona adequadamente, os ataques externos podem reduzir o desempenho da carga de trabalho ou torná-la indisponível. Esses tipos de ataques podem parar uma equipe de TI em suas trilhas – para não mencionar o custo de uma fortuna em recursos desperdiçados. Isso torna essencial usar os serviços de segurança da AWS quando você integra serviços adicionais ou migra novas cargas de trabalho para sua implementação.

Utilize a ferramenta de gerenciamento de identidade e acesso da AWS
A AWS tem a Identity and Access Management Tool, também conhecida como AWS IAM, para gerenciar melhor os usuários que podem acessar os recursos diretamente na nuvem. A ferramenta ajuda a controlar o acesso não autorizado e o roubo de identidade (garante que as senhas dos usuários sejam alteradas com frequência). A Autenticação Multifator ou MFA, que é um dos recursos da ferramenta Gerenciamento de Identidade e Acesso, é uma prática importante que aprimora a segurança dos dados na nuvem. Além disso, o Access Management Control, que é outro recurso adicional do AWS IAM, garante que os pares de chaves do EC2 possam ter acesso a recursos somente por meio de protocolos. 

Use a autenticação multifatorial na sua conta raiz
Sua conta root tem acesso a todos os recursos da AWS, e isso é o mais importante. A autenticação multifatorial ajuda a adicionar camadas adicionais de proteção para eliminar possibilidades de acesso não autorizado. Uma prática segura é ter um dispositivo seguro e dedicado para receber senhas de uso único, em vez de vinculá-lo a um telefone celular.

Esse dispositivo dedicado também deve ser colocado em um ambiente restrito, com alertas automatizados para ajudá-lo a detectar tentativas de roubo. Quando você usa um dispositivo de celular para as senhas de uso único, há um risco tangível de roubo de dispositivo que contribui para comprometer a segurança do acesso da sua conta root.

Você pode aumentar a segurança da AWS configurando a autenticação de vários fatores para excluir os buckets do CloudTrail. Isso garante que qualquer pessoa que consiga acessar sua conta da AWS não possa manipular os registros do CloudTrail para ocultar suas atividades.

Criptografar seus serviços de banco de dados relacionais do Amazon
Enfrente alguns dos erros mais comuns de segurança cometidos quando as empresas fazem a mudança para a AWS. Isso inclui a criptografia dos serviços de banco de dados relacionais do Amazon (RDS), caso eles ainda não estejam criptografados no nível de armazenamento. A AWS fornece criptografia RDS para garantir que os dados em repouso não corram risco. Em muitos casos, isso também atende aos requisitos de conformidade corporativa, como os exigidos pela HIPAA ou pelo PCI DSS.

Também é uma boa ideia rotacionar as chaves do IAM para os usuários a cada três meses para garantir que as chaves antigas não sejam usadas para acessar serviços de alto nível. Por fim, opte por políticas de acesso escritas sobre permissões de bucket do S3, a função de acesso de lista, por exemplo, pode causar picos de custo se os usuários que não precisam da função listarem objetos com alta frequência.

Nomeie suas instâncias do EC2 de forma lógica
Nomear (marcar) suas instâncias do EC2 de maneira lógica e consistente tem várias vantagens, como fornecer informações adicionais sobre o local e uso da instância, promover consistência no ambiente selecionado, distinguir recursos similares rápidos, melhorar a clareza em casos de ambigüidade potencial, e classificá-los com precisão como recursos de computação para facilitar o gerenciamento e o faturamento.

A marcação pode ajudar a gerenciar recursos em escala
A marcação é uma ferramenta eficaz para ajudar a gerenciar recursos da AWS em escala crescente, fornecendo a capacidade de identificar, classificar e localizar recursos para fins de gerenciamento e faturamento.

A filtragem do Amazon EC2 fornece uma maneira de localizar recursos marcados e validar se os padrões de marcação em sua organização estão sendo implementados corretamente. As melhores práticas de nomenclatura podem ser aproveitadas para obter consistência em todo o ambiente e maximizar os benefícios que a marcação oferece. 

Use Ferramentas Automatizadas para Ajudar a Gerenciar Tags de Recursos
Implementar ferramentas automatizadas para ajudar a gerenciar tags de recursos. A API de marcação de grupos de recursos permite o controle programático de tags, facilitando o gerenciamento, a pesquisa e a filtragem automática de tags e recursos. Ele também simplifica os backups de dados de tags em todos os serviços suportados com uma única chamada de API por região da AWS. 

Sua convenção de segurança e desenvolvimento de nomes deve ser facilmente entendida em todas as equipes de desenvolvimento e infraestrutura
O problema em organizar cada recurso e como ele pode se relacionar com outro recurso da AWS é garantir que cada recurso possa ser reutilizado pelo próximo engenheiro da AWS em sua equipe. Uma boa abordagem ao fazer isso é criar uma convenção de segurança e implantação de nomes que possa ser facilmente compreendida pelas equipes de desenvolvimento e infraestrutura .

Use o MFA para exclusão de bucket e restrinja o acesso aos logs de bucket do CloudTrail
O acesso irrestrito, mesmo aos administradores, aumenta o risco de acesso não autorizado em caso de credenciais roubadas devido a um ataque de phishing. Se a conta da AWS ficar comprometida, a autenticação multifator tornará mais difícil para os hackers esconderem sua trilha. 

Mantenha as instâncias desligadas quando não estão em uso
Agendar suas instâncias para serem desativadas em noites e finais de semana quando você não as usa economiza muito dinheiro em sua conta de nuvem, mas também oferece segurança e proteção. Deixar servidores e bancos de dados 24 horas por dia, sete dias por semana, é pedir a alguém para tentar entrar e se conectar a servidores em sua infraestrutura, especialmente durante as horas de folga quando você não tem mais funcionários de TI vigiando as coisas. Ao programar agressivamente seus recursos para que sejam desativados o máximo possível, você minimiza a oportunidade de ataques externos a esses servidores. 

As concessões são uma maneira mais flexível de controlar o acesso aos CMKs no KMS.
As principais políticas são a principal maneira de controlar o acesso às chaves mestras do cliente (CMKs) no KMS. Além disso, você pode usar as políticas do IAM para autorizar. A segunda maneira de controlar o acesso é o Grants. Com uma concessão, você pode permitir que outro principal da AWS (por exemplo, uma conta da AWS) use uma CMK com algumas restrições. Você também pode implementar isso com a política Key, mas as concessões são mais flexíveis para controlar. 

Limitar o acesso a buckets do S3 para administradores confiáveis
Os dados armazenados nos buckets do S3 são seguros por padrão. Por meio de políticas de gerenciamento de identidades e acesso (IAM), políticas de bucket e listas de controle de acesso, os usuários podem controlar exatamente quem pode acessar os buckets do S3.

Autenticar a identidade e restringir o acesso pode parecer uma boa prática de bom senso, no entanto, essas ações são frequentemente negligenciadas. Você deve limitar o acesso ao bucket do S3 a administradores confiáveis ​​e auditar suas permissões com frequência. Saiba quem são seus fornecedores e examine cuidadosamente suas permissões também. As empresas freqüentemente permitem que os fornecedores acessem áreas vulneráveis ​​da rede.

Permitir que as instâncias se comuniquem apenas para as portas TCP / UDP necessárias
As instâncias do EC2 vão se comunicar umas com as outras, mas deve haver comunicação apenas para as portas TCP / UDP necessárias. Portanto, é recomendável configurar os grupos de segurança como firewalls virtuais para permitir e negar o tráfego de ou para instâncias.

Essa é a melhor maneira de proteger instâncias ou grupos de instâncias, porque as instâncias que estão em um grupo não se comunicarão com instâncias de outro grupo, a menos que o permita explicitamente. Como você pode ver, o firewall de perímetro de rede não é mais suficiente para permitir e negar tráfego entre redes, mas estamos exigindo cada vez mais firewalls para proteger máquinas virtuais de máquinas virtuais, mesmo quando elas estão na mesma sub-rede.

Definir alarmes no faturamento para ajudar na detecção de ataques DDoS
Definir alarmes no faturamento usando o Amazon CloudWatch. Essa prática pode ser muito útil para detectar ataques DDoS e altas ocorrências de transferência de dados.

Use os grupos de segurança
Os grupos de segurança da AWS atuam como um firewall virtual, permitindo que você controle o tráfego de entrada e saída. Use os grupos de segurança da AWS para limitar o acesso a serviços administrativos (SSH, RDP etc.), bem como a bancos de dados.

Além disso, tente restringir o acesso e permitir apenas determinados intervalos de rede, quando possível. Também é importante monitorar e excluir grupos de segurança que não estão sendo usados ​​e auditá-los.

Colocar Firewalls Virtuais em Todas as Redes Virtuais Criadas
Em vez de apenas ter um firewall na extremidade da infraestrutura, coloque firewalls virtuais (disponíveis no AWS Marketplace) em cada rede virtual criada.

Atribuir funções do IAM a instâncias do EC2
As funções do IAM podem ser usadas para definir níveis de permissão para diferentes recursos e aplicativos executados em instâncias do EC2. Ao iniciar uma instância do EC2, você pode atribuir uma função do IAM a ela, eliminando a necessidade de seus aplicativos usarem as credenciais da AWS para fazer solicitações de API.

Essa é uma das melhores ferramentas quando se trata de segurança na AWS. Em primeiro lugar, os papéis do IAM podem ser muito granulares; você pode controlar o acesso em um nível de recurso e para ações que podem ser executadas. E, ao usar as funções do IAM, se sua instância do EC2 for comprometida, você não precisará revogar as credenciais. ”

Nem todo mundo precisa ser um administrador
As chaves de acesso e o controle de acesso do usuário são essenciais para a segurança da AWS. Pode ser tentador dar direitos de administrador aos desenvolvedores para lidar com certas tarefas, mas você não deve. Nem todo mundo precisa ser um administrador, e não há motivo para que as políticas não consigam lidar com a maioria das situações.

Recentes pesquisas descobriram que 35% dos usuários com privilégios na AWS têm acesso total a uma ampla variedade de serviços, incluindo a capacidade de derrubar todo o ambiente do cliente da AWS. Outro erro comum é deixar as contas de alto privilégio da AWS ativadas para usuários finalizados.

Frequentemente, os administradores não definem políticas completas para uma variedade de cenários de usuários, optando por torná-los tão amplos que perdem sua eficácia. A aplicação de políticas e funções para restringir o acesso reduz sua superfície de ataque, pois elimina a possibilidade de todo o ambiente da AWS ser comprometido porque uma chave foi exposta, credenciais da conta foram roubadas ou alguém na sua equipe cometeu um erro de configuração.

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?