Projetos / AnyAudit
AnyAudit
Demonstrador de pesquisa para evidências de auditoria em software da era da IA
O que um sistema precisa registrar, e como, para que o seu comportamento possa ser auditado depois por alguém que não o construiu?
Visão geral
O AnyAudit extrai do AnyDPP a camada de evidências de auditoria para uma biblioteca reutilizável. Ele propaga um contexto de rastreio pelas requisições, grava eventos de auditoria versionados que armazenam apenas um hash do seu conteúdo e os acrescenta a uma cadeia de hashes SHA-256 que pode ser verificada de ponta a ponta.
Ele usa deliberadamente uma cadeia de hashes, e não uma blockchain: o objetivo é tornar adulterações evidentes dentro de um sistema, não obter consenso entre desconhecidos.
Uma cadeia que revela adulteração
- Evento 1review.acceptedrastreio: 7f3a-19c2hash do conteúdo: f5e10178anterior: 00000000
- Evento 2attribute.updatedrastreio: 7f3a-19c2hash do conteúdo: 64f2c5a3anterior: f5e10178
- Evento 3passport.composedrastreio: 7f3a-19c2hash do conteúdo: e298dad5anterior: 64f2c5a3
- Evento 4credential.issuedrastreio: 7f3a-19c2hash do conteúdo: 77c82a49anterior: e298dad5
Verificar a cadeia: Cadeia íntegra
Altere um evento e a verificação falha a partir daquele ponto.
Descrição em texto do diagrama
Quatro eventos de auditoria em sequência, cada um mostrando o seu identificador de rastreio, o hash do seu conteúdo e o hash da entrada anterior. Quando o segundo evento é alterado, o seu hash deixa de corresponder ao que a terceira entrada registrou, e a verificação aponta a ruptura.
Elementos básicos
Contexto de rastreio
Um identificador propagado por cada requisição, tarefa e serviço envolvidos em uma operação.
Evento de auditoria
Um esquema de evento versionado que armazena um hash do conteúdo, não o conteúdo em si.
Cadeia de hashes
Cada entrada se vincula à anterior, de modo que uma entrada alterada ou removida quebra todos os elos depois dela.
Verificação da cadeia
Uma função que percorre a cadeia e informa onde ela se rompe.
Decorator e middleware
Formas de acrescentar auditoria a código existente sem reescrevê-lo.
O que um auditor recebe
- 1
Um revisor aceita um valor em um fluxo de trabalho de passaporte.
- 2
A requisição carrega um identificador de rastreio pela API e pela tarefa em segundo plano.
- 3
Um evento de auditoria registra quem fez o quê, sob qual versão, com um hash do conteúdo.
- 4
Meses depois, um auditor verifica a cadeia e segue o rastro da entrada à publicação.
Em que se diferencia
AnyAudit ≠ AnyTraceProtótipo de pesquisa · não publicado
O AnyTrace registra a proveniência de coisas do mundo. O AnyAudit registra o comportamento do software.
AnyTraceAnyAudit ≠ AnyVerifyProtótipo de pesquisa · não publicado
O AnyVerify julga se as evidências sustentam uma alegação. O AnyAudit não faz julgamento algum; ele mantém um registro que pode ser conferido.
AnyVerifyAnyAudit ≠ AnyValidProtótipo de pesquisa · não publicado
O AnyValid consulta uma autoridade externa. O AnyAudit não consulta ninguém; ele prova que o seu próprio registro não mudou.
AnyValid
Estado
Implementado como demonstrador de pesquisa, apresentado em anyaudit.eu, com a biblioteca no repositório da AnyLAI.
Limitações
- Evidência de adulteração, não prevenção de adulteração: uma cadeia mostra que algo mudou, não impede a mudança.
- A cadeia não é ancorada fora do sistema que a grava.
- Um registro de auditoria é evidência para uma auditoria, não o resultado de uma auditoria.