5 boas práticas para AWS NACLs

153 views
8 mins read

NACL – Network Access Control Lists

As Listas de Controle de Acesso de Rede (NACLs) são um recurso essencial na infraestrutura da Amazon Web Services (AWS). Elas fornecem um controle granular sobre o tráfego de entrada e saída em uma sub-rede. Neste post, exploraremos a importância das NACLs na segurança da rede, destacando suas capacidades de filtragem e proteção contra ameaças. Veremos também como configurar e gerenciar as NACLs na AWS, garantindo a integridade e a confidencialidade dos dados em sua infraestrutura na nuvem.


Qual a diferença de NACLs e Security Groups?

  • NACLs podem ser comparados ao firewall de borda, que é um componente de rede responsável por controlar o tráfego de entrada e saída em um nível mais amplo, geralmente aplicado em uma rede ou sub-rede. Assim como um firewall de borda define políticas de segurança para permitir ou bloquear o tráfego com base em endereços IP, portas e protocolos, as NACLs controlam o tráfego em nível de subnet, permitindo ou negando o acesso com base em regras definidas.
  • Security Groups podem ser comparados ao firewall do sistema operacional, que é um componente de segurança aplicado a nível de instância ou servidor. Os SGs operam em um nível mais granular e controlam o tráfego de rede para instâncias individuais, permitindo ou bloqueando o acesso com base em regras de segurança específicas definidas para cada instância.
  • Enquanto os NACLs operam em um nível de rede mais amplo e são aplicados a grupos de recursos (subnets), os SGs são aplicados a instâncias específicas. Essa diferença de escopo determina as diferentes funcionalidades e aplicabilidades dos NACLs e SGs.
  • De forma resumida, os NACLs podem ser considerados como um firewall de borda para controlar o tráfego em uma rede ou sub-rede, enquanto os SGs são semelhantes a um firewall do sistema operacional para controlar o tráfego de rede em nível de instância.

Comportamento de um firewall stateless (sem estado)  NACLs

Antes de configurar as NACLs (Network Access Control Lists) da AWS, é importante compreender suas características fundamentais e a capacidade de ajustar o tráfego por meio de seu comportamento statless (sem estado). As NACLs são um recurso de segurança que permite controlar o tráfego de rede em nível de subnet. Ao contrário dos SGs statefull (com estado), as NACLs não mantêm informações sobre o estado das conexões. Isso significa que as alterações feitas em uma regra de entrada não serão automaticamente aplicadas à regra de saída. Para permitir a comunicação entre instâncias por meio da porta 443 (HTTPS), por exemplo, é necessário adicionar uma regra de entrada e uma de saída que permitam o tráfego nessa porta.


1. Esteja atento aos NACLs padrão, especialmente aqueles com servidores de produção

Ao criar uma VPC, é importante observar que ela vem com uma Network ACL padrão que permite todas as regras de entrada e saída. No entanto, se você optar por criar um NACL personalizado, as regras de entrada e saída serão negadas por padrão. Caso não tenha criado uma ACL de rede personalizada, as sub-redes serão automaticamente associadas à ACL padrão da VPC, permitindo todo o tráfego de entrada e saída.

É crucial ter cuidado ao configurar o tráfego de entrada ou saída nas NACLs, especialmente quando se trata de servidores em ambiente de produção. É altamente recomendado realizar verificações regulares nas NACLs que permitem todo o tráfego de entrada.

Aqui está um exemplo prático:

  • Atribua um NACL a uma sub-rede pública que abriga instâncias capazes de receber e enviar tráfego da Internet nas porta 80 (HTTP) e nas portas efêmeras de 1024 a 65535.

Ao mesmo tempo, bloqueie o tráfego nas portas:

  • Porta 22 (SSH):  protocolo de acesso remoto muito utilizado, mas também é um alvo comum de ataques de força bruta e tentativas de invasão.
  • Portas 135-139 (NetBIOS): Essas portas são usadas pelo protocolo NetBIOS, que pode ser explorado por invasores para obter informações e acesso não autorizado a sistemas.
  • Porta 445 (SMB): A porta 445 é usada pelo protocolo SMB (Server Message Block), que pode ser explorado para ataques de ransomware e outras atividades maliciosas.
  • Porta 3389 (RDP): A porta 3389 é usada para o protocolo Remote Desktop Protocol (RDP), que permite acesso remoto a sistemas Windows. Bloquear essa porta pode ajudar a evitar ataques de força bruta e tentativas de acesso não autorizado.

