Auditoria¶
Para: Adm — Conferido em 2026-10-18.
A tela Auditoria mostra a trilha de tudo o que as pessoas fizeram na operação: quem, quando, qual ação, em qual objeto e com que resultado. A trilha só recebe registros novos, nunca é editada, e cada registro leva o hash do anterior. Você pode verificar a integridade da cadeia e baixar um arquivo assinado para auditoria externa.
O que é¶
A trilha é por operação e só de acréscimo (append-only): o banco não aceita alterar nem apagar registros. Cada registro guarda o hash SHA-256 do registro anterior, formando uma cadeia; qualquer alteração, remoção ou inserção no meio quebra a cadeia e é detectada pela verificação.
O que entra: ações das pessoas no painel (decisões de revisão, revelação de dados pessoais, criação e revogação de chaves, pedidos e votos, mudanças de regra, importações de reconciliação, exportações) e as recusas (refused:step_up_required, por exemplo). Nunca entram dados pessoais, segredos nem o texto livre dos motivos.
Quem vê o quê:
| Papel | O que a tela mostra |
|---|---|
| Administrador do tenant, Financeiro, Auditor | A trilha inteira da operação, a verificação de integridade e a exportação assinada. |
| Revisor | Só as suas próprias ações, com o aviso "Você vê apenas as suas próprias ações." |
O recorte é feito no servidor, não na tela.
Quando usar¶
- Para saber quem decidiu um saque, revelou um dado ou revogou uma chave.
- Para atender a uma auditoria interna ou externa com um arquivo assinado.
- Para provar que a trilha não foi alterada.
- Para achar o
trace_idde uma operação e informar ao suporte.
Como fazer¶
Buscar registros¶
- Abra Auditoria no menu Administração.
- Use os filtros, todos opcionais e de até 128 caracteres:
- Quem: o identificador (UUID) do usuário. Não aparece para o Revisor.
- Ação: começa com (por exemplo
key.). - Objeto: contém.
- Resultado: começa com (por exemplo
refused). - De e Até: data e hora no horário de Brasília.
- Clique em Filtrar.
A tabela lista, da mais nova para a mais antiga, 100 registros por página (use Mais antigos para continuar): # (posição na cadeia), quando, quem, ação, objeto, resultado e trace_id. O resultado vem com selo verde para ok e allow e vermelho para os demais, sempre acompanhado do texto.
Ações que você vai encontrar com frequência:
| Ação | O que registra |
|---|---|
review.vote |
Voto em saque ou depósito em revisão. |
pii.reveal |
Revelação de dados pessoais. |
key.reveal, key.revoke |
Revelação do segredo e revogação de chave. |
ip.remove |
Remoção de IP da lista. |
request.propose, request.vote, request.cancel, request.execute |
Pedidos com aprovação: proposta, voto, cancelamento e vigência. |
webhooks.secret.rotate, webhooks.dlq.redeliver, webhooks.dlq.resolve |
Rotação de segredo e tratamento da DLQ. |
test_charge.create, test_charge.simulate_pay |
Cobrança de teste. |
rules.emergency, rules.list.add, rules.vip.revoke |
Emergência, lista e VIP. |
recon.import, recon.export, recon.threshold |
Reconciliação e limiar de caixa. |
report.export, report.export_pii.download |
Exportação de relatórios. |
audit.search, audit.verify, audit.export |
Uso da própria auditoria. |
A lista não é exaustiva. O resultado traz o desfecho (ok, ok:approve, failed, refused:<motivo>).
Verificar a integridade¶
Em Integridade e exportação (só para quem vê a trilha inteira), clique em Verificar integridade da cadeia. O Dracma recalcula a cadeia inteira da operação, do primeiro registro à ponta, e responde:
- "Cadeia íntegra: N registros conferidos, ponta #P." Está tudo certo.
- "Cadeia QUEBRADA no registro #n (motivo); N registros conferidos antes da quebra. Acione a segurança." Algo foi alterado.
Motivos da quebra:
| Motivo na tela | Significa |
|---|---|
| registro faltando na sequência | Há um buraco na numeração. |
| o elo com o registro anterior não confere | Um registro aponta para um anterior diferente. |
| o conteúdo do registro foi alterado | O hash do registro não bate com o conteúdo. |
| a ponta da cadeia não confere com o registrado | O último registro difere do que o Dracma guardou. |
| registros finais foram removidos | A cadeia está mais curta que o registrado. |
Uma cadeia quebrada é um incidente de segurança: guarde a tela e o trace_id e acione o suporte imediatamente.
Exportar com assinatura¶
- Em Exportar auditoria assinada, preencha Exportar de e Exportar até (horário de Brasília; ambos opcionais).
- Clique em Exportar auditoria assinada. É preciso confirmação recente. Quem exporta: Administrador, Financeiro e Auditor.
- O navegador baixa um arquivo
.jsone a tela confirma "Arquivo gerado: …".
O arquivo é um envelope com o conteúdo (payload) e a assinatura Ed25519 (signature). O conteúdo traz o trecho contínuo da cadeia no período, com os hashes de cada registro, e a ponta da cadeia no momento da exportação. Isso permite que uma auditoria externa verifique o arquivo sem acesso ao seu sistema: confira a assinatura com a chave pública e recalcule os hashes encadeados.
A chave pública de verificação aparece abaixo, com o identificador. Use Baixar chave pública (PEM) ou Copiar chave pública. Para conferir um arquivo, verifique a assinatura Ed25519 do campo signature sobre o payload com essa chave.
Limites:
- até 10 000 registros por exportação; para períodos maiores, estreite o intervalo;
- a exportação também é registrada na trilha (
audit.export): sem registro, não há arquivo.
Não disponível
Em ambientes sem chave de assinatura configurada, a tela mostra "Exportação assinada indisponível neste ambiente: a chave de assinatura não está configurada." e "Chave pública indisponível neste ambiente." A busca e a verificação continuam funcionando.
Exemplos¶
Quem revogou a chave key_live_… ontem à tarde? Filtre por Ação key.revoke, com De 17/10/2026 12:00 e Até 17/10/2026 18:00 (horário de Brasília). A linha mostra o #, o horário, o identificador de quem revogou, o objeto (o key_id), o resultado ok e o trace_id.
Linha de exemplo, com dados fictícios:
| # | Quando | Quem | Ação | Objeto | Resultado | trace_id |
|---|---|---|---|---|---|---|
| 1842 | 17/10/2026 15:07 | 3f9a…c21 |
key.revoke |
key_live_9d1c… |
ok |
0a1b2c3d4e5f60718293a4b5c6d7e8f9 |
Para provar a uma auditoria que ninguém mexeu nos registros do mês: clique em Verificar integridade da cadeia, exporte o mês com Exportar auditoria assinada e entregue o arquivo e a chave pública.
Erros e casos de borda¶
| Mensagem | Causa | O que fazer |
|---|---|---|
| "O filtro Quem deve ser o identificador (UUID) do usuário." | Quem não é um UUID. |
Cole o identificador. |
| "Data inválida: use dia e hora existentes, no horário de Brasília." | Data inexistente. | Corrija. |
| "Cada filtro aceita até 128 caracteres." | Filtro longo. | Encurte. |
| "Página inválida: recomece a busca." | Cursor de paginação inválido. | Filtre de novo. |
| "O período está invertido: "De" deve ser anterior a "Até"." | Datas trocadas. | Corrija. |
| "Período grande demais: a exportação aceita até 10 000 registros. Estreite o período (De/Até)." | Exportação acima do limite. | Estreite o período. |
| "Sem permissão para exportar a auditoria." | Seu papel não exporta. | Peça a um Administrador, Financeiro ou Auditor. |
| "Sem permissão para verificar a integridade da trilha." | Seu papel vê só as próprias ações. | Peça a quem vê a trilha inteira. |
| "Não foi possível verificar a cadeia agora. Tente de novo; se persistir, acione o suporte com o trace_id." | Falha ao verificar. | Repita; se persistir, fale com o suporte. |
| "Confirme com o fator forte para concluir." | step_up_required ao exportar. |
Use Confirmar identidade agora. |
Casos de borda:
- Revisor não vê as ações dos outros. É o comportamento esperado; peça a um Administrador, Financeiro ou Auditor.
- Cadeia por operação. Cada operação tem a própria cadeia; a verificação e a exportação valem para a operação escolhida.
- Ações da equipe do Dracma. O uso de acesso de emergência por essa equipe gera o alerta "Break-glass do staff", configurável em Alertas e e-mails; o alerta não tem fonte de dados ativa hoje (veja a página).