Contáctame

EVIDENT: la clave no es la IA, es la evidencia

EVIDENT localiza los datos personales con extensiones versionadas de reglas y patrones que buscan evidencias, no con un modelo que adivina por nombres de columna.

  • Productos
  • Inteligencia Artificial

Traducido del inglés.

La vista Modelo de EVIDENT: una lista de campos de una tabla staff_records, cada uno con su elemento de código, el estado Confirmado y un motivo en lenguaje claro, con criminal_record_check y health_notes marcados como de sensibilidad alta.
La vista Modelo de EVIDENT: cada campo, el código que lo mapea, su estado y el motivo que lo respalda.

Alguien pregunta dónde se guardan los teléfonos de los clientes. En la mayoría de las empresas, la respuesta honesta es una quincena de entrevistas y una hoja de cálculo que se queda desfasada antes de terminarla. El conocimiento existe, pero está repartido entre once personas, seis repositorios y un esquema, y el mapa vuelve a quedarse obsoleto con la siguiente release.

EVIDENT (se abre en una pestaña nueva) es el producto que hemos construido en Ximplicity para cambiar esa respuesta: lee tus bases de datos, tu código y las APIs que expones, y te dice dónde viven realmente los datos personales. En una tarde, no en un trimestre.

EVIDENT se apoya en una idea muy sencilla:

No se puede confiar en un sistema de análisis que te dice una cosa un lunes y otra diferente un martes. Por eso EVIDENT no usa lo que una IA pueda interpretar, sino reglas fiables y predecibles que siempre dicen lo mismo ante la misma evidencia y que, si no la encuentran, no mienten.

Muchas herramientas prometen ya encontrar tus datos personales, y casi todas lo prometen de la misma manera: con IA. Nosotros hicimos una apuesta distinta, y el resto de este artículo explica por qué.

El atajo que toma todo el mundo

Hoy hay dos formas fáciles de construir un escáner de datos personales.

La primera es una búsqueda heurística: comparar los nombres de las columnas con una lista (email, phone, dni) y declarar datos personales todo lo que coincida. La segunda es más reciente y suena más inteligente: indexar el esquema, el código o las descripciones de las APIs, pasárselos a un modelo de lenguaje y preguntarle qué campos son datos personales.

Las dos dan una respuesta rápida. Ninguna da algo que se pueda defender. Una coincidencia de nombre no sabe que una columna llamada orientation en una tabla de placas solares no tiene nada que ver con una persona. La respuesta de un modelo no se puede reproducir el mes siguiente, no puede decirte qué versión de su razonamiento la produjo y no puede decir qué no miró. Cuando un delegado de protección de datos, un auditor o un regulador pregunta por qué, "lo dijo el modelo" no es un motivo.

Extensiones que salen a buscar evidencias

En EVIDENT el trabajo lo hacen las extensiones (se abre en una pestaña nueva): piezas de la plataforma con nombre y versión, cada una de las cuales sabe leer un tipo de sistema y lleva consigo las reglas y los patrones para encontrar evidencias en él.

Cada extensión es algo con nombre y versión propios. Suena a detalle de implementación, y es el corazón del producto. Significa que un hallazgo puede decir exactamente qué lector y qué versión de la regla lo produjeron. Significa que un informe de hace seis meses puede leerse en los términos que se aplicaban hace seis meses. Y significa que el producto crece añadiendo extensiones (un nuevo motor, un nuevo framework, un nuevo tipo de interfaz) sin cambiar lo que el núcleo ya afirma.

El diagrama de esquema de EVIDENT, con un campo seleccionado y su panel abierto: categoría legal "Categoría especial de datos personales", sensibilidad alta y los motivos por los que se marcó.
El diagrama de esquema: cada campo lleva su categoría legal, su sensibilidad y la evidencia que las respalda.

Muchos lenguajes, muchos motores, un solo modelo

Los datos personales no viven en un solo sitio, ni se describen en un solo lenguaje. Encontrarlos exige entender cada capa por la que pasan, y es ahí, más que en cualquier algoritmo, donde se nota la experiencia que hay detrás de EVIDENT.