É importante lembrar que as portas específicas a serem bloqueadas podem variar dependendo das necessidades e do contexto da sua infraestrutura. Sempre verifique as melhores práticas de segurança e considere quais portas são essenciais para o funcionamento dos seus serviços, bloqueando todas as outras que não são necessárias.


2. Utilize Secutiry Groupss e NACLs em conjunto para uma proteção abrangente

A configuração de Security Groups (SGs) e Network ACLs (NACLs) dentro de uma Virtual Private Cloud (VPC) é fundamental para reduzir a superfície de ataque dos seus aplicativos hospedados na AWS. Esses dois componentes se complementam de maneira eficiente, uma vez que os SGs permitem definir o tráfego para os recursos dentro dos aplicativos, enquanto os NACLs possibilitam especificar explicitamente a porta, o protocolo e a origem do tráfego que deve ser permitido ou negado no nível da sub-rede.

Um exemplo prático ilustra a sinergia entre SGs e NACLs. Suponha que você possua um aplicativo web de duas camadas, com servidores da web em um SG e um banco de dados em outro. As regras de entrada no NACL permitem conexões de servidores da web de qualquer lugar do mundo, enquanto o banco de dados permite apenas conexões de entrada provenientes de uma lista restrita de servidores da web. Dessa forma, os servidores da web permitem conexões na porta 443, enquanto o banco de dados permite conexões de entrada na porta 3306 para o MySQL.


3. Fique atento às regras ‘deny’ (negar) ineficazes nas NACLs para garantir a segurança adequada.

Regras DENY mal configuradas ou ineficazes podem resultar em um acesso excessivamente permissivo à sua VPC, abrindo caminho para ataques como DoS ou DDoS. É crucial manter atenção à ordem das regras DENY em suas Network ACLs, pois elas são avaliadas sequencialmente. Por exemplo, na figura abaixo, uma regra DENY é configurada para bloquear o tráfego de entrada na porta 3389, conhecida por ser vulnerável. No entanto, se essa regra não bloquear o acesso de todos (0.0.0.0/0), ela se torna ineficaz e deve ser reconfigurada para garantir uma proteção efetiva contra possíveis ataques.

Revisar e testar cuidadosamente suas regras DENY nas Network ACLs, garantindo que estejam configuradas de forma apropriada para restringir o acesso não autorizado e proteger sua infraestrutura contra ameaças potenciais. Mantendo uma postura proativa e vigilante em relação à segurança, você pode fortalecer a proteção de sua VPC e minimizar os riscos associados a ataques indesejados.


4. Leve em consideração as limitações dos NACLs para uma configuração precisa

Antes de configurar os Network ACLs (NACLs) em sua infraestrutura na AWS, é essencial estar ciente das limitações envolvidas.

  1. Cada sub-rede associada a um NACL tem um limite de 20 regras de entrada e 20 regras de saída. Portanto, o número total de regras em um NACL é afetado pelo número de sub-redes associadas a ele. Esse limite pode ser aumentado para 40 entrando em contato com a AWS.
  2. As regras NACLs são avaliadas de forma sequencial, da primeira à última. Assim, a ordem das regras é fundamental. Caso uma regra permita ou negue o tráfego de maneira abrangente antes de uma regra mais específica, ela pode anular a ação esperada.
  3. Limites de recursos: A AWS impõe limites em relação ao número de NACLs que podem ser criados por conta e região. Esses limites podem variar dependendo do tipo de conta e do plano de serviço que você possui.
  4. As NACLs são uma camada de segurança na VPC, mas é importante lembrar que elas podem interagir com outras camadas de segurança, como grupos de segurança (Security Groups). É necessário garantir que as configurações das NACLs e dos grupos de segurança sejam compatíveis e não entrem em conflito umas com as outras.

