Detecção de Ameaças de Segurança
Visao Geral
O Floopy monitora todo o trafego que passa pelo gateway em tempo real e detecta automaticamente padroes de uso suspeitos. Quando uma ameaca e identificada, o sistema cria um alerta com severidade classificada e registra os detalhes para investigacao.
A deteccao de ameacas opera em duas camadas — contadores rapidos para resposta imediata e consultas analiticas profundas para analise historica. Isso permite que o gateway identifique tanto ataques repentinos quanto anomalias sutis que se desenvolvem ao longo do tempo. A deteccao roda de forma assincrona — sem adicionar latencia ao caminho principal.
Arquitetura
sequenceDiagram
participant Client
participant Gateway
participant Counters
participant Analytics
participant Alerts
Client->>Gateway: API Request
Gateway->>Client: Response
Gateway--)Counters: Increment counters (async)
Counters-->>Gateway: Check thresholds
alt Threshold exceeded
Gateway--)Analytics: Deep evaluation query
Analytics-->>Gateway: Threat results
Gateway--)Alerts: Insert security alert
endA arquitetura de alto nivel mostra como os componentes interagem:
graph LR
A[Request Pipeline] -->|post-dispatch| B[Threat Monitor]
B -->|increment| C[Counters]
B -->|check thresholds| C
C -->|exceeded| D[Distributed Lock]
D -->|acquired| E[Threat Detectors]
E -->|query| F[Analytics Engine]
E -->|persist| G[Alert Storage]
G --> H[Dashboard]Tipos de Ameaca
O sistema executa seis detectores independentes em paralelo. Cada detector analisa uma janela temporal diferente com logica de comparacao especifica.
Volume Spike
Detecta picos anormais no volume de requisicoes por chave de API. Compara o volume dos ultimos 5 minutos com a media dos ultimos 7 dias.
- Janela: 5 minutos vs media de 7 dias
- Limiar: Contagem atual acima de 3x media e acima de 10 requisicoes
- Granularidade: Por chave de API
Brute Force
Identifica chaves de API com taxa de erro anormalmente alta, indicando possivel tentativa de forca bruta ou uso indevido.
- Janela: 5 minutos
- Limiar: Taxa de erro acima de 50% e acima de 10 requisicoes totais
- Granularidade: Por chave de API
Geo Anomaly
Detecta requisicoes originadas de paises nunca vistos anteriormente para uma chave de API, comparando a ultima hora com o historico de 30 dias. Requer banco de dados GeoIP (MaxMind GeoLite2).
- Janela: 1 hora vs historico de 30 dias
- Limiar: Pais inedito para a chave
- Granularidade: Por chave de API + pais
Cost Anomaly
Identifica picos de custo anormais comparando o custo da ultima hora com a media horaria dos ultimos 7 dias.
- Janela: 1 hora vs media de 7 dias
- Limiar: Custo atual acima de 5x media e acima de $1.00
- Granularidade: Por organizacao
Firewall Threat
Detecta volumes elevados de requisicoes bloqueadas pelo LLM Firewall, indicando possivel ataque coordenado.
- Janela: 30 minutos
- Limiar: 10+ requisicoes bloqueadas
- Granularidade: Por organizacao
Model Switching
Identifica troca rapida entre modelos por uma unica chave de API, o que pode indicar exploracao automatizada ou abuso.
- Janela: 10 minutos
- Limiar: 5+ modelos distintos
- Granularidade: Por chave de API
Camadas de Deteccao
Hot Detection
A primeira camada usa contadores para deteccao rapida com overhead sub-milissegundo. Apos cada requisicao, o gateway incrementa contadores atomicos e verifica se os limiares foram ultrapassados.
- Contador de requisicoes — incrementado a cada requisicao
- Contador de erros — incrementado quando o status e de erro
- Conjunto de paises — pais de origem adicionado ao conjunto por chave
Quando qualquer limiar e ultrapassado, o gateway adquire um lock distribuido e inicia a avaliacao profunda.
Esta camada atua como um filtro barato — a grande maioria das requisicoes incrementa um contador e segue em frente sem acionar trabalho adicional.
Deep Evaluation
A segunda camada executa consultas detalhadas para analisar padroes historicos. Os seis detectores rodam em paralelo e produzem resultados com severidade classificada.
- Baselines historicos: Consultas buscam medias de 7 dias, conjuntos de paises de 30 dias e agregacoes de custo por hora.
- Execucao paralela: Todos os 6 detectores rodam concorrentemente.
- Protecao por lock: Um lock distribuido impede que multiplas instancias do gateway executem avaliacoes duplicadas para a mesma organizacao simultaneamente.
- Deduplicacao: Antes de inserir um alerta, o sistema verifica alertas abertos existentes do mesmo tipo para evitar notificacoes duplicadas.
Ciclo de Vida do Alerta
Cada alerta de seguranca segue um ciclo de vida com estados definidos:
stateDiagram-v2
[*] --> open: Threat detected
open --> acknowledged: User reviews
acknowledged --> resolved: Issue fixed
acknowledged --> dismissed: False positive
open --> resolved: Auto-resolved
open --> dismissed: User dismisses
resolved --> [*]
dismissed --> [*]- Open: Alerta criado automaticamente quando uma ameaca e detectada.
- Acknowledged: O usuario revisou o alerta e esta investigando.
- Resolved: O problema foi corrigido ou mitigado com uma acao concreta.
- Dismissed: O alerta foi classificado como falso positivo.
Classificacao de Severidade
A severidade e calculada automaticamente com base na razao entre o valor observado e o limiar esperado:
| Razao | Severidade |
|---|---|
| Acima de 10x | Critical |
| Acima de 5x | High |
| Acima de 2x | Medium |
| Ate 2x | Low |
Por exemplo, se a media de requisicoes em 5 minutos e 100 e o volume atual e 1200, a razao e 12x, resultando em severidade critical.
A excecao e o detector geo anomaly, que sempre retorna severidade high, e o model switching, que sempre retorna severidade medium.
Configuracao
O sistema de deteccao de ameacas e configurado via variaveis de ambiente no gateway.
| Configuracao | Descricao | Padrao |
|---|---|---|
| Chave de API de Seguranca | Autentica chamadas agendadas de avaliacao. Necessaria para producao. | — |
| Caminho do Banco GeoIP | Caminho para o arquivo MaxMind GeoLite2-Country.mmdb. Necessario para deteccao geo. | — |
| Limiar de Volume | Requisicoes por janela de 5 min para acionar avaliacao. | 500 |
| Limiar de Erros | Erros por janela de 5 min para acionar avaliacao. | 50 |
| Limiar Geografico | Numero de paises distintos por chave para acionar avaliacao. | 3 |
Sem o banco GeoIP configurado, a deteccao de anomalias geograficas e silenciosamente desabilitada. Todos os outros detectores continuam funcionando normalmente.
Configuracao do GeoIP
A deteccao de anomalias geograficas requer o banco de dados MaxMind GeoLite2-Country.
- Crie uma conta gratuita em MaxMind
- Baixe o arquivo GeoLite2-Country.mmdb
- Coloque o arquivo em um caminho acessivel pelo gateway
- Configure a variavel de ambiente com o caminho absoluto do arquivo
O banco de dados deve ser atualizado periodicamente (MaxMind lanca atualizacoes semanais). Se o arquivo estiver ausente ou ilegivel na inicializacao, o gateway registra um aviso e desabilita a deteccao de anomalias geograficas.
Acoes no Dashboard
O painel de seguranca no dashboard permite gerenciar alertas e tomar acoes de mitigacao:
- Acknowledge: Marca o alerta como em investigacao. Impede que apareca como nova notificacao para outros membros da equipe.
- Dismiss: Marca o alerta como falso positivo. O alerta e arquivado.
- Revogar chave: Revoga imediatamente a chave de API afetada. Todas as requisicoes subsequentes usando essa chave sao rejeitadas.
- Habilitar rate limit: Aplica um limite de taxa na chave ou organizacao afetada. Isso reduz o trafego suspeito sem bloquea-lo completamente.
Todas as acoes sao registradas com o usuario e timestamp para fins de auditoria.