Guia de Implementação da SES GO - Segurança
0.1.0 - draft Brazil flag

Guia de Implementação da SES GO - Segurança - Downloaded Version 0.1.0 See the Directory of published versions

Registrar auditoria

A garantia da rastreabilidade, transparência e conformidade, especialmente em operações envolvendo assinaturas digitais e validação de certificados, exige o registro de eventos de auditoria. Abaixo seguem as especificidades para tal registro no escopo de atuação do presente guia.

Objetivo

Definir o processo de registro de eventos relevantes para efeito de auditoria.

Atores

Outros atores podem usufruir do presente caso de uso, contudo, praticamente todos os casos de uso pertinentes à assinatura digital fazem uso do registro de auditoria.

Alguns dos eventos de auditoria

  • Falha de tentativa de autenticação.
  • Falha de autorização.
  • Criação de assinatura digital.
  • Validação de assinatura digital.
  • Checagem de revogação de certificados (CRL/OCSP).
  • Acesso a registros sensíveis ou dados assinados.
  • Alterações em configurações de segurança.
  • Falhas ou tentativas de acesso não autorizado.
  • Falha em carga de certificados confiáveis
  • Atualização de certificados da ICP-Brasil

Fluxo principal

  1. Gatilho: ocorre um evento relevante, por exemplo, algum daqueles citados na seção anterior, dentre outros.

  2. Registro: o evento é registrado é uma instância do recurso AuditEvent indicando:

    • Tipo (type) e subtipo (subtype) do evento
    • Ação executada (action)
    • Data e hora (recorded)
    • Referência para o componente responsável, ou seja, instância de Device (source.observer.resolve().is(Device))
    • O tipo da fonte (source.type) deve ser 4 (Application Server)
    • Resultado (outcome)
  3. Armazenamento: o registro é armazenado em repositório seguro, com proteção contra alterações não autorizadas.

  4. Consulta: administradores/auditores podem consultar registros de auditoria conforme permissões e políticas definidas.

  5. Retenção: os registros são mantidos pelo período exigido por normas ou políticas internas.

Fluxos alternativos

  • Falha no registro de auditoria: deve resultar em falha da operação de assinatura digital.

6. Requisitos e Considerações

  • Integridade: Os registros de auditoria devem ser imutáveis e protegidos contra alterações.
  • Confidencialidade: O acesso aos registros deve ser restrito e monitorado.
  • Retenção: Definir período mínimo de retenção conforme legislação aplicável.
  • Evidências: Armazenar evidências de checagem de revogação (CRL/OCSP) para validação futura (LTV).
  • Conformidade: Atender requisitos de normas como ICP-Brasil, LGPD, eIDAS, etc.

Exemplos de registro de auditoria (AuditEvent)

Criação de assinatura digital

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
    "code": "sign",
    "display": "Signature"
  },
  "action": "C",
  "recorded": "2024-06-07T14:23:00Z",
  "outcome": "0",
  "outcomeDesc": "SUCESSO",
  "purposeOfEvent": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ],
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-123"
        }
      }
    }
  ],
  "source": {
    "observer": {
      "identifier": {
        "system": "urn:oid:1.2.3.4.5.6.7.8.9",
        "value": "estabelecimento-123"
      }
    }
  },
  "entity": [
    {
      "type": {
        "code": "document"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:abcd-1234"
        }
      }
    }
  ],
  "reason": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ]
}

Validação de assinatura digital

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
    "code": "verify",
    "display": "Verification"
  },
  "action": "E",
  "recorded": "2024-06-07T15:00:00Z",
  "outcome": "0",
  "outcomeDesc": "SUCESSO",
  "purposeOfEvent": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ],
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-456"
        }
      }
    }
  ],
  "source": {
    "observer": {
      "identifier": {
        "system": "urn:oid:1.2.3.4.5.6.7.8.9",
        "value": "estabelecimento-456"
      }
    }
  },
  "entity": [
    {
      "type": {
        "code": "document"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:abcd-1234"
        }
      }
    }
  ],
  "identifier": {
    "system": "urn:ses-go",
    "value": "id-logico-5678"
  },
  "reason": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ]
}