Considerando essas limitações, é importante planejar cuidadosamente suas regras de NACL e garantir que elas estejam dentro dos limites estabelecidos. Isso envolve avaliar suas necessidades de segurança e priorizar as regras mais críticas para garantir um nível adequado de proteção para seus recursos. E ao enfrentar limitações de regras, é recomendável utilizar técnicas de otimização, como a combinação de regras ou o uso de regras mais abrangentes quando aplicável, para maximizar o uso dos slots disponíveis.


5. Jogue de acordo com as regras NACL da AWS para uma configuração segura e eficiente.

Embora seguir as práticas recomendadas seja fundamental para evitar erros e tráfego indesejado, existem algumas regras NACL da AWS que nunca devem ser ignoradas. Aqui estão algumas delas:

  1. Ordem de aplicação: As regras NACLs são sempre lidas em ordem crescente, sendo aplicadas uma a uma contra os pacotes correspondentes. Cada regra é aplicada independentemente, mesmo que uma regra posterior também corresponda ao pacote. Portanto, é essencial sequenciar cuidadosamente as regras NACLs, utilizando um sistema de numeração organizado.
  2. Definição em termos da porta de destino: As regras de ACL de rede da AWS (tanto de entrada quanto de saída) são especificadas em termos da porta de destino. Ao criar regras personalizadas, é importante especificar corretamente o protocolo e o intervalo de portas a serem usados.
  3. Numeração das regras: A numeração das regras NACL pode começar em 1 e ir até 32766. Recomenda-se deixar um espaço de pelo menos 50 números entre cada uma das regras NACL, para permitir a adição de regras adicionais no futuro. Não se esqueça, ao criar as regras, de aplicar uma regra de resposta de saída para permitir respostas a solicitações de entrada.
  4. Regra de asterisco numerado: Cada Network ACL inclui uma regra numerada com um asterisco (‘*’). Essa regra garante que o tráfego de entrada/saída seja negado se um pacote não corresponder a nenhuma das outras regras numeradas. Essa regra não pode ser modificada nem removida, pois desempenha um papel importante na segurança.
  5. Especifique o intervalo de portas para o protocolo atribuído a ser usado ao criar uma regra personalizada. Por exemplo exemplo 8043-8060.


Conclusão

Como uma segunda camada de defesa, os Network ACLs (NACLs) desempenham um papel crucial na proteção dos recursos hospedados na AWS. No entanto, é essencial configurá-los corretamente em diferentes cenários para garantir sua eficácia. A AWS documentou regras para diversos cenários, proporcionando diretrizes úteis na configuração dos NACLs. Ao seguir todas as regras e aplicar as melhores práticas mencionadas, você pode aprimorar constantemente sua postura de segurança na AWS e reduzir a superfície de ataque em sua infraestrutura.

No entanto, configurar os NACLs de acordo com as melhores práticas não é suficiente por si só. É fundamental realizar uma verificação contínua sobre eles. Independentemente de utilizar o código do Terraform ou ferramentas como o Cloud-custodian, é de suma importância monitorar e verificar regularmente as regras dos NACLs. O que realmente importa é a análise constante da tabela de rotas e das configurações dos NACLs, mapeando todo o tráfego de entrada e saída entre sub-redes e NACLs. Essa abordagem contínua permite manter a segurança da AWS em tempo real, identificando e mitigando quaisquer possíveis vulnerabilidades ou ameaças.

Sou um profissional apaixonado pela área de Segurança da Informação. Sou certificado em ISO 27001, ISO 27005, LGPD e GDPR, o que me torna um Data Protection Officer (DPO) certificado. Também sou certificado CC e SSCP pelo (ISC)², bem como um AWS Practitioner. Além do meu trabalho, sou um orgulhoso pai de três filhos, um nerd, um cinéfilo, um leitor voraz e um eterno aprendiz.

Deixe um comentário

Your email address will not be published.

Previous Story

Github: Threat Modeling

Next Story

Open-Source Intelligence (OSINT)

Latest from AWS

AWS Cloudtrail + Wazuh

Introdução Depois de um tempo ausente (aprendendo sobre uma poderosa ferramenta de BI e suas consultas