Detectando e prevendo acesso malicioso em redes corporativas usando o algoritmo de detecção da comunidade Louvain

INÍCIO » BLOG » Detectando e prevendo acesso malicioso em redes corporativas usando o algoritmo de detecção da comunidade Louvain

Por Gal Sadeh, cientista de dados sênior, Silverfort
Muitas violações de dados começam com o acesso a um computador insignificante e se propagam saltando de um computador para outro até chegar às valiosas “joias da coroa”, como credenciais de administrador, informações sobre um banco de dados importante que contém dados de clientes e muito mais. Detectar e prevenir estes ataques é uma tarefa muito complicada para os profissionais de segurança, uma vez que o número de possíveis caminhos de ataque é extremamente elevado e as redes mudam frequentemente (novas entidades são adicionadas ou removidas, permissões são alteradas, etc.). A maioria das técnicas de detecção de ataques baseia-se no reconhecimento de padrões maliciosos conhecidos, mas para ataques complexos isso já não é suficiente. Quando o ataque não possui um padrão reconhecível conhecido, é extremamente difícil detectá-lo.

Nossas tentativas iniciais com detecção de ataques

Como Silverfort analisa dados de autenticação e acesso monitorados em todo o empresa ambientes de rede e nuvem – ele precisa analisar muitos dados. No entanto, foram necessárias algumas tentativas para decidir qual seria a melhor forma de analisar todos esses dados para detectar ameaças desconhecidas. Eu pensei muito sobre essa questão. A princípio pensei em mapear todos os caminhos de acesso possíveis com base nos dados e tentar detectar os vulneráveis. No entanto, esta abordagem torna-se quase impossível de implementar quando a rede contém muitas entidades, uma vez que o número de caminhos de acesso possíveis cresce exponencialmente com o número de entidades. Tentei melhorar esse método eliminando alguns caminhos de acesso. Por exemplo, se um usuário não tiver permissões no diretório para acessar um determinado servidor – podemos eliminar esse caminho. Esta abordagem nos ajudou a processar uma grande quantidade de caminhos de acesso, mas não foi suficiente, pois mesmo sem permissões um caminho de acesso poderia ser possível através da exploração de vulnerabilidades.

Assim, decidimos tentar uma abordagem diferente: dividimos a rede em comunidades, com base no facto de os membros de uma comunidade comunicarem entre si e com outros recursos partilhados, mais do que com outras entidades da rede.

Deixe-me explicar melhor:

O que são comunidades e o que são algoritmos de detecção de comunidades?

As redes podem ser modeladas como gráficos de conexões (arestas) entre nós, onde cada nó representa uma entidade (usuário, computador, etc.) e cada aresta conectando-se entre os nós representa uma conexão lógica. Por exemplo, se um usuário acessa um servidor, o usuário e o servidor seriam os ‘nós’ e a conexão entre eles seria representada por uma ‘aresta’.
Cada aresta também está associada a um peso que representa a resistência da ligação, que se baseia no número de autenticação e solicitações de acesso que vemos nesta borda.
A forma como os algoritmos de detecção de comunidade funcionam é pegar um gráfico bruto como entrada, analisá-lo e atribuir cada nó a uma comunidade. Cada comunidade é caracterizada pela sua 'densidade' que é a relação entre os pesos de todas as arestas e o número de nós na comunidade. A maioria dos algoritmos de detecção de comunidades tem um “objetivo”, que é um número que representa a compatibilidade geral dos nós com as comunidades às quais foram atribuídos. O objetivo é maximizar esse número. Um objectivo mais amplo significa comunidades de “Alta Densidade”.
Observe que algoritmos diferentes podem ter “objetivos” ligeiramente diferentes.

Atribuindo nós a comunidades usando o algoritmo Louvain

Selecionamos o algoritmo Louvain porque é um algoritmo bem conhecido que roda muito rápido mesmo em redes grandes e complexas – seu tempo de execução é quase linear ao tamanho da rede. O algoritmo tenta maximizar seu objetivo repetindo estas duas fases:

  1.  Ele atribui cada nó do gráfico a uma única comunidade. Para cada aresta que conecta o nó u e o nó v, o algoritmo verifica se a fusão das comunidades de u e v aumenta o objetivo e, em caso afirmativo, realiza a fusão.
  2. O algoritmo constrói um novo grafo, onde cada comunidade é representada por um único nó, e o peso atribuído à aresta entre as comunidades é a soma dos pesos de todas as arestas entre os nós mesclados de cada comunidade.

O algoritmo para quando não há nenhuma etapa que aumente o objetivo. A saída é um gráfico induzido, onde os nós representam comunidades. Para nossa implementação usamos um pacote Python chamado “community”. Mais material de leitura pode ser encontrado aqui: http://www.emilio.ferrara.name/wp-content/uploads/2011/07/isda2011-k-path.pdf

Detecção comunitária e segurança cibernética

Como cada comunidade é densa, o que significa que existem muitos caminhos de acesso entre os nós, se um invasor obtiver acesso a uma das entidades (conta de usuário ou dispositivo) em uma comunidade, seria mais fácil para ele obter acesso a outras entidades nessa comunidade. Obviamente, é mais difícil para um invasor expandir para outras comunidades, pois há menos caminhos de acesso entre diferentes comunidades. Se usada corretamente, a detecção de comunidade pode ajudar a identificar atividades suspeitas dentro de uma rede, prever caminhos de movimento lateral e aplicar políticas mais inteligentes em tempo real.

Como funciona o dobrador de carta de canal Silverfort encaixa

Quando Silverfort'S Autenticação Baseada em Risco A plataforma é implantada em rede, monitora toda a atividade de autenticação e acesso entre as diversas entidades e constrói um gráfico conforme descrito anteriormente. O gráfico bruto é assim:

Cada círculo é um usuário e cada triângulo é um servidor. Os pesos nas arestas são determinados pelo número de solicitações de autenticação e acesso monitoradas e pelas permissões associadas aos diferentes nós (para simplificar, os pesos não são mostrados no gráfico). Em seguida, usamos o algoritmo Louvain para identificar comunidades na rede. Após identificar as comunidades, o mapa ficará assim:


Agora, identificamos nós que se comunicam com entidades em comunidades das quais não fazem parte. Esses nós seriam alvos valiosos para os invasores, porque são os únicos pontos de acesso entre comunidades. Portanto, um invasor terá que passar por eles para se espalhar para outras comunidades. Proteger as bordas (conexões) desses nós é importante para evitar que um ataque se espalhe pela rede.

utilização SilverfortDe acordo com as políticas de autenticação da Microsoft, as empresas podem responder automaticamente às ameaças detectadas, aplicando autenticação progressiva para validar a identidade do usuário ou bloqueando totalmente o acesso. Isso é verdade tanto para a comunicação usuário-máquina quanto para a comunicação máquina-máquina.
Identificar as comunidades e as valiosas conexões intercomunitárias que seriam alvo dos invasores ajuda Silverfort clientes na definição de políticas de autenticação seguras e inteligentes. O gráfico da comunidade também pode ajudar os administradores a identificar configurações incorretas em suas redes. No gráfico abaixo, alguns dos nós e conexões valiosos que devem ser protegidos estão marcados em roxo.

Como isso é aproveitado hoje?

Alguns de nossos clientes já estão usando Silverfortda comunidade (que faz parte do nosso mecanismo de risco baseado em IA) para identificar comunidades e conexões cruzadas de comunidades em suas redes, identificar configurações incorretas e “pontos fracos” que devem ser protegidos e detectar atividades anormais. Agora, estamos ajudando os clientes a dar o próximo passo: aplicar políticas de autenticação segura em tempo real em resposta às ameaças detectadas e prevenir eficazmente movimento lateral em suas redes e ambientes de nuvem.

Gal Sadeh, cientista de dados sênior, Silverfort
Gal é cientista de dados sênior em Silverfortequipe de pesquisa. Ele é responsável pela análise de big data e pelo desenvolvimento de mecanismos de IA. Ele se juntou Silverfort depois de muitos anos de pesquisa e cargos de liderança na unidade cibernética de elite 8200 das Forças de Defesa de Israel. Gal possui um B. Sc. em Matemática e Ciência da Computação pela Universidade de Tel Aviv.

Pare as ameaças à identidade agora