Pular para o conteúdo
Skillpedia
Agentes35 mil · #6164

performing-user-behavior-analytics

Faz seu agente analisar o comportamento de usuários e entidades para detectar atividades anômalas e ameaças internas.

O que ela faz

Esta ferramenta ajuda a encontrar atividades incomuns de usuários em sistemas de computador. Ela procura por padrões de acesso estranhos, como alguém acessando de dois lugares muito distantes em pouco tempo, ou usando contas com privilégios de forma diferente do normal.

Quando usar

  • ✓Quando você suspeita que uma conta de usuário foi invadida.
  • ✓Para monitorar ameaças internas que não seguem regras fixas.
  • ✓Para verificar se um usuário está agindo de forma suspeita em diferentes locais geográficos.

Exemplo do que pedir para a IA

“Verifique se há atividades de usuário incomuns nos últimos 7 dias.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-user-behavior-analytics/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-user-behavior-analytics/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta compara o comportamento atual de um usuário com o comportamento normal dele registrado em logs. Se o comportamento atual for muito diferente do normal, ela gera um alerta.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-user-behavior-analytics

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-user-behavior-analytics/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Análise de Comportamento do Usuário

Quando Usar

Use esta habilidade quando:

  • Equipes de SOC precisarem detectar contas comprometidas através de padrões de autenticação anormais
  • Programas de ameaças internas exigirem monitoramento comportamental além da detecção baseada em regras
  • Viagens impossíveis ou anomalias geográficas indicarem comprometimento de credenciais
  • O monitoramento de contas privilegiadas exigir detecção de desvio da linha de base

Não use como base única para ações disciplinares — descobertas de UEBA são indicadores que exigem investigação, não prova de intenção maliciosa.

Pré-requisitos

  • SIEM com mais de 30 dias de histórico de logs de autenticação e acesso para criação de linha de base
  • Logs de autenticação de VPN, O365 e Active Directory normalizados para CIM
  • Banco de dados GeoIP (MaxMind GeoLite2) para detecção de anomalias baseada em localização
  • Dados de enriquecimento de identidade (departamento, cargo, gerente, horários de trabalho típicos)
  • Splunk Enterprise Security com o módulo UBA ou capacidade UEBA equivalente

Fluxo de Trabalho

Etapa 1: Construir Linhas de Base de Autenticação do Usuário

Crie linhas de base comportamentais a partir de dados históricos:

index=auth sourcetype IN ("o365:management:activity", "vpn_logs", "WinEventLog:Security")
earliest=-30d latest=-1d
| stats dc(src_ip) AS unique_ips,
        dc(src_country) AS unique_countries,
        dc(app) AS unique_apps,
        count AS total_logins,
        earliest(_time) AS first_login,
        latest(_time) AS last_login,
        values(src_country) AS countries,
        avg(eval(strftime(_time, "%H"))) AS avg_login_hour,
        stdev(eval(strftime(_time, "%H"))) AS stdev_login_hour
  by user
| eval avg_daily_logins = round(total_logins / 30, 1)
| eval login_hour_range = round(avg_login_hour, 0)." +/- ".round(stdev_login_hour, 1)." hrs"
| table user, unique_ips, unique_countries, unique_apps, avg_daily_logins,
        login_hour_range, countries

Etapa 2: Detectar Viagens Impossíveis

Identifique logins de locais geograficamente distantes em períodos de tempo impossíveis:

index=auth sourcetype IN ("o365:management:activity", "vpn_logs")
action=success earliest=-24h
| iplocation src_ip
| sort user, _time
| streamstats current=f last(lat) AS prev_lat, last(lon) AS prev_lon,
              last(_time) AS prev_time, last(City) AS prev_city,
              last(Country) AS prev_country, last(src_ip) AS prev_ip
  by user
| where isnotnull(prev_lat)
| eval distance_km = round(
    6371 * acos(
      cos(pi()/180 * lat) * cos(pi()/180 * prev_lat) *
      cos(pi()/180 * (lon - prev_lon)) +
      sin(pi()/180 * lat) * sin(pi()/180 * prev_lat)
    ), 0)
| eval time_diff_hours = round((_time - prev_time) / 3600, 2)
| eval speed_kmh = if(time_diff_hours > 0, round(distance_km / time_diff_hours, 0), 0)
| where speed_kmh > 900 AND distance_km > 500
| eval alert = "IMPOSSIBLE TRAVEL: ".prev_city.", ".prev_country." -> ".City.", ".Country
| table _time, user, prev_city, prev_country, City, Country, distance_km,
        time_diff_hours, speed_kmh, alert
| sort - speed_kmh

Etapa 3: Detectar Horários de Login Anômalos

Identifique logins fora do horário de trabalho normal de um usuário:

index=auth action=success earliest=-7d
| eval hour = strftime(_time, "%H")
| eval day_of_week = strftime(_time, "%A")
| eval is_weekend = if(day_of_week IN ("Saturday", "Sunday"), 1, 0)
| eval is_off_hours = if(hour < 6 OR hour > 22, 1, 0)
| join user type=left [
    search index=auth action=success earliest=-60d latest=-7d
    | eval hour = strftime(_time, "%H")
    | stats avg(hour) AS baseline_avg_hour, stdev(hour) AS baseline_stdev_hour,
            perc95(hour) AS baseline_latest_hour by user
  ]
| where (is_off_hours=1 OR is_weekend=1) AND
        (hour > baseline_latest_hour + 2 OR hour < baseline_avg_hour - baseline_stdev_hour * 2)
| stats count, values(hour) AS login_hours, values(day_of_week) AS login_days,
        values(src_ip) AS source_ips
  by user, baseline_avg_hour, baseline_latest_hour
| where count > 0
| sort - count

Etapa 4: Detectar Padrões de Acesso a Dados Incomuns

Monitore volumes anormais de acesso a arquivos ou bancos de dados:

index=file_access OR index=sharepoint earliest=-24h
| stats sum(bytes) AS total_bytes, dc(file_path) AS unique_files,
        count AS access_count by user
| join user type=left [
    search index=file_access OR index=sharepoint earliest=-30d latest=-1d
    | stats avg(eval(count)) AS baseline_avg_files,
            stdev(eval(count)) AS baseline_stdev_files,
            avg(eval(sum(bytes))) AS baseline_avg_bytes
      by user
  ]

…
Perguntas frequentes

O que é 'viagem impossível'?

É quando um usuário parece ter acessado sistemas de dois locais geograficamente muito distantes em um período de tempo que seria impossível viajar entre eles.

Posso usar isso para demitir alguém?

Não. Os alertas são apenas um indicativo de que algo incomum aconteceu e precisa ser investigado. Não são prova de má conduta.

Precisa de alguma configuração especial?

Sim, precisa de acesso a logs de autenticação e acesso de pelo menos 30 dias, além de informações sobre a localização geográfica dos acessos e dados sobre os usuários (como cargo e horário de trabalho).

Detalhes

Descrição original do autor

Performs User and Entity Behavior Analytics (UEBA) to detect anomalous user activities including impossible travel, unusual access patterns, privilege abuse, and insider threats using SIEM-based behavioral baselines and statistical analysis. Use when SOC teams need to identify compromised accounts or insider threats through deviation from established behavioral norms. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6164
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas