WINDOWS: O que é uma lista de controle de acesso (ACL)?

Uma lista de controle de acesso (ACL) é um componente fundamental da segurança do computador. As ACLs ajudam a controlar e gerenciar permissões de acesso aos recursos organizacionais. Neste artigo, explicarei detalhadamente o que é uma lista de controle de acesso e como você pode usá-la para proteger o acesso a recursos locais e de rede.

As ACLs são parte integrante das estratégias de segurança cibernética corporativa, auxiliando os administradores de TI não apenas a controlar o acesso a recursos de rede e arquivos, mas também a garantir que apenas entidades autorizadas tenham acesso a recursos específicos. As ACLs também ajudam a manter a confidencialidade, integridade e disponibilidade de dados confidenciais e recursos de rede.

O que é uma lista de controle de acesso?

As listas de controle de acesso são compostas por um conjunto de regras usadas para configurar e controlar o acesso a recursos como arquivos, diretórios ou dispositivos de rede. Essas regras definem quem pode acessar um recurso específico e quais operações eles podem realizar, geralmente definidas como permissão ou negação . 

As ACLs podem ser configuradas em vários níveis, incluindo nível de sistema de arquivos, nível de firewall ou nível de dispositivo, fornecendo controle granular sobre o acesso a recursos. As ACLs normalmente consistem em regras de acesso e permissões para diferentes usuários, grupos ou endereços de rede que definem o acesso aos recursos do sistema. Essa flexibilidade e granularidade permitem que os administradores de sistema apliquem políticas de segurança adaptadas às necessidades organizacionais.

Tipos de listas de controle de acesso

Embora existam várias classificações e tipos de listas de controle de acesso, elas podem ser amplamente classificadas em quatro tipos principais com base no seu mecanismo de funcionamento:

  1. ACL padrão
  2. ACL estendida
  3. ACL dinâmica
  4. e LCA reflexivo.

1. ACL padrão

As ACLs padrão representam a camada fundamental do mecanismo de controle de acesso e são o tipo mais simples e direto de lista de controle de acesso. Eles têm como objetivo principal controlar o acesso com base em endereços IP de origem ou usuários. No entanto, as ACLs padrão não possuem granularidade para distinguir entre diferentes tipos de tráfego IP, como TCP, ICMP, UDP ou aplicativos específicos. Ou um protocolo de Internet como HTTPS.

2. ACL estendida

As ACLs estendidas permitem restrições de acesso mais abrangentes do que as ACLs padrão. As ACLs estendidas podem considerar vários atributos de tráfego de rede, incluindo endereços IP de origem, endereços IP de destino, protocolos de rede, números de porta de origem e destino e até tipos específicos de tráfego.

Esse conjunto expandido de critérios para ACLs estendidas permite decisões de controle de acesso mais granulares. E permitem que os administradores de rede implementem modelos de acesso mais personalizados.

3. ACL dinâmica

As ACLs dinâmicas, também conhecidas como controle de acesso “lock and key”, permitem que as permissões sejam ajustadas dinamicamente com base nas necessidades organizacionais. Ao contrário das ACLs estáticas (padrão e estendidas), que possuem regras fixas definidas até que alguém as altere manualmente, você pode configurar ACLs dinâmicas usando gatilhos que permitem adaptar automaticamente as permissões de acesso conforme necessário.

Por exemplo, você pode configurar uma ACL dinâmica para modificar e adaptar automaticamente o modelo de acesso com base em fatores como:

  • A hora do dia
  • a localização do usuário
  • o tipo de dispositivo que está sendo usado
  • ou a postura de segurança da rede.

4. LCA reflexivo

As listas de controle de acesso (ACLs) reflexivas são um tipo de ACL dinâmica que cria automaticamente regras de acesso temporárias em resposta aos fluxos de tráfego de rede de saída. Eles permitem que você crie regras temporárias dinamicamente, de modo que o firewall ou roteador permita o tráfego de entrada com base no tráfego de saída que corresponda a critérios especificados.