SQL, en distintos motores. EVIDENT lee PostgreSQL, SQL Server, MySQL, MariaDB, Oracle y SQLite a través de sus propios catálogos (se abre en una pestaña nueva): tablas, columnas, tipos, restricciones, claves foráneas y comentarios. Estructura, no filas. Seis motores no se ponen de acuerdo en cómo se llama un tipo ni en cómo se identifica un objeto, así que detrás de los lectores hay un contrato de introspección independiente del motor y un sistema de tipos canónico: la misma columna significa lo mismo venga del motor que venga.

Código, en distintos lenguajes. Un esquema cuenta la mitad de la historia; el código que se mapea sobre él cuenta el resto. EVIDENT lee los ORM que los equipos usan de verdad, en los lenguajes en los que de verdad escriben: C# con Entity Framework Core, TypeScript con Prisma y TypeORM, Node.js con Sequelize, Python con SQLAlchemy y el Django ORM, Java con JPA e Hibernate. Todos alimentan un único modelo de código, de modo que un campo se entiende a través de la propiedad, la entidad y el decorador que lo usan, no solo por el nombre de su columna.

APIs. Lo que un sistema expone a otros importa tanto como lo que almacena. EVIDENT lee descripciones OpenAPI y GraphQL para ver qué operaciones devuelven datos personales, cuáles exigen que quien llama demuestre quién es y a qué datos puede llegar quien llama sin que ninguna operación los devuelva directamente.

Logs. Más allá del mundo relacional, EVIDENT mira lo que el código de la aplicación escribe en sus propios logs y eventos: entidades pasadas enteras a un logger, campos con datos personales, credenciales. Un campo en un log se conserva tanto como el propio log, y no se puede borrar a petición.

Y más allá de lo relacional. La versión actual lee bases de datos relacionales, código, APIs y logs. La arquitectura de extensiones se diseñó desde el principio para que las fuentes no relacionales (bases de datos documentales, motores de búsqueda, cachés, brokers de mensajería, almacenes analíticos) sean nuevos lectores y no una reescritura. Y ahí es exactamente hacia donde va.

Un patrón es un candidato, nunca una conclusión

Las reglas que hay dentro de esas extensiones son deterministas y legibles (se abre en una pestaña nueva): los mismos sistemas y la misma versión de la regla dan el mismo resultado, siempre. Pero que una regla encaje con un patrón es solo el punto de partida.

Una coincidencia es un candidato. Decide el contexto: el significado de la tabla, los campos vecinos, las claves foráneas, los tipos declarados, los comentarios, el código que mapea la columna y el vocabulario de la propia organización. Un motor de correlación mira combinaciones de campos, no cada uno por separado, porque dos columnas inofensivas juntas pueden identificar a una persona. Cuando el contexto no dice nada en absoluto, una conclusión crítica se propone para revisión en lugar de afirmarse: el silencio no es conformidad. Y cuando una palabra no tiene un segundo significado, como una columna llamada BiometricTemplate, no necesita corroboración.

Esa es la diferencia entre encontrar evidencias y adivinar por los nombres, y es la diferencia entre una herramienta útil y una que solo hace ruido.

La evidencia antes que la inferencia

Los valores que hay detrás de EVIDENT son los que encontrarás en cada página de su web, y no son decoración. Son restricciones de diseño.

Cada afirmación dice qué tipo de afirmación es. EVIDENT separa lo que se observó en un sistema, lo que la organización declaró, lo que dice un documento controlado y lo que se infirió a partir de otras evidencias, con una confianza y una justificación. Cada hallazgo lleva su propia cadena, de modo que quien lo lee puede seguir exactamente cómo una columna acabó etiquetada como dato de salud o como antecedente penal.

UNKNOWN es un resultado. Cuando la evidencia no basta para sostener una conclusión, EVIDENT lo dice, y nombra la evidencia que necesitaría para decidir. No adivina, y no convierte una respuesta que falta en parte de un porcentaje. Lo que no se pudo observar se comunica como tal, nunca se cuenta como un éxito.

