5. Conservación e interpretación de bitácoras
Temas del programa: 3.2
Tres condiciones de la evidencia
Section titled “Tres condiciones de la evidencia”REGISTRO → el evento quedó escritoCONSERVACIÓN → el registro sigue existiendo, íntegro y protegido, cuando se necesitaINTERPRETACIÓN → alguien puede leerlo y responder preguntas concretasSi falta cualquiera de las tres, no hay evidencia útil.
Cómo se pierde la evidencia sin que nadie la borre
Section titled “Cómo se pierde la evidencia sin que nadie la borre”| Registro | Cómo se pierde |
|---|---|
| Archivo de bitácora de PostgreSQL | Rotación sin conservar los archivos anteriores, reinstalación o recreación del servidor |
Bitácora de mongod en memoria (getLog) | Reinicio del servicio. Solo guarda los 1024 eventos más recientes |
| Bitácora en la salida estándar | Se pierde con el proceso o el contenedor que la produjo, si nadie la recoge |
system.profile | Se sobrescribe al llenar 1 MB |
| Nivel del perfilador | Vuelve a 0 al reiniciar, si no está en el archivo de configuración |
| Tabla de auditoría | La desactiva o depura quien la administra |
| Cualquier bitácora | log_statement en none durante un periodo |
Criterio de conservación
Section titled “Criterio de conservación”Un cambio de privilegios pesa más que una consulta rutinaria
Plazos que confirma el área jurídica. El DBA no inventa plazos legales.
El volumen depende del nivel de registro elegido
La auditoría conserva datos que la política de retención pide eliminar
Fuente: NIST SP 800-92, “Guide to Computer Security Log Management”
Ejemplo: un criterio de conservación razonado
Section titled “Ejemplo: un criterio de conservación razonado”| Registro | Sensibilidad | Periodo propuesto | Justificación | Dónde se conserva | Al vencer |
|---|---|---|---|---|---|
| Cambios de privilegios y estructura | Alta | Más largo que el resto | Permiten reconstruir quién pudo hacer qué en cualquier momento | Fuera del servidor, con hash | Depurar con autorización del propietario |
| Accesos fallidos | Media | Intermedio | Sirven para detectar patrones de ataque en el tiempo | Fuera del servidor | Depurar |
auditoria.cambios_clientes | Alta, contiene datos personales | Plazo a confirmar con el área jurídica | Conflicto con la retención de datos personales | Esquema protegido | Decisión del propietario y jurídico |
system.profile | Media, contiene filtros de consultas | No sirve para conservar: 1 MB | Se sobrescribe sola | Exportar a archivo | Depurar el archivo exportado |
El ejemplo usa periodos relativos. Los plazos en días o meses dependen de las obligaciones de cada organización y no los fija el DBA por su cuenta.
Interpretar es responder preguntas
Section titled “Interpretar es responder preguntas”¿Quién? ¿Cuándo? ¿Desde dónde? ¿Con qué aplicación? ¿Qué tipo de evento? ¿Fue exitoso?
¿Qué prueba esta línea y qué no prueba?
| Línea | Prueba | No prueba |
|---|---|---|
user=app_ventas ... statement: UPDATE ... | Que se usó la credencial app_ventas desde 127.0.0.1 | Qué persona estaba detrás |
FATAL: password authentication failed | Que hubo un intento fallido | Que fue un ataque |
Cuando no alcanza la evidencia: “No hay evidencia” y su razón técnica. Nunca una explicación inventada.
Reconstruir una cronología
Section titled “Reconstruir una cronología”Fragmento de una ejecución verificada del Laboratorio 01:
| # | Hora (UTC) | Usuario | Cliente | Tipo | Qué ocurrió |
|---|---|---|---|---|---|
| — | Sin registro | — | — | Datos | Primer cambio del RFC: no hay evidencia (registro apagado) |
| 1 | 22:49:50.539 | postgres (PID 1) | — | Configuración | log_statement cambia a ddl |
| 2 | 22:50:00.334 | app_ventas | 127.0.0.1 | Acceso | Contraseña incorrecta |
| 3 | 22:50:00.462 | usuario_inexistente | 127.0.0.1 | Acceso | Rol inexistente |
| 4 | 22:50:09.367 | postgres | local | Privilegio | GRANT UPDATE ON clientes TO app_ventas |
| 5 | 22:50:20.601 | app_ventas | 127.0.0.1 | Datos | UPDATE clientes SET telefono = ... |
| 6 | 22:50:20.720 | soporte_ana | 127.0.0.1 | Error | permission denied al intentar DELETE |
Un evento que no se registró no tiene hora en la cronología. Se declara como hueco de evidencia, no se estima.
Actividad 5: Interpretación y conservación
Section titled “Actividad 5: Interpretación y conservación”- Con tu bitácora de PostgreSQL o de MongoDB, interpreta al menos cuatro eventos distintos.
- Indica qué prueba y qué no prueba cada uno.
- Propón cuánto tiempo conservarías ese tipo de bitácora y justifica con sensibilidad, obligaciones y espacio.
No existe una cifra única correcta. Se evalúa el razonamiento, no el número.
Relación con el laboratorio
Section titled “Relación con el laboratorio”La conservación de bitácoras se practica en el Laboratorio 3 — Políticas prácticas, gobierno de datos y evidencias, con las bitácoras que generaste en los Laboratorios 1 y 2.
Qué sigue
Section titled “Qué sigue”Continúa con 6. Políticas prácticas de datos.

