Obervability
Servicios
AudiTrace
Recursos▾
Contacto
ES ▾
Solicitar una auditoría gratuita
De la auditoría · Pipelines
Datos personales en logs: 50 fuentes, unos 30.7 millones de registros al día
No es una brecha. Es una exposición — direcciones de correo llegando en texto plano a un almacén consultable, a un ritmo que nadie midió, sin masking delante.
Publicado el 16 de septiembre de 2026
La versión silenciosa de un problema de privacidad
No se filtró nada. No hubo ningún atacante, ningún bucket era público y todos los accesos estaban autenticados y registrados. Lo que encontró la auditoría era más acotado y más corriente: 50 fuentes de logs enviaban registros con direcciones de correo en texto plano, unos 30.7 millones de registros al día, a un almacén que cualquiera con acceso de consulta podía buscar.
Eso no es un titular. Sí es, en cambio, datos personales tratados sin que nadie haya decidido tratarlos, conservados durante lo que diga el bucket y consultables por un conjunto de personas más amplio de lo que nadie había considerado — que es justo la definición del problema con el que se topan los reguladores.
Por qué casi siempre es lo que viene por defecto
Los logs de aplicación se escriben para depurar, y una dirección de correo es la clave de depuración más útil que existe. Nadie la añade a una línea de log como decisión sobre tratamiento de datos; la añade porque la alternativa es un ticket de soporte que no se puede vincular a ninguna cuenta.
El ingest es donde eso pasa de ser una decisión de un desarrollador a una decisión de plataforma — y la configuración de ingest suele definirse una sola vez, para las primeras fuentes, y luego la heredan sin revisión todas las que se añaden después.
Qué hace la verificación y qué no hace
Cuenta las coincidencias de patrón por fuente e informa de la fuente y del ritmo. No extrae los valores coincidentes, no los guarda, no los transmite, y el reporte no cita ninguno. Un hallazgo que tuviera que citar los datos para demostrar que los datos existen sería un problema peor que el que describe.
Tampoco le dice si tiene un problema legal. No somos abogados y el reporte no da una opinión; establece qué está llegando, a dónde y a qué ritmo, que es justo el insumo que su asesoría de privacidad necesita y hoy no tiene.
La forma de la consulta
Contar las coincidencias por fuente sin leerlas — esta es la lógica detrás del hallazgo:
DQL
fetch logs, from: -24h
| filter matchesPhrase(content, "@")
| filter matchesValue(content, "*@*.*")
| summarize records = count(), by: {dt.source_entity}
| sort records desc
La solución está aguas arriba, y es barata
Una regla de masking en el ingest impide que nuevos datos personales aterricen en almacenamiento consultable, y se aplica desde el momento en que se guarda. Es el control más barato de la plataforma y el que más veces falta, porque protege frente a algo que nunca ha salido mal de forma visible.
Lo que el masking no hace es nada respecto de los registros ya almacenados — eso es una cuestión de retention, cae en otro dominio de la auditoría y lleva asociada una decisión distinta y más difícil. Corrija primero la entrada; es la mitad que puede arreglar hoy.
El hallazgo detrás de este artículo
Fuentes de logs con direcciones de correo en texto plano
Escala
50 fuentes · ~30.7M/día
Impacto
Exposición GDPR
La conclusión
Los datos personales en logs no suelen ser una falta de cuidado. Son la ausencia de una regla que nadie llegó a tener motivo para escribir.
Más de la serie
La pregunta de $91,576: hosts Full-Stack que no monitorean nada
De la auditoría · FinOps
El bucket de Grail que nadie eligió: 462 días de retention
De la auditoría · Grail
1,617 ventanas de mantenimiento: el alerting se apaga sin que nadie lo decida
De la auditoría · Alerting
Qué llega realmente a una factura de DPS
De la auditoría · FinOps
Descubra qué dice su propio tenant.
Una sola ejecución read-only, 71 verificaciones y el origen detrás de cada hallazgo. El reporte es suyo en cualquier caso.
Solicitar una auditoría gratuita
AudiTrace
Descubra qué está haciendo realmente su Obervability.
Una auditoría toma una ejecución. Los hallazgos toman una reunión. Qué hacer con ellos depende de usted.
Expertos certificados en Dynatrace
+1
Obervability
Implementación, servicios gestionados y soporte de Dynatrace. Cada hallazgo llega con el origen detrás de él.
Servicios
Servicios
AudiTrace
Caso de estudio
Guías
Auditoría de Dynatrace
Optimización de costos Dynatrace
Caso de estudio
Artículos
Contacto
Contacto
hello@obzervability.com
© 2026 Obervability · Todos los derechos reservados.
Privacidad
Términos de uso
Accesibilidad
Obervability
{{ t.navServices }}
AudiTrace
{{ resLabel }}▾
{{ t.navContact }}
{{ footGuideAudit }}
{{ footGuideCost }}
{{ footGuideCase }}
{{ footGuideArticles }}
{{ langLabel }} ▾
English
{{ altLabel }}
{{ t.heroKicker }}
{{ t.heroTitle }}
{{ t.heroSub }}
{{ t.heroCta1 }}
{{ t.heroCta2 }}
{{ t.badge }}
71
{{ t.stripChecks }}
19
{{ t.stripDomains }}
21
{{ t.stripRem }}
0
{{ t.stripWrite }}
{{ t.svcTitle }}
{{ t.s1t }}
{{ t.s1d }}
{{ t.s2t }}
{{ t.s2d }}
{{ t.s3t }}
{{ t.s3d }}
{{ t.caseKicker }}
{{ t.caseTitle }}
{{ t.caseCtx }}
{{ t.caseNote }}
{{ t.svcKick }}
{{ t.svcTitle2 }}
{{ t.svcSub }}
{{ t.heroCta1 }}
{{ t.svcCta2 }}
71
{{ t.svcL1 }}
$114–178k
{{ t.svcL2 }}
0
{{ t.svcL3 }}
{{ t.svcTracksT }}
{{ t.svcTracksD }}
{{ k.t }}
{{ k.g }}
{{ k.d }}
{{ t.fcTitle }}
{{ t.svcFindD }}
{{ f.t }}
{{ f.d }}
{{ t.svcEngT }}
{{ t.colEng }}
{{ t.colTrack }}
{{ t.colShape }}
{{ e.n }}
{{ e.k }}
{{ e.s }}
{{ t.svcCtaT }}
{{ t.svcCtaD }}
{{ g.kicker }}
{{ g.title }}
{{ g.sub }}
{{ g.cta1 }}
{{ g.cta2 }}
{{ g.s1h }}
{{ p.t }}
{{ g.s2h }}
{{ g.s2sub }}
{{ c.t }}
{{ c.d }}
{{ g.s3h }}
{{ g.s3sub }}
{{ g.s4h }}
{{ g.s4sub }}
{{ g.tableNote }}
{{ g.s5h }}
{{ g.s5sub }}
{{ k.t }}
{{ k.d }}
{{ g.s6h }}
{{ c.t }}
{{ c.d }}
{{ g.faqH }}
{{ f.q }}
{{ f.a }}
{{ g.closerT }}
{{ g.closerD }}
{{ g.cta1 }}
{{ g.closerCta }}
{{ g.kicker }}
{{ g.title }}
{{ g.sub }}
{{ g.cta1 }}
{{ g.cta2 }}
{{ g.s1h }}
{{ p.t }}
{{ g.s2h }}
{{ g.s2sub }}
{{ g.tableNote }}
{{ g.s3h }}
{{ c.t }}
{{ c.d }}
{{ g.s4h }}
{{ c.t }}
{{ c.d }}
{{ g.faqH }}
{{ f.q }}
{{ f.a }}
{{ g.closerT }}
{{ g.closerD }}
{{ g.cta1 }}
{{ g.closerCta }}
{{ dom.kicker }}
{{ dom.title }}
{{ dom.lede }}
{{ dom.ctaBook }}
{{ dom.ctaChecks }}
{{ dom.hReads }}
{{ r.t }}
{{ r.d }}
{{ dom.hWhy }}
{{ p.t }}
{{ dom.findLabel }}
{{ dom.findName }}
{{ dom.lblScale }}
{{ dom.findScale }}
{{ dom.lblImpact }}
{{ dom.findImpact }}
{{ dom.findNote }}
{{ dom.hFaqs }}
{{ f.q }}
{{ f.a }}
{{ dom.hOther }}
{{ dom.otherSub }}
{{ dom.closerT }}
{{ dom.closerD }}
{{ dom.ctaBook }}
{{ dom.closerCta }}
{{ c.kicker }}
{{ c.title }}
{{ c.sub }}
{{ c.cta1 }}
{{ c.cta2 }}
{{ f.n }}
{{ f.l }}
{{ c.s1h }}
{{ c.s1sub }}
{{ c.tableNote }}
{{ c.s2h }}
{{ p.t }}
{{ c.s3h }}
{{ a.t }}
{{ a.d }}
{{ c.s4h }}
{{ f.q }}
{{ f.a }}
{{ c.closerT }}
{{ c.closerD }}
{{ c.cta1 }}
{{ c.closerCta }}
{{ art.kicker }}
{{ art.title }}
{{ art.dek }}
{{ art.dateLine }}
{{ s.h }}
{{ p.t }}
DQL
{{ s.code }}
{{ art.findLabel }}
{{ art.findName }}
{{ art.scaleLabel }}
{{ art.findScale }}
{{ art.impactLabel }}
{{ art.findImpact }}
{{ art.takeawayLabel }}
{{ art.takeaway }}
{{ art.moreLabel }}
{{ art.ctaTitle }}
{{ art.ctaSub }}
{{ art.ctaBtn }}
AudiTrace
{{ artIndexKicker }}
{{ artIndexTitle }}
{{ artIndexSub }}
{{ t.privTitle }}
{{ t.privUpdated }}
{{ s.h }}
{{ s.b }}
{{ t.termsTitle }}
{{ t.termsUpdated }}
{{ s.h }}
{{ s.b }}
{{ t.a11yTitle }}
{{ t.a11yUpdated }}
{{ s.h }}
{{ s.b }}
{{ c.t }}
{{ c.d }}
{{ t.pTitle }}
{{ p.t }}
{{ p.d }}
{{ p.fig }}
{{ t.hTitle }}
{{ s.n }}
{{ s.t }}
{{ s.d }}
{{ t.way1k }}
{{ t.way1t }}
{{ t.way1d }}
{{ t.way2k }}
{{ t.way2t }}
{{ t.way2d }}
{{ t.waysNote }}
{{ t.fcTitle }}
{{ i.t }}
{{ i.d }}
{{ t.prDelTitle }}
{{ d.t }}
{{ d.d }}
{{ t.dTitle }}
{{ t.dSub }}
{{ t.secTitle }}
{{ b.t }}
{{ b.d }}
{{ n.t }}
{{ t.oTitle }}
{{ o.k }}
{{ o.t }}
{{ o.d }}
{{ o.p }}
{{ t.faqTitle }}
{{ q.q }}
{{ q.a }}
{{ t.cTitle }}
{{ t.cSub }}
{{ t.badge }}
{{ t.fSentT }}
{{ t.fSentD }}
{{ ccDial }}
{{ formErrMsg }}
{{ t.footColServices }}
{{ t.navServices }}
AudiTrace
{{ t.navCase }}
{{ t.footColGuides }}
{{ footGuideAudit }}
{{ footGuideCost }}
{{ footGuideCase }}
{{ footGuideArticles }}
{{ t.footColReach }}
{{ t.navContact }}
hello@obzervability.com
© 2026 Obzervability · {{ t.footRights }}
{{ t.navPrivacy }}
{{ t.navTerms }}
{{ t.navA11y }}