¿Cómo detectar el fraude en el software de la registraduría?
Un asunto técnico con herramientas de inteligencia artificial
El presidente de Colombia Gustavo Petro hizo la siguiente denuncia pública sobre el fraude electoral:
Censo oficial 41.421.973. está cifra fue cambiada en DIVIPOL en el software de los hermanos Bautista el 26 de mayo del 2026, cinco días antes de las elecciones en la siguiente cantidad 42.307.373.
La diferencia es de 885.409 nuevas cédulas que no se inscribieron en la fecha legal.
También se variaron los puestos de votación, aumentandolos de la siguiente manera:
De 13.742 oficiales a 14.438 en DIVIPOL, software de los hermanos Bautista, diferencia 696 puestos de votación.
Esto da un cambio en el número totales:
Mesas oficiales, ya escritas: 120.527, pero en DIVIPOL de los hermanos Bautista, quienes son los que hicieron el conteo hay 122.020 con una diferencia de 1493 mesas adicionales, que no posiblemente no han sido escrutadas.
LA SOLUCION
En general para encontrar código alterado, lo más efectivo es usar un enfoque combinado, dividiendo las herramientas en dos categorías principales:
🛡️ Para Detectar Fraude y Engaños Activos (Agentes de IA)
Si sospechas que el código fue generado por IA y contiene patrones engañosos, estas herramientas son las más adecuadas. Se enfocan en patrones semánticos que los linters tradicionales pasan por alto .
CodeSentinel (MCP): Detecta 93 patrones específicos de “código engañoso”, como bloques
catchvacíos, respuestas falsas (return true), promesas silenciosas y fallbacks que ocultan errores. Genera puntuaciones de calidad y reportes JSON/HTML .Sandyaa: Auditor autónomo que no solo encuentra vulnerabilidades, sino que genera pruebas de concepto explotables para validar que son reales. Incluye pasadas recursivas de análisis de flujo de datos .
MunaTrust: CLI que asigna un “Trust Score” a repositorios, evaluando riesgo de alucinaciones, importes falsos y fugas de secretos. Está diseñado para decidir si el código generado por IA es seguro para producción .
TruthGuard: Actúa durante el desarrollo, verificando en tiempo real las acciones del agente de IA (ej. si realmente ejecutó pruebas o editó un archivo, bloquea comandos peligrosos como
--force) .
🔬 Para Detectar Anomalías y Errores Lógicos (IA Generativa)
Si buscas anomalías sutiles y errores lógicos que el código “alterado” pueda haber introducido, considera estos enfoques:
FLAG (Finding Line Anomalies): Usa un LLM para reescribir cada línea de código basándose en el contexto y la compara con el original. Las discrepancias se marcan como anomalías para inspección manual, reduciendo el espacio de búsqueda a un 12-17% del código original .
BugBlaze: Framework académico que usa LLMs + Redes Neuronales de Grafos para predecir “igniciones de defectos latentes”. Integra explicaciones (SHAP/LIME), generación de parches y un visualizador de zonas de riesgo directamente en el editor .
💡 Recomendación Práctica
Para un análisis completo, prueba esta estrategia:
Escanea con CodeSentinel para detectar patrones engañosos típicos de IA .
Verifica acciones con TruthGuard para asegurar que el agente ejecutó las tareas correctamente .
Para un enfoque más académico en errores lógicos complejos, revisa el framework BugBlaze .
AUMENTO DE VOTANTES Y MESAS DE VOTACION
Es fundamental actuar con un enfoque forense que combine el análisis del código fuente y la base de datos por separado. Ninguna herramienta de IA única te dará todas las respuestas, pero la combinación adecuada puede revelar las irregularidades. Aquí tienes una estrategia basada en herramientas reales:
🔍 Para Analizar el Código Fuente en Busca de Manipulación
El objetivo aquí es encontrar “puertas traseras” o lógica que permita alterar resultados.
ElectionGuard (Microsoft): Es el estándar de facto para verificación criptográfica. Aunque está diseñado para elecciones seguras, su SDK de verificación (Python/C++) te permite auditar si los votos fueron contados sin alteraciones. No es un “analizador” automático, sino un marco para probar la integridad del proceso. Es ideal para validar que el software de conteo no esté manipulado .
Herramienta de Auditoría para Estonia: La investigación que descubrió una vulnerabilidad en el voto electrónico de Estonia incluyó un script en Python que audita los logs para detectar reemplazo, adición o eliminación de votos . Este es un ejemplo directo de cómo un script específico puede cazar la lógica que altera resultados.
Recomendación para el código: Busca en el código funciones relacionadas con el conteo final, la asignación de IDs y la consolidación de mesas. Un programa hecho a la medida para este sistema electoral puede encontrar trampas intencionadas que una herramienta de IA general pasaría por alto, porque la herramienta general solo busca fallos típicos, no engaños diseñados específicamente.
Es como si quisieras saber si alguien alteró un libro de contabilidad:
Un analizador genérico revisa que las sumas den bien y que no haya errores de tipeo.
Un script a medida revisa si el dueño del negocio agregó asientos en fechas falsas justo antes del cierre del mes. El segundo sabe exactamente dónde y cómo podría estar el fraude.
Veamos un ejemplo concreto basado en el escándalo real del código de votación electrónica de Estonia. Este caso demuestra exactamente por qué un script a medida es más efectivo que un analizador genérico de IA.
El caso real de Estonia: una vulnerabilidad en el código fuente
En 2013, Estonia publicó el código fuente de su sistema de votación electrónica (i-voting) en GitHub. Los investigadores encontraron algo alarmante en el archivo vote_analyzer.py :
python
def analyze(ik, vote, votebox):
# TODO: implement security checks
# such as verifying the correct size
# of the encrypted vote
return []¿Qué significa esto? La función que debería analizar y verificar la integridad de los votos está vacía. Solo tiene un comentario que dice “TODO: implementar verificaciones de seguridad” y devuelve una lista vacía. Un analizador genérico de IA vería esto como código sintácticamente correcto, pero no sabría que esto representa una vulnerabilidad crítica en un sistema electoral.
El script a medida que detectó la vulnerabilidad
En 2023, los investigadores Treier y Düüna identificaron una vulnerabilidad aún más grave: un atacante interno podría reemplazar todas las papeletas sin ser detectado durante el procesamiento de votos. Para solucionarlo, desarrollaron un script específico de auditoría en Python que:
Examina los logs del sistema para detectar cualquier manipulación durante el procesamiento
Verifica la integridad de la urna electrónica comparando registros
Detecta tres tipos de manipulación: reemplazo, adición o eliminación de votos
El script fue entregado a las autoridades estonias el 12 de abril de 2023, confirmaron su precisión y, en mayo de 2024, incorporaron una aplicación de auditoría mejorada basada en él .
¿Qué hace este script a medida que una IA genérica no puede hacer?
Un script a medida se diferencia fundamentalmente de un analizador genérico de inteligencia artificial porque conoce exactamente los patrones específicos que debe buscar en los registros del sistema electoral, mientras que el analizador genérico se limita a encontrar problemas superficiales como errores de sintaxis o código mal escrito; además, el script personalizado tiene la capacidad de comparar datos entre múltiples fuentes, como la urna electrónica, los archivos de registro y las configuraciones del sistema, lo que le permite detectar manipulaciones complejas como el reemplazo de votos al verificar la coherencia integral de los datos, mientras que la IA genérica, al no comprender el contexto particular de un sistema de votación, pasaría por alto señales críticas como un simple "return []" en un archivo de análisis, que para el ojo entrenado representa una vulnerabilidad de seguridad grave.
Lo que se puede aprender de esto para el caso de la registraduría colombiana
Los analizadores de IA genéricos no reemplazan el conocimiento del dominio: Un experto en sistemas de votación sabe que
vote_analyzer.pydebe contener verificaciones de integridad; una IA solo ve código “válido”.Un script a medida se enfoca en la lógica de negocio específica: En tu caso, necesitas un script que:
Compare la base de datos actual con versiones anteriores para detectar los 800,000 registros nuevos
Verifique si los IDs de esos nuevos votantes siguen un patrón sospechoso
Examine si las 1,400 mesas nuevas tienen configuraciones consistentes con el resto del sistema
La auditoría electoral es un proceso legal, no solo técnico: El script de Estonia no “probó” fraude; señaló una vulnerabilidad que permitía manipulación, y las autoridades actuaron para corregirla . El script que se haga para auditar a la registraduría puede encontrar irregularidades, pero demostrar fraude requiere investigación adicional.
El código de Estonia está disponible públicamente, y hay herramientas como kryptogramm que permiten a los votantes verificar su voto individual descifrando el criptograma con su clave personal . Esto te da una idea del tipo de herramientas específicas que se desarrollan para auditar sistemas electorales.
📊 Para Analizar la Base de Datos (Inscritos y Mesas)
Aquí es donde la IA y el análisis estadístico son claves, ya que los datos sospechosos (800,000 nuevos votantes y 1,400 mesas) suelen dejar rastros numéricos.
Patrones de Asignación de IDs: Investigaciones en bases de datos de votantes de EE.UU. (Harris County, Wisconsin) han encontrado algoritmos de asignación de IDs deliberadamente complejos (ej. sistemas de numeración base-8 con patrones entrelazados) que no tienen justificación técnica y sugieren manipulación. Revisa el orden y la secuencia de los IDs de los nuevos 800,000 votantes. Si ves un patrón numérico extraño o diseñado, es una bandera roja sólida.
Detección de Anomalías Estadísticas/Geoespaciales: Herramientas como
EFToolkit(R) o proyectos que usan DBSCAN (clustering) y Z-score se usan para detectar distritos o mesas con resultados atípicos (ej. una mesa que de repente tiene votos muy por encima de la media de su zona). Para el caso de la registraduría, agrupa las nuevas 1,400 mesas y mira si forman clusters anómalos donde los resultados no cuadran con la demografía esperada (muchas mesas donde fisicamente no van todos esos votantes).
⚠️ Advertencia Crucial
El análisis forense de datos es un proceso legal y técnico. Las herramientas de IA y estadística pueden señalar anomalías sospechosas, pero no prueban fraude por sí solas. Un hallazgo de “patrón anómalo” es el punto de partida para una investigación profunda, no la conclusión.
Plan de acción:
Aísla el código: Usa el SDK de ElectionGuard o el script de auditoría de Estonia para analizar la lógica de conteo.
Analiza los IDs: Comprueba si los IDs de los nuevos votantes siguen un patrón numérico inusual (como los descritos en las investigaciones de Wisconsin/Texas) .
Cruza los datos: Con un script en Python (usando DBSCAN), agrupa las 1,400 mesas nuevas y las existentes. Si ves clusters donde los resultados no se explican por la demografía, tendrás evidencia estadística sólida para presentar.
INSPIRACION EN EL ANÁLISIS DEL FRAUDE ELECTORAL EN ESTONIA PARA EL CASO COLOMBIANO
Basado en la investigación real del sistema de voto electrónico de Estonia, veamos cómo funcionaría un script a medida para el caso colombiano de los 885.409 registros y las 1.493 mesas nuevas.
El caso real que inspiró esta estrategia
En 2023, los investigadores Treier y Düüna encontraron una vulnerabilidad en el sistema de votación electrónica de Estonia: un atacante interno podía reemplazar todas las papeletas sin ser detectado. Para solucionarlo, entregaron un script en Python a las autoridades el 12 de abril de 2023, que fue validado como preciso en diciembre de ese año. En mayo de 2024, el código actualizado del sistema incluyó una versión mejorada de su script de auditoría.
¿Qué hace este tipo de script a medida?
El script de los investigadores de Estonia se basaba en comparar conjuntos de datos y verificar su integridad. La fórmula que usaban era:
Comparar:
B₁(conjunto original) vs.B₂ ∪ L₁ ∪ L₂(conjunto procesado)
Esto se traduce en: verificar que los votos que entran al sistema son los mismos que salen, sin que se hayan agregado, reemplazado o eliminado elementos.
Para detectar adiciones duplicadas (como tus 800,000 votantes nuevos), combinaban esta verificación con una validación por conteo:
text
Si |OriginalBB| ≠ |AnonymizedBB| + |InvalidRepeated| + |InvalidPaper| + |ErrorB|
→ Se detectó manipulaciónEn palabras simples: si el número total de elementos después del procesamiento no coincide con el número original, hay una anomalía.
¿Cómo aplicaría esto al caso colombiano?
Para investigar los 885.409 nuevos votantes y las 1.493 mesas, el script a medida debería hacer lo siguiente:
1. Para los votantes (885.409 registros nuevos)
python
# Ejemplo conceptual de lo que haría el script
def auditar_votantes(registros_originales, registros_actuales):
“”“
Compara la base de datos de votantes antes y después
para detectar adiciones masivas no autorizadas
“”“
# PASO 1: Verificar que el conteo coincida
if len(registros_actuales) - len(registros_originales) != 800000:
print(”⚠️ ALERTA: La cantidad de votantes nuevos no coincide con lo reportado”)
# PASO 2: Buscar patrones sospechosos en los IDs
# Investigaciones anteriores encontraron que IDs asignados en patrones
# numéricos complejos (ej. sistema base-8) son señales de manipulación[citation:7]
for id_votante in registros_nuevos:
if id_sigue_patron_anomalo(id_votante):
print(f”⚠️ ALERTA: ID {id_votante} tiene patrón sospechoso”)
# PASO 3: Verificar que los datos coincidan con fuentes externas
# (ej. registro civil, padrón electoral previo)
if not verificar_en_registro_civil(registros_nuevos):
print(”⚠️ ALERTA: Votantes no encontrados en registros oficiales”)2. Para las mesas (1.493 nuevas)
python
def auditar_mesas(mesas_originales, mesas_nuevas):
“”“
Verifica la integridad de las nuevas mesas de votación
“”“
# PASO 1: Verificar que las mesas existan físicamente
for mesa in mesas_nuevas:
if not exists_in_physical_location(mesa):
print(f”⚠️ ALERTA: Mesa {mesa.id} no existe en ubicación real”)
# PASO 2: Verificar configuración consistente
# (capacidad, ubicación, personal asignado, etc.)
if not configuracion_consistente(mesas_nuevas):
print(”⚠️ ALERTA: Configuración de mesas inconsistentes con el estándar”)
# PASO 3: Verificar capacidad vs. número de votantes asignados
# Una mesa “fantasma” suele tener capacidad inconsistente con la población
# de su zona geográfica[citation:7]Lecciones clave del caso de Estonia
El script a medida detectó lo que una IA genérica pasó por alto: El archivo
vote_analyzer.pydel código de Estonia tenía una función vacía con el comentario# TODO: implement security checksque había estado allí desde 2004. Una IA genérica lo vería como un “pendiente”, pero no sabría que esto era una vulnerabilidad crítica en un sistema electoral.El script se enfocó en la lógica de negocio, no en el código en general: No buscaba errores de sintaxis, sino que verificaba la integridad del proceso completo de votación: qué votos entran, qué votos salen, y si el conteo coincide.
El script puede señalar anomalías, pero probar fraude requiere investigación adicional: Los investigadores presentaron sus hallazgos a las autoridades, quienes validaron el script y mejoraron el sistema. El script era una herramienta para auditar, no para declarar culpables.
Herramientas que puedes usar como referencia
Los investigadores de Estonia han hecho públicos varios repositorios que pueden servirte de guía:
kryptogramm: Herramienta de verificación independiente de votos para el protocolo IVXV de Estoniaivxv-decproof-verifier: Herramienta en Rust para verificar pruebas de descifrado correctointcheck: Herramienta de verificación de integridad para directorios
En resumen
El script a medida que se necesita debe:
Comparar bases de datos (versión anterior vs. actual) para detectar las 800,000 inserciones masivas
Verificar patrones en los IDs de los nuevos votantes y mesas (IDs con patrones numéricos complejos son banderas rojas)
Cruzar con fuentes externas (registro civil, padrón electoral físico) para confirmar que los nuevos registros existen en la realidad
Validar consistencia geográfica de las 1,400 mesas nuevas con la población de sus zonas
Un analizador genérico de IA podría pasarlo por alto todo esto, porque no entiende el contexto electoral. Un script a medida, diseñado específicamente para este sistema y estas reglas de negocio, puede encontrar estas irregularidades de manera mucho más eficiente.