Tipos de ACL baseados em implementação

As ACLs podem ainda ser classificadas como ACLs de rede e ACLs de sistema de arquivos com base em sua aplicação. Observe que cada um desses tipos de implementação de ACL ainda pode ser configurado como padrão, estendido, dinâmico ou reflexivo. 

ACLs de rede

As listas de controle de acesso à rede são usadas para filtrar e controlar o fluxo do tráfego de rede de entrada e saída em uma rede corporativa. Eles podem ajudar a impor políticas de segurança e restrições de acesso, permitindo ou negando o tráfego com base nas regras especificadas.

Você também pode optar por especificar critérios de acesso com base em endereços IP, números de porta de destino e origem, protocolos e muito mais. As ACLs de rede são um mecanismo de segurança comum em quase todas as organizações.

ACLs do sistema de arquivos

As ACLs do sistema de arquivos servem para proteger e controlar o acesso a arquivos e diretórios que contêm dados do sistema operacional ou arquivos do usuário. Eles definem permissões para indivíduos e grupos. E especificam os padrões de acesso para quem pode realizar operações de arquivo, como leitura, gravação e execução. As ACLs do sistema de arquivos ajudam as organizações a ativar o “princípio do menor privilégio” e permitir controles de acesso refinados. 

Utilitários de linha de comando, como icacls.exe no Windows, podem ser usados ​​para mostrar e gerenciar ACLs no sistema de arquivos e no registro.

Como funcionam as ACLs?

O modelo de trabalho principal para qualquer tipo de ACL é baseado em um conjunto de regras que especificam quem pode acessar quais recursos e quais ações eles podem executar. Cada regra ACL normalmente consiste em uma ou mais entradas de controle de acesso (ACEs) que consistem nos nomes dos usuários ou grupos de usuários com permissão ou negação da capacidade de executar operações no recurso.

As ACLs permitem definir privilégios de acesso em uma máscara de acesso que contém uma sequência de bits e normalmente é baseada em alguns critérios criados em parâmetros como endereços IP de origem, endereços IP de destino, protocolos e números de porta.

Quando é feita uma solicitação de acesso a um recurso, a ACL é consultada para determinar se a solicitação deve ser atendida ou negada com base nas regras predefinidas. Se a solicitação corresponder a uma regra permitida, o acesso será concedido; se corresponder a uma regra negada, o acesso será bloqueado. Este processo controla o tráfego de rede e o acesso a arquivos para garantir a segurança, permitindo apenas o acesso autorizado e bloqueando tentativas não autorizadas.

É importante saber e compreender que, embora as ACLs possam ser implementadas e gerenciadas por dispositivos específicos, como roteadores, switches, servidores web, servidores DNS (sistema de nomes de domínio), VPNs e firewalls, elas não estão limitadas a nenhum hardware ou software específico. . Em vez disso, as ACLs são um conceito geral de segurança usado em diferentes ambientes de computação para gerenciar restrições de acesso e garantir a segurança de sistemas e redes.

Benefícios de usar uma ACL?

Na tabela abaixo, listo os muitos benefícios do uso de ACLs para controlar o acesso a arquivos e recursos de rede.

BenefíciosDescrição
SegurançaAs ACLs ajudam a habilitar a segurança dos recursos, controlando o acesso aos recursos
Controle granularAs ACLs permitem que você estabeleça um controle refinado sobre as permissões de acesso
FlexibilidadeAs ACLs oferecem grande flexibilidade na definição e personalização de políticas de acesso para atender às necessidades organizacionais
EscalabilidadeAs ACLs são escaláveis ​​e podem ser acomodadas em vários ambientes de diferentes tamanhos e complexidades. Eles também podem ser configurados para plataformas locais e baseadas em nuvem
Proteção de recursosAs ACLs protegem recursos organizacionais confidenciais e críticos para os negócios contra acesso não autorizado e protegem a integridade dos dados
Auditoria e conformidadeAs ACLs são um meio eficaz de atender aos requisitos de auditoria e conformidade, fornecendo visibilidade e relatórios granulares
Redução da sobrecarga administrativaA natureza configurável das ACLs ajuda a simplificar o gerenciamento de acesso, minimizando a sobrecarga administrativa