Una categoría legal no es un nivel de sensibilidad. Cómo llama el RGPD a los datos (datos personales, una categoría especial del artículo 9, datos de condenas del artículo 10) se mantiene separado de la ordenación propia de EVIDENT sobre qué revisar primero, para que el producto nunca presente su propia escala como si la hubiera definido el reglamento.

Sin puntuación de cumplimiento. EVIDENT informa de evidencias y de huecos. No certifica el cumplimiento legal (se abre en una pestaña nueva), y lo dice en cada página. Una puntuación parece un avance y esconde los cuatro sitios que de verdad habrían importado.

Una persona decide lo que las reglas no pueden

Las reglas resuelven la mayor parte de un sistema, no todo. Lo que no pueden resolver va a una cola de revisión y a una persona (se abre en una pestaña nueva). Su decisión se mantiene entre ejecuciones; una corrección queda registrada con quién la hizo y cuándo, y reabrir una decisión se registra a su vez como una decisión. Ese rastro es la parte que un auditor lee de verdad.

El panel de revisión humana de EVIDENT para un campo: la versión de la regla que lo clasificó, una nota de que una persona estuvo de acuerdo con la propuesta, la fecha, un "por qué" opcional y un botón para reabrir la decisión.
Revisión humana: quién decidió, cuándo, con qué versión de la regla y por qué. Cualquier decisión se puede reabrir.

Como los sistemas cambian, EVIDENT está hecho para ejecutarse una y otra vez, no una sola. Un nuevo análisis conserva todas las decisiones confirmadas, señala lo que se ha quedado obsoleto y te permite comparar dos evaluaciones, para que distingas lo que se arregló de verdad de lo que sigue en pie solo porque nada en ello ha cambiado.

Entonces, ¿dónde está la IA?

Donde es útil, y en ningún otro sitio. La IA en EVIDENT explica evidencias y redacta borradores de texto para quien lee, claramente marcados como tales. Nunca crea un hecho, nunca anula una regla y nunca convierte una confianza baja en una alta. No se envía nada a un modelo a menos que lo actives y digas qué puede enviar.

No es escepticismo hacia la IA: construimos sistemas de IA para ganarnos la vida. Es un juicio sobre dónde le corresponde estar. Cuando la pregunta es si una columna contiene datos de categoría especial, la respuesta tiene que ser reproducible, versionada y explicable a alguien que no se fía de ti. Las reglas y los patrones, llevados por extensiones y contrastados con el contexto, pueden dar esa respuesta. Un modelo puede ayudar a una persona a leerla.

Seguridad y protección de datos desde el diseño

Una herramienta que inspecciona dónde viven los datos personales tiene que cumplir un estándar más alto que los sistemas que inspecciona. En EVIDENT ese estándar no es una checklist añadida al final; está en la arquitectura.

  • Nunca toca lo que analiza. Los repositorios y las bases de datos se leen mediante conexiones de solo lectura y con el mínimo privilegio (se abre en una pestaña nueva), y el código de la aplicación se lee, nunca se ejecuta.
  • Primero, los metadatos. Por defecto EVIDENT solo lee la estructura. El perfilado y el muestreo de valores reales requieren, cada uno, una activación explícita por proyecto.
  • Los secretos siguen siendo secretos. Los secretos de conexión nunca se escriben en un log. Las credenciales se cifran en reposo y quedan ligadas a la conexión a la que pertenecen, y los secretos encontrados en el código se ocultan antes de almacenarse y de nuevo a la salida, de modo que la plataforma puede informar de que un secreto existe sin repetirlo jamás.
  • El acceso lo decide el rol, mediante un único modelo de autorización, y el token que lleva una petición puede restringir sus permisos, pero nunca ampliarlos.
  • Todo deja rastro. Los escaneos, las revisiones, las exportaciones, los cambios de política y las acciones administrativas se auditan, y el rastro de auditoría se mantiene separado de la telemetría.
  • Tu infraestructura, si la quieres. EVIDENT funciona como servicio alojado o en tu propio hardware, incluidos entornos aislados (air-gapped) (se abre en una pestaña nueva), con una licencia que se verifica sin conexión.

Código bien hecho, porque el producto es la evidencia

Un producto que pide que le confíes evidencias tiene que poder enseñar las suyas. Por eso la forma en que está construido EVIDENT importa tanto como lo que hace.

Cada decisión de diseño relevante queda por escrito como un registro de decisión de arquitectura (se abre en una pestaña nueva) (cerca de sesenta hasta ahora, y se distribuyen con el código fuente). Sus títulos se leen como los principios del producto, porque lo son: un nombre es un candidato, no una conclusión; la evidencia es el registro y un informe es una proyección; las referencias rotas se notifican, no se reparan; un estado mostrado debe poder reconstruirse; un paquete se puede verificar sin nosotros.

La ingeniería que hay detrás es la misma que aplicamos para nuestros clientes: una base de código en TypeScript con un backend en NestJS y un cliente en Angular, una única vía de escritura por la que tiene que pasar cualquier cambio en el estado de la plataforma, un contrato por plugin en lugar de casos especiales, tests de cliente que se ejecutan en un navegador real y quality gates en SonarQube en ambos lados. Nada de esto se ve en una captura de pantalla, y todo ello es la razón por la que uno se puede fiar de las capturas.

El resultado se materializa en documentos que la gente necesita (se abre en una pestaña nueva), no en un dashboard para admirar: el registro de actividades de tratamiento del artículo 30 del RGPD, un registro de riesgos, cobertura y huecos, exposición en logs, la seguridad de la capa de interoperabilidad e integridad referencial, exportados como HTML, Markdown, CSV o XLSX.

La página Informes de EVIDENT: tarjetas para la evaluación de correlaciones, el registro de actividades de tratamiento, el registro de riesgos, cobertura y huecos, integridad referencial, el registro de posibles sesgos, la exposición en logs y la seguridad de la capa de interoperabilidad, sobre un informe exportable.
Informes construidos a partir de la evidencia: actividades de tratamiento, riesgos, cobertura, sesgos y exposición en logs.

Las primeras versiones, y lo que viene

EVIDENT está en sus primeras versiones, y lo decimos sin ningún reparo: cada capacidad de su web está etiquetada como Disponible, Preview o Planificada, y nada se describe como terminado antes de estarlo.

Lo que viene es bastante más potente. Un paquete de evidencias portátil (se abre en una pestaña nueva) que cualquiera puede verificar con sha256sum, sin nosotros, y la verificación de las remediaciones ya están en preview. Adaptadores de marcos normativos (se abre en una pestaña nueva) para el RGPD, ISO 27001, ISO 27701 y el Reglamento de IA de la UE (EU AI Act), una línea de comandos evident, controles de gobierno dentro de un pipeline de CI (se abre en una pestaña nueva) y un agente local para fuentes a las que no se puede llegar desde fuera están en camino, junto con nuevos lectores para las fuentes que no hablan SQL. Esperamos sorprenderte muy pronto, y cuando lo hagamos, la web del producto lo mostrará en los mismos términos llanos: disponible, preview o planificado.

Honestidad, transparencia y evidencia

Esas tres palabras no son un eslogan para EVIDENT; son la especificación. Honestidad, al decir lo que el producto no hace y lo que no pudo observar. Transparencia, al mostrar la regla, la versión, el lector y la persona que hay detrás de cada conclusión. Y evidencia, como lo único sobre lo que se permite que descanse una conclusión. La confianza se construye con las tres juntas, y eso vale tanto para el producto como para el equipo que lo construye.

La forma más rápida de juzgar si la evidencia gana a la conjetura es verla. Hay una demo de 20 minutos (se abre en una pestaña nueva) sobre una tienda ficticia (sin cuenta, sin tarjeta, una copia nueva para cada visitante, que se borra al terminar la sesión) y una prueba gratuita de 30 días (se abre en una pestaña nueva) con todas las capacidades disponibles hoy, que termina sola. Si prefieres hablarlo, aquí estamos (se abre en una pestaña nueva).

Construyamos algo grande

¿Tienes un proyecto en mente? Me encantaría escucharlo y explorar cómo puedo ayudarte.