Auditoria de Ações
Quem fez o quê, quando e por quê. Trilha de auditoria completa para compliance, segurança e investigação de incidentes.
- Versão
- 1.0
- Atualizado
- junho/2026
- Retenção padrão
- 5 anos
- Status
- ativo
Resumo
A auditoria de ações é o sistema que registra todas as operações significativas realizadas no Romeo. Cada ação de usuário, automação ou sistema gera um registro imutável que pode ser consultado a qualquer momento.
O objetivo é triplo: compliance regulatório (LGPD, Marco Civil), segurança (detectar e investigar incidentes) e transparência(mostrar ao cliente exatamente o que aconteceu com seus dados).
Princípio fundamentalRegistros de auditoria são imutáveis. Uma vez gravados, não podem ser alterados ou excluídos — apenas arquivados após o período de retenção.
Princípios da auditoria
O sistema de auditoria do Romeo segue princípios que garantem a integridade e utilidade dos registros em qualquer cenário de uso.
Os 5 princípios
Toda ação relevante é registrada. Não há operações "invisíveis" no sistema. Se modificou dado, gerou registro.
Registros são append-only. Não existe UPDATE ou DELETE na tabela de auditoria. A integridade é garantida por hash encadeado.
Cada registro identifica quem (usuário/sistema), o quê (ação), quando (timestamp UTC), onde (IP, dispositivo) e por quê (contexto da operação).
Registros são consultáveis em tempo real por usuários autorizados. APIs e dashboard permitem filtros, buscas e exportação.
Logs de auditoria ficam em banco separado do operacional. Mesmo com acesso ao banco principal, não é possível alterar trilhas de auditoria.
Base legal: Art. 37 da LGPD exige que controladores mantenham registro das operações de tratamento de dados pessoais.
Eventos auditados
Nem toda ação gera registro de auditoria. O sistema distingue entre operações de leitura (geralmente não auditadas) e operações de escrita/sensíveis (sempre auditadas).
Categorias de eventos
| Categoria | Exemplos | Criticidade |
|---|---|---|
| Autenticação | Login, logout, falha de senha, 2FA | Alta |
| Autorização | Mudança de papel, concessão de permissão | Alta |
| Dados pessoais | Criação, edição, exclusão de pessoa física | Alta |
| Dados financeiros | Lançamento, estorno, conciliação | Alta |
| Contratos | Criação, assinatura, rescisão, aditivo | Média |
| Imóveis | Cadastro, alteração de status, vinculação | Média |
| Configurações | Alteração de parâmetros do sistema | Média |
| Integrações | Chamadas a APIs externas, webhooks | Baixa |
| Sistema | Jobs agendados, migrações, deploys | Baixa |
Detalhamento por ação
| Ação | Dados capturados | Retenção |
|---|---|---|
| user.login | IP, user-agent, método (senha/SSO/2FA), sucesso/falha | 5 anos |
| user.permission.grant | Usuário alvo, papel concedido, concedente | 5 anos |
| person.create | ID da pessoa, campos preenchidos (sem valores sensíveis) | 5 anos |
| person.update | Campos alterados (before/after), motivo se informado | 5 anos |
| person.delete | Tipo (soft/hard), solicitante, base legal | 10 anos |
| contract.sign | Partes, hash do documento, método de assinatura | 10 anos |
| payment.create | Valor, beneficiário, forma de pagamento | 10 anos |
Dados sensíveisValores de campos sensíveis (CPF, dados bancários) nunca são gravados nos logs. Registramos apenas que o campo foi alterado, não o valor anterior/novo.
Estrutura do registro
Cada evento de auditoria segue uma estrutura padronizada que permite consultas consistentes e correlação entre eventos relacionados.
Schema do registro
| Campo | Tipo | Descrição |
|---|---|---|
| id | UUID | Identificador único do registro |
| timestamp | DateTime (UTC) | Momento exato da ação |
| tenant_id | UUID | Imobiliária onde ocorreu |
| actor_type | Enum | user | system | integration | automation |
| actor_id | UUID | null | ID do usuário (se aplicável) |
| action | String | Código da ação (ex: person.update) |
| resource_type | String | Tipo do recurso afetado |
| resource_id | UUID | ID do recurso afetado |
| metadata | JSONB | Dados adicionais da ação |
| ip_address | String | IP de origem |
| user_agent | String | Navegador/cliente |
| request_id | UUID | Correlação com request HTTP |
| hash | String | Hash SHA-256 do registro + anterior |
Exemplo de registro
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-06-15T14:32:17.123Z",
"tenant_id": "imob-abc123",
"actor_type": "user",
"actor_id": "user-789",
"action": "person.update",
"resource_type": "person",
"resource_id": "person-456",
"metadata": {
"fields_changed": ["phone", "email"],
"reason": "Atualização cadastral solicitada pelo cliente"
},
"ip_address": "189.45.123.67",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64)",
"request_id": "req-xyz789",
"hash": "a1b2c3d4e5f6..."
}Hash encadeado: Cada registro inclui o hash do registro anterior, formando uma cadeia. Qualquer alteração quebra a cadeia e é detectada automaticamente.
Consulta e relatórios
O sistema oferece múltiplas formas de consultar a trilha de auditoria, desde buscas simples até relatórios complexos para compliance.
Filtros disponíveis
| Filtro | Operadores | Exemplo |
|---|---|---|
| Período | entre, após, antes | Últimos 30 dias |
| Ator | igual, contém | Ações do usuário X |
| Ação | igual, prefixo | Todas as ações person.* |
| Recurso | tipo + ID | Histórico do contrato Y |
| IP | igual, range | Acessos de IP suspeito |
| Criticidade | igual | Apenas eventos de alta criticidade |
Relatórios pré-configurados
Todos os logins/logouts, tentativas de acesso, IPs únicos. Identifica padrões suspeitos como múltiplas falhas de senha.
Histórico completo de um titular específico. Usado para atender solicitações de acesso da LGPD (art. 18).
Todas as alterações de papéis e permissões. Essencial para auditorias de segregação de funções.
Todas as operações financeiras: lançamentos, estornos, conciliações. Rastreabilidade completa para auditoria contábil.
ExportaçãoRelatórios podem ser exportados em CSV, JSON ou PDF. Para volumes grandes, a exportação é assíncrona e o arquivo é disponibilizado por link temporário.
Retenção e arquivamento
Registros de auditoria têm períodos de retenção definidos por categoria. Após o período, são arquivados em cold storage — nunca excluídos.
Períodos por categoria
| Categoria | Retenção ativa | Cold storage | Total |
|---|---|---|---|
| Autenticação | 2 anos | 3 anos | 5 anos |
| Dados pessoais | 5 anos | 5 anos | 10 anos |
| Dados financeiros | 5 anos | 5 anos | 10 anos |
| Contratos | Vigência + 5 anos | 5 anos | Variável |
| Configurações | 2 anos | 3 anos | 5 anos |
| Sistema | 1 ano | 2 anos | 3 anos |
Processo de arquivamento
O arquivamento segue um processo automatizado que preserva a integridade e acessibilidade dos dados:
- Job diário identifica registros que atingiram período de retenção ativa
- Registros são compactados e criptografados (AES-256)
- Arquivo é enviado para cold storage (S3 Glacier)
- Índice de busca é atualizado para apontar para cold storage
- Registros originais são marcados como arquivados (não excluídos)
Restauração: Dados em cold storage podem ser restaurados em até 24 horas para consulta. O custo de restauração é repassado se solicitado pelo cliente.
Integração com LGPD
A trilha de auditoria é fundamental para atender diversos direitos dos titulares previstos na LGPD e para demonstrar accountability.
Direitos atendidos
| Direito (Art. 18) | Como a auditoria ajuda |
|---|---|
| Acesso aos dados | Relatório completo de todas as operações sobre o titular |
| Correção | Histórico de alterações com before/after |
| Eliminação | Comprovação de que dados foram excluídos e quando |
| Portabilidade | Rastreio de todos os dados do titular para exportação |
| Informação sobre compartilhamento | Log de todas as integrações que acessaram o dado |
| Revogação de consentimento | Registro do momento e efeito da revogação |
Relatório de impacto (RIPD)
O sistema gera automaticamente dados para o Relatório de Impacto à Proteção de Dados, incluindo:
- Volume de dados tratados por categoria
- Operações realizadas por finalidade
- Acessos por tipo de usuário
- Incidentes de segurança registrados
- Solicitações de titulares atendidas
DPO DashboardO Encarregado (DPO) tem acesso a um dashboard específico com visão consolidada de todas as métricas de compliance e alertas de desvio.