Benefícios de usar uma ACL

Quais são os componentes de uma ACL?

Uma lista de controle de acesso consiste em vários componentes que definem coletivamente as permissões de acesso para recursos organizacionais. 

Número sequencial

Um número de sequência é usado para identificar entradas individuais na ACL e também pode ajudar a determinar a ordem em que elas são avaliadas.

Nome da ACL

Isso é usado para armazenar os nomes dos objetos e pode ser usado para referenciar e gerenciar as entradas ACL.

Comente

Este é um campo opcional que permite aos administradores de rede incluir texto descritivo nas ACLs.

Protocolo de rede 

As ACLs podem filtrar o tráfego de rede com base em protocolos específicos, como TCP, UDP, IPX, NetBIOS e outros. Este componente é usado para especificar o protocolo que está sendo empregado na ACL. 

Fonte e destino

Esses campos conterão os endereços IP para determinar a origem e o destino final. 

Registro

Contém detalhes de registro sobre o tráfego de rede de entrada e saída afetado pelas regras da ACL.

Quais são os tipos de controles de acesso implementados nas listas de controle de acesso?

Abaixo está uma tabela que fornece uma comparação abrangente de vários recursos e critérios que podem ajudá-lo a escolher entre os diferentes tipos de controles de acesso.

RecursoControle de acesso obrigatório (MAC)Controle de acesso discricionário (DAC)Controle de acesso baseado em função (RBAC)Controle de acesso baseado em atributos (ABAC)Controle de acesso baseado em regras (RBAC)
Determinação de direitos de acessoPermissões de acesso definidas pelo sistemaPermissões de acesso definidas pelo proprietárioAtribui permissões com base nas funções do usuárioAvalia solicitações de acesso com base em vários atributosAvalia decisões de acesso com base em regras ou políticas predefinidas
Flexibilidade de configuraçãoLimitadoAltoModeradoAltoAlto
Granularidade de acessoAltoBaixoAltoAltoAlto
A critério do proprietárioNãoSimNãoNãoNão
Atribuição de funçãoNão aplicávelNão aplicávelAtribuir usuários a funçõesNão aplicávelNão aplicável
Decisões de acesso dinâmicoNãoNãoNãoSimNão
Propriedade de recursosDeterminado pelo sistemaDeterminado pelo proprietário do recursoNão aplicávelNão aplicávelNão aplicável
Despesas administrativasAltoModeradoModeradoAltoAlto
Casos de usoAmbientes de alta segurançaControle de acesso de uso geralGrandes organizaçõesAmbientes dinâmicosCenários complexos de controle de acesso
Quais são os tipos de controles de acesso implementados nas listas de controle de acesso

Práticas recomendadas de ACL

Abaixo estão as cinco principais práticas recomendadas para configurar e implementar ACLs de rede e de sistema de arquivos.

1. Princípio do menor privilégio

É uma boa prática seguir o princípio do menor privilégio ao configurar o acesso e as permissões para usuários e outras entidades aos recursos da rede.

2. Revisões e auditorias regulares

As ACLs devem ser revisadas e auditadas periodicamente para garantir que o acesso provisionado esteja atualizado e atenda às necessidades organizacionais.

3. Registro e monitoramento

Ativar o registro de eventos e gatilhos relacionados à ACL e monitorá-los regularmente ajuda a identificar e rastrear padrões de acesso suspeitos e/ou não autorizados.

4. Treinamento de funcionários

A educação e o treinamento adequados sobre as melhores práticas a serem usadas para ACLs e políticas de segurança organizacionais são cruciais para evitar contratempos de segurança.

5. Automação

Use a automação sempre que possível para minimizar a possibilidade de erro humano ao configurar, gerenciar e implantar ACLs.

