Fortalecendo a Segurança do Usuário com Autoencoders
Autoencoders melhoram a detecção de comportamentos incomuns de usuários nos logs do Okta.
Jericho Cain, Hayden Beadles, Karthik Venkatesan
― 7 min ler
Índice
No mundo digital de hoje, ficar de olho na Atividade do Usuário é super importante pra segurança. Uma plataforma que ajuda as empresas com isso é a Okta, que gerencia o acesso e autenticação dos usuários. Mas as ferramentas que a Okta oferece podem deixar passar algumas atividades estranhas porque elas dependem de regras fixas e dados limitados. Pra resolver isso, trazemos um truque maneiro chamado Autoencoders, um tipo de IA que ajuda a perceber comportamentos esquisitos nos logs dos usuários.
O Problema com os Logs da Okta
Os logs da Okta são usados pra ficar de olho em sinais de problemas como tentativas de hack. Os métodos tradicionais dependem de regras fixas que só conseguem olhar pra um pequeno número de logins recentes, normalmente uns 20. Essa visão limitada pode causar problemas, como perder ameaças reais ou disparar alarmes falsos quando não tem nada errado.
Por exemplo, se um funcionário geralmente faz login de Chicago, mas um dia faz login de Marte (brincadeira!), um sistema baseado em regras pode não perceber isso se Marte não estiver nas regras pré-definidas. Além disso, é complicado decidir como "normal" parece quando o comportamento do usuário pode mudar com frequência. Quando um sistema é feito pra procurar padrões específicos, ele pode deixar passar as coisas estranhas e malucas que podem acontecer, como fazer login de lugares inesperados ou em horários estranhos.
Chegada dos Autoencoders
Autoencoders são ferramentas de IA que aprendem com a atividade do usuário e ajudam a criar uma imagem mais clara do que é um comportamento normal. Eles analisam informações de logins passados e conseguem perceber quando algo não se encaixa. O processo envolve simplificar os dados do log pra que o autoencoder consiga ver o que é comportamento típico e o que não é.
Pra tirar o máximo proveito de um autoencoder, precisamos limpar os dados dos logs, eliminando qualquer ruído que possa confundir. É tipo um detetive que precisa fechar a janela pra ouvir melhor as pistas em uma sala barulhenta.
Coletando os Dados Certos
Pra perceber comportamentos incomuns, usamos vários pontos de dados dos logs da Okta, como quando os usuários fazem login, de onde estão logando e quais apps estão tentando acessar. Ao olhar pra padrões nesses dados ao longo do tempo, o autoencoder pode aprender o que é comum pra cada usuário.
Pensa em um usuário que geralmente faz login de casa durante o horário de trabalho. Se de repente ele tenta fazer login às 3 da manhã de um café do outro lado do país, isso deve chamar atenção. Um autoencoder pode ajudar a destacar essas esquisitices analisando os dados e determinando como é o "normal".
Preparando os Dados
Antes de passar os dados pro autoencoder, precisamos prepará-los. Isso envolve alguns passos:
-
Selecionando Eventos Relevantes: Como tem um monte de eventos diferentes nos logs da Okta, focamos nos que mais importam – principalmente os logins dos usuários.
-
Agrupando Localizações: Às vezes, as localizações dos usuários podem ser bem diferentes. A gente simplifica isso usando geohashing, que agrupa áreas em caixas maiores. Em vez de se preocupar com as coordenadas exatas, focamos na área geral. Isso facilita bastante.
-
Categorizando Apps: A gente olha pras aplicações que os usuários acessam e as classifica. Se um usuário de repente começa a acessar um app diferente que nunca usou antes, isso pode ser sinal de problema.
Construindo o Autoencoder
O autoencoder funciona com duas partes principais: um encoder e um decoder. O encoder pega os dados limpos e os comprime enquanto o decoder tenta recriar os dados originais. Enquanto a gente espera uma boa reconstrução, qualquer diferença significativa pode indicar que algo estranho está rolando.
Aqui vai uma analogia divertida: imagina que você tá tentando colocar todas as suas roupas numa mala. Você pode precisar amassar, dobrar e enrolar as coisas. O autoencoder faz algo parecido; ele trabalha pra simplificar os dados enquanto mantém as partes importantes intactas.
Treinando o Modelo
Uma vez que o autoencoder tá pronto, a gente treina ele com dados dos usuários. A gente roda o modelo várias vezes, mostrando diferentes comportamentos de login e permitindo que ele aprenda os padrões. Durante esse treinamento, dá pra dar uma olhada em como ele tá indo, tipo um professor corrigindo a prova de um aluno.
-
Amostragem: A gente coleta dados de vários usuários amostrando o histórico de logins deles. Isso significa que não estamos olhando todos os dados de uma vez, mas sim pegando um pedacinho pra entender o comportamento geral.
-
Injetando Anomalias: A gente adiciona alguns logins estranhos falsos nos dados de validação pra ver como o modelo consegue identificá-los. Por exemplo, se um usuário faz login de dois locais completamente diferentes em um curto espaço de tempo, é provável que seja algo suspeito.
E Depois do Treinamento?
Depois do treinamento, a gente coloca novos dados de usuários pra ver o que o autoencoder diz. Ele examina os logs e calcula uma pontuação usando o que aprendeu. Se a pontuação estiver acima de um certo limite, a gente sinaliza como uma anomalia. Se estiver muito perto do normal, consideramos como um comportamento típico.
Avaliando Resultados
Uma vez que o modelo marcou potenciais anomalias, a gente mede o desempenho usando algumas métricas. Por exemplo, calculamos quantas das anomalias sinalizadas eram realmente ameaças verdadeiras versus comportamentos erroneamente identificados. Isso dá uma imagem mais clara da precisão do modelo.
-
Verdadeiros Positivos: Essas são as ameaças reais que o autoencoder pegou.
-
Falsos Positivos: Essas são as vezes que ele disparou o alarme quando não tinha nada errado.
O objetivo é ter uma pontuação alta, significando que o modelo identifica corretamente a maioria das ameaças sem ficar alarmando à toa.
O Poder das Anomalias na Localização
Nos testes, ficou claro que o autoencoder era particularmente bom em detectar anomalias de localização. Se alguém faz login de um lugar que é muito longe e rápido demais pra eles se deslocarem, isso é sinal de suspeita. Isso é importante porque ajuda a identificar possíveis roubos de credenciais, onde alguém tá se passando pelo usuário legítimo.
Mas, o mesmo sucesso não foi observado em todas as características, como horários ou dias da semana. Acabou que ajustar a forma como olhamos essas características pode melhorar nossas chances de detectar problemas.
Próximos Passos
Os próximos passos são aperfeiçoar os métodos existentes. Por exemplo, a gente quer incluir mais características, como o tipo de dispositivo que tá sendo usado ou o sistema operacional. Também é importante escalar esse modelo pra funcionar com mais usuários e monitorar como ele se sai em tempo real. Se um usuário sempre faz login em uma certa hora e de repente muda essa hora, isso é um ponto que vale a pena investigar mais.
Conclusão
Usar um autoencoder pra monitorar o comportamento do usuário nos logs da Okta pode aumentar bastante a segurança. Esse método permite que as empresas capturem atividades suspeitas que outros sistemas baseados em regras podem deixar passar. Embora tenha mostrado uma boa capacidade de detectar locais estranhos, ainda há espaço pra melhorar com outras características.
No final das contas, o objetivo é manter os usuários seguros e protegidos enquanto torna a experiência de login o mais tranquila possível. Com esses avanços em IA e aprendizado de máquina, estamos elevando nosso nível no campo da cibersegurança.
Então, lembre-se: enquanto pode ser divertido imaginar fazer login de Marte, é muito mais legal saber que podemos pegar esse tipo de comportamento estranho aqui no nosso planeta.
Título: Anomaly Detection in OKTA Logs using Autoencoders
Resumo: Okta logs are used today to detect cybersecurity events using various rule-based models with restricted look back periods. These functions have limitations, such as a limited retrospective analysis, a predefined rule set, and susceptibility to generating false positives. To address this, we adopt unsupervised techniques, specifically employing autoencoders. To properly use an autoencoder, we need to transform and simplify the complexity of the log data we receive from our users. This transformed and filtered data is then fed into the autoencoder, and the output is evaluated.
Autores: Jericho Cain, Hayden Beadles, Karthik Venkatesan
Última atualização: 2024-11-11 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2411.07314
Fonte PDF: https://arxiv.org/pdf/2411.07314
Licença: https://creativecommons.org/licenses/by-nc-sa/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.