Checagem de revogação de certificados (CRL/OCSP)

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
    "code": "verify",
    "display": "Verification"
  },
  "action": "E",
  "recorded": "2024-06-07T15:10:00Z",
  "outcome": "0",
  "outcomeDesc": "SUCESSO",
  "purposeOfEvent": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ],
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-456"
        }
      }
    }
  ],
  "entity": [
    {
      "type": {
        "code": "certificate"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:cert-9999"
        }
      }
    }
  ],
  "reason": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse",
          "code": "HLEGAL"
        }
      ]
    }
  ]
}

Acesso a registros sensíveis ou dados assinados

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
    "code": "rest",
    "display": "RESTful Operation"
  },
  "action": "R",
  "recorded": "2024-06-07T15:20:00Z",
  "outcome": "0",
  "outcomeDesc": "SUCESSO",
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-789"
        }
      }
    }
  ],
  "entity": [
    {
      "type": {
        "code": "document"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:abcd-1234"
        }
      }
    }
  ]
}

Alterações em configurações de segurança

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
    "code": "security",
    "display": "Security Alert"
  },
  "action": "U",
  "recorded": "2024-06-07T15:30:00Z",
  "outcome": "0",
  "outcomeDesc": "SUCESSO",
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-999"
        }
      }
    }
  ],
  "entity": [
    {
      "type": {
        "code": "config"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:config-0001"
        }
      }
    }
  ]
}

Falhas ou tentativas de acesso não autorizado

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://terminology.hl7.org/CodeSystem/audit-event-type",
    "code": "rest",
    "display": "RESTful Operation"
  },
  "action": "E",
  "recorded": "2024-06-07T15:40:00Z",
  "outcome": "8",
  "outcomeDesc": "FALHA",
  "agent": [
    {
      "who": {
        "identifier": {
          "system": "urn:oid:1.2.3.4.5.6.7.8.9",
          "value": "estabelecimento-789"
        }
      }
    }
  ],
  "entity": [
    {
      "type": {
        "code": "document"
      },
      "what": {
        "identifier": {
          "system": "urn:uuid",
          "value": "urn:uuid:abcd-1234"
        }
      }
    }
  ]
}

Estrutura técnica para AuditEvent

Códigos de auditoria específicos

Para operações de assinatura digital, utilize os seguintes códigos nos elementos AuditEvent.type e AuditEvent.subtype:

Tipos de operação (AuditEvent.type):

  • "create": Para criação de assinaturas digitais
  • "read": Para validação/verificação de assinaturas digitais
  • "update": Para operações de re-assinatura ou atualização de evidências LTV

Subtipos (AuditEvent.subtype):

  • "digital-signature-creation": Criação de assinatura digital
  • "digital-signature-validation": Validação de assinatura digital
  • "certificate-revocation-check": Verificação de revogação de certificados
  • "ltv-evidence-collection": Coleta de evidências para Long Term Validation

Requisitos de segurança para auditoria

Integridade dos registros:

  • Registros de auditoria devem ser protegidos contra alteração
  • Considere assinatura digital dos próprios registros de auditoria
  • Use armazenamento append-only quando possível

Confidencialidade:

  • Informações sensíveis (como PINs) nunca devem ser registradas
  • Considere pseudonimização de dados pessoais quando apropriado
  • Proteja acesso aos registros conforme políticas de privacidade

Disponibilidade:

  • Implemente redundância adequada para os registros
  • Estabeleça procedimentos de backup e recuperação
  • Monitore a capacidade de armazenamento dos logs

Retenção:

  • Mantenha registros pelo período exigido por regulamentações
  • Para contexto de saúde, recomenda-se mínimo de 7 anos
  • Implemente procedimentos seguros de descarte após o período de retenção