Exemplos e casos de uso de listas de controle de acesso

As ACLs podem ser usadas para configurar e definir diversos requisitos de sistema diferentes, como proteção de recursos, construção de modelos de acesso e muito mais. Vejamos alguns casos de uso e exemplos diferentes de como as ACLs podem ser usadas em um provedor de nuvem como o Microsoft Azure e em um sistema local baseado no Windows . 

Microsoft Azure: casos de uso de ACL

  1. ACLs de conta de armazenamento:  podem ser usadas para permitir o gerenciamento seguro de dados, alocando acesso de leitura, gravação ou exclusão de dados em contêineres de armazenamento do Azure .
  2. ACLs de rede virtual : são usadas para gerenciar o tráfego de rede de entrada e saída de e para Máquinas Virtuais (VM) do Azure.
  3. ACLs do Azure Key Vault : usadas para proteger informações confidenciais, como chaves criptográficas para recursos do Azure Key Vault .

Sistemas Windows: casos de uso de ACL

  1. ACLs do sistema de arquivos : servem para regular o acesso a arquivos e pastas em sistemas Windows.
  2. ACLs do Active Directory : as ACLs do Active Directory configuram direitos de acesso a objetos de diretório, como usuários e grupos.
  3. ACLs de registro : controle o acesso às chaves e valores do Registro do Windows.

Conclusão

As listas de controle de acesso (ACLs) desempenham um papel vital na segurança organizacional, garantindo o controle de acesso regulado aos recursos organizacionais. Eles são usados ​​para gerenciar permissões em vários níveis e ajudam a manter a confidencialidade e integridade dos dados. As ACLs também servem como ferramentas fundamentais para aplicar políticas de acesso e proteger recursos críticos de TI.

Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.

Fonte: petri

NETWORKING: Ainda se lembra do modelo de referência OSI?

Quem gosta ou estudou redes de computadores, certamente que já ouviu falar no modelo OSI (Open Systems Interconnection). Este modelo de referência da ISO (International Organization for Standardization) é um modelo conceptual, que nos ajuda a perceber como os sistemas comunicam. Vamos lá recordar…

Apesar de, na prática, não ser usado (pois é um modelo conceptual), este é um modelo importante, pois define um conjunto de camadas e funções para a comunicação, em rede, de sistemas abertos.

CAMADAS DO MODELO OSI

  • Aplicação(Application)
  • Apresentação(Presentation)
  • Sessão(Session)
  • Transporte(Transport)
  • Rede(Network)
  • Dados(Data Link)
  • Física(Physical)

Explicação de cada uma das camadas

Camada Física

  • Define as características do meio físico de transmissão da rede, conectores, interfaces, codificação ou modulação de sinais.
  • É nesta camada que é definida a forma e a representação lógica da informação sendo que os bits com valor lógico 0 ou 1 são convertidos em sinais elétricos ou óticos;
  • Camada de ligação de dados
    • Esta camada tem por objetivo controlar o acesso ao meio físico de comunicação. É também nesta camada que é feito a numeração das frames (quadros ou tramas), o controlo de erros da camada física e o controlo de fluxo de informação.
    • Esta camada subdivide-se em duas subcamadas: a subcamada superior de controlo de acesso ao meio (LLC – Logical Link Control), que define e controla quando uma estação de rede pode começar a transmitir informação e a subcamada inferior de controlo das ligações lógicas (MAC – Medium Access Control) que faz o controlo de fluxo, controlo de erros e também o controlo de sequência;
  • Camada de rede
    • É nesta camada que é definida a interligação entre dispositivos de rede.
    • A camada de rede assegura questões como o endereçamento lógico e é responsável por funções de encaminhamento (routing) de pacotes na rede (do sistema de origem para o de destino) que pode ser suportado por diversos protocolos; É também feito o controlo de congestão.
  • Camada de transporte
    • A comunicação fim-a-fim, entre terminais, é realizada pela camada de transporte. Através do protocolo TCP (Transmission Control Protocol), é possível garantir um canal de comunicação fiável.
    • Esta camada disponibiliza também mecanismos de gestão de fluxo e deteção de erros em comunicações fim-a-fim. É nesta camada que é realizada a segmentação de dados e sequenciação;
  • Camada de Sessão
    • Esta camada é responsável pelo controlo (estabelece, faz a gestão e termina) e sincronização do diálogo/sessões entre aplicações.
  • Camada de Apresentação
    • A camada de apresentação assegura a compatibilidade entre camadas de aplicação de sistemas e sintaxes de dados diferentes.
    • Nesta camada são executados alguns processos como, por exemplo, a cifra ou transcodificação de dados;
  • Camada de Aplicação
    • Por fim a camada de aplicação fornece serviços às aplicações do utilizador.

Cada camada do Modelo OSI comunica com as camadas adjacentes por meio de interfaces bem definidas, permitindo a interoperabilidade entre dispositivos de diferentes fabricantes e a modularidade no design de sistemas de rede.

Modelo OSI – Protocolos por camada

A seguinte imagem mostra em que camada funciona um determinado protocolo. Por exemplo, quando falamos ao nível de TCP/UDP estamos mais especificamente a falar da camada de transporte.

Modelo OSI – Protocolos

A seguinte imagem mostra em que camada funciona um determinado protocolo. Por exemplo, quando falamos ao nível de TCP/UDP estamos mais especificamente a falar da camada de transporte.

Referências:

Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.

Fonte: pplware

HACKING: Root Me, Active Directory -GPO

O desafio envolve analisar o arquivo .pcap com vários protocolos.

Neste desafio específico, precisamos analisar o protocolo SMB e encontrar o sinalizador que falta.

Pré-requisitos:

  • Conhecimento de uma ferramenta de análise de captura de rede.
  • Conhecimento da política de grupo.
  • Conhecimento de Python

Você pode encontrar o desafio no link abaixo:

https://www.root-me.org/en/Challenges/Forensic/Active-Directory-GPO

Declaração

Durante uma auditoria de segurança, foi registrado o tráfego de rede durante a sequência de inicialização de uma estação de trabalho conectada a um Active Directory. Analise esta captura e encontre a senha do administrador.

Primeiro vamos baixar o arquivo ch12.pcap do desafio e abri-lo no Wireshark.

Agora, antes de nos aprofundarmos na captura de pacotes, vamos dar uma visão de alto nível dos diferentes protocolos. Para fazer isso, navegue até Estatísticas → Hierarquia de protocolo.

E você verá a janela abaixo, mostrando diferentes protocolos.

Vamos dar uma olhada nos diferentes protocolos e imediatamente o SMB2 chamou minha atenção na lista.

O que é PME

A Wikipédia afirma:

Em redes de computadores , Server Message Block ( SMB ), cuja versão também era conhecida como Common Internet File System ( CIFS /sɪfs/ ), [1] [2] é um protocolo de comunicação [3] para fornecer acesso compartilhado a arquivos , impressoras e portas seriais entre nós em uma rede. Ele também fornece um mecanismo autenticado de comunicação entre processos .

Vamos filtrar os dados com o protocolo SMB2. Para fazer isso, basta digitar smb2 na barra de filtros e veremos apenas o tráfego usando o protocolo SMB2.

Depois de filtrarmos pelo protocolo SMB2, vamos dar uma olhada mais de perto.

  1. Existem 2 índices de fluxo numerados 14 e 24.
  2. O índice de fluxo 14 está tentando configurar a sessão e depois termina
  3. O índice de fluxo 24 contém mais dados em comparação com 14

Vamos seguir o índice de fluxo 24, para isso clique com o botão direito — -> Seguir fluxo TCP.

E podemos ver todas as solicitações e respostas em vermelho e azul, respectivamente.

Percorrendo o fluxo, encontramos um arquivo xml em texto não criptografado:

<?xml versão=”1.0" codificação=”utf-8"?>
<Grupos clsid=”{3125E937-EB16–4b4c-9934–544FC6D24D26}”><Usuário clsid=”{DF5F1855–51E5–4d24–8B1A-D9BDE98BA1D1}” nome=”Helpdesk” imagem=”2" alterado=”2015– 05–06 05:50:08 "UID =" {43F9FF29-C120–48B6–8333–9402C927BE09} ”> <Propriedades Action =” u ”newName =” ”FullName =” ”Descrição” ”" CPassword = ”PSMSCOUXQUME =” +w” changeLogon=”1" noChange=”0" neverExpires=”0" acctDisabled=”0" userName=”Helpdesk”/></User><User clsid=”{DF5F1855–51E5–4d24–8B1A-D9BDE98BA1D1} ”nome=”Administrador” imagem=”2" alterado=”2015–05–05 14:19:53" uid=”{5E34317F-8726–4F7C-BF8B-91B2E52FB3F7}” userContext=”0" removePolicy=”0" ><Properties action=”U” newName=”” fullName=”Admin Local” description=”” cpassword=”LjFWQMzS3GWDeav7+0Q0oSoOM43VwD30YZDVaItj8e0" changeLogon=”0" noChange=”0" neverExpires=”1" acctDisabled=”0" subAuthority =”” nome_do_usuário=”Administrador”/></Usuário>
</Grupos>

Se olharmos os dados acima, podemos ver:

nome=”Administrador”

cpassword=”LjFWQMzS3GWDeav7+0Q0oSoOM43VwD30YZDVaItj8e0″

Como você pode ver, temos a senha do Administrador, mas ela está criptografada. Agora, para completar o desafio, temos que quebrar a senha.

Descriptografando senha

Encontre a chave AES

Para descriptografar a senha criptografada AES, precisamos da chave que foi usada para criptografar a senha.

Para encontrar a chave que a MS está usando para criptografar senhas, vamos começar pesquisando a chave no Google. Depois de pesquisar por alguns minutos, encontrei a chave em:

https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be

Todas as senhas são criptografadas usando uma chave derivada do Advanced Encryption Standard (AES).

A chave AES de 32 bytes é a seguinte:

4e 99 06 e8 fc b6 6c c9 fa f4 93 10 62 0f fe e8 
 f4 96 e8 06 cc 05 79 90 20 9b 09 a4 33 b6 6c 1b

Agora temos a chave que foi usada para criptografar a senha e o próximo passo é encontrar uma maneira de descriptografar a senha AES.

Descriptografando a senha AES

Como não estou muito familiarizado com criptografia, decidi usar o código python fornecido em https://github.com/MartinIngesen/gpocrack/blob/master/gpocrack.py

Infelizmente, o código fornecido não funcionou para mim e depois de olhar mais de perto e fazer algumas alterações, finalmente funcionou.

!pip install pycrypto
from Crypto.Cipher import AES
import base64
cpassword="LjFWQMzS3GWDeav7+0Q0oSoOM43VwD30YZDVaItj8e0="
decoded_password = base64.b64decode(cpassword)
key = b'\x4e\x99\x06\xe8\xfc\xb6\x6c\xc9\xfa\xf4\x93\x10\x62\x0f\xfe\xe8\xf4\x96\xe8\x06\xcc\x05\x79\x90\x20\x9b\x09\xa4\x33\xb6\x6c\x1b'
decryption_suite = AES.new(key, AES.MODE_CBC, '\x00'*16)
plain_text = decryption_suite.decrypt(decoded_password)
print("Password is: {}".format(plain_text.strip()))
password_list = (plain_text.decode().split('\x00')) # removing null bytes
password = ''.join(str(i) for i in password) # list to string
print(password)

Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.

Referências

  1. https://github.com/MartinIngesen/gpocrack/blob/master/gpocrack.py
  2. https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be
  3. Wikipedia > Tagged CryptographyGpoGroup PolicyRoot Me

Fonte: digitalitskills