Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Pilar 2: Sistema de Auditoría Automatizada y Análisis Predictivo
- ## Especificación Técnica y Operativa
- ---
- ## 1. VISIÓN GENERAL
- **Objetivo Core:** Convertir el flujo masivo de datos del Pilar 1 (Sistema de Información Integrado) en inteligencia operativa. Un equipo de 30-40 analistas y auditores, potenciados por algoritmos, detecta en tiempo real lo que antes tardaba años.
- **Principio:** La máquina detecta patrones, los humanos validan e investigan.
- **Métrica de éxito:** 90% de los casos de corrupción detectados ANTES de 3 meses desde su ocurrencia (vs. 5-7 años en el sistema actual).
- ---
- ## 2. ARQUITECTURA GENERAL
- ### 2.1 Capas del Sistema de Auditoría
- ```
- CAPA 1: INGESTA DE DATOS
- ├─ Blockchain del Pilar 1 (feed en tiempo real)
- ├─ Bases de datos complementarias
- │ ├─ Precios de mercado históricos
- │ ├─ Registros de empresas (accionistas, historial)
- │ ├─ Declaraciones patrimoniales de funcionarios
- │ └─ Sanciones y antecedentes
- └─ Datos externos (economía, inflación, tipos de cambio)
- ↓ PROCESAMIENTO
- CAPA 2: NORMALIZACIÓN Y ENRIQUECIMIENTO
- ├─ Limpieza de datos inconsistentes
- ├─ Vinculación de datos relacionados
- │ ├─ ¿Esta empresa está vinculada con otra?
- │ ├─ ¿Este funcionario tiene intereses declarados?
- │ └─ ¿Hay antecedentes de esta empresa?
- ├─ Creación de grafos de relaciones
- └─ Cálculo de métricas de riesgo
- ↓ ANÁLISIS
- CAPA 3: DETECCIÓN DE ANOMALÍAS
- ├─ Algoritmos de detección automática
- │ ├─ Machine Learning (identificar patrones nuevos)
- │ ├─ Reglas basadas en expertos (fraude conocido)
- │ └─ Análisis de red (testaferría, ciclos)
- ├─ Scoring de riesgo por transacción
- └─ Alertas en tiempo real (banderas rojas)
- ↓ VALIDACIÓN
- CAPA 4: VALIDACIÓN HUMANA
- ├─ Analista revisa alerta
- ├─ Decide: ¿es fraude real o falso positivo?
- ├─ Si es real: escala a investigación formal
- └─ Si es falso positivo: realimenta algoritmo
- ↓ ACCIÓN
- CAPA 5: INVESTIGACIÓN Y REPORTE
- ├─ Caso abierto en sistema de investigación
- ├─ Recopilación de evidencia adicional
- ├─ Generación de reporte para fiscal
- └─ Seguimiento de resolución
- ↓ INTELIGENCIA
- CAPA 6: RETROALIMENTACIÓN
- ├─ Aprendizaje de lo ocurrido
- ├─ Mejora de algoritmos
- ├─ Identificación de nuevos patrones
- └─ Actualización de reglas de detección
- ```
- ---
- ## 3. EQUIPO DE AUDITORÍA AUTOMATIZADA
- ### 3.1 Estructura Organizacional
- ```
- DIRECCIÓN DE AUDITORÍA AUTOMATIZADA
- │
- ├─ SUBDIRECCIÓN TÉCNICA (Jefe: Ingeniero Principal)
- │ ├─ Team Lead Data Science (5 personas)
- │ │ ├─ Especialista Machine Learning
- │ │ ├─ Especialista en Análisis de Redes
- │ │ ├─ Ingeniero de Datos (2)
- │ │ └─ Especialista en Visualización
- │ │
- │ └─ Team Lead Infraestructura (3 personas)
- │ ├─ DevOps Engineer
- │ ├─ SRE (Site Reliability Engineer)
- │ └─ Especialista en Seguridad
- │
- ├─ SUBDIRECCIÓN OPERATIVA (Jefe: Auditor Forense Principal)
- │ ├─ Equipo de Análisis (12 auditores)
- │ │ ├─ Auditores Senior (4): casos complejos
- │ │ ├─ Auditores Mid (5): casos medianos
- │ │ ├─ Auditores Junior (3): validación inicial
- │ │
- │ ├─ Equipo de Investigación (8 investigadores)
- │ │ ├─ Investigador Forense Digital (2)
- │ │ ├─ Investigador de Fraude Financiero (2)
- │ │ ├─ Investigador de Testaferría (2)
- │ │ └─ Investigador de Corrupción Administrativa (2)
- │ │
- │ └─ Equipo de Reportes (3 especialistas)
- │ ├─ Redactor de Reportes Legales
- │ ├─ Coordinador con Fiscalía
- │ └─ Especialista en Evidencia Digital
- │
- ├─ ASUNTOS LEGALES (1 abogado)
- │ └─ Asesor en cadena de custodia, prueba digital
- │
- └─ DIRECTOR EJECUTIVO
- └─ Reporta a directorio de AAIE
- ```
- **Total:** ~35 personas
- **Salarios:** ~$80M/año (mix: profesionales Sr $150K, Mid $90K, Jr $60K)
- ### 3.2 Perfil de Roles
- **Data Scientist (Especialista ML):**
- - Formación: Licenciatura en Ciencias de Datos, Matemática, Ingeniería.
- - Experiencia: 5+ años en ML aplicado a fraude, finanzas o sector público.
- - Skills: Python/R, sklearn, XGBoost, redes neuronales, experiencia con datos complejos.
- - Responsabilidad: Entrenar y mejorar modelos de detección.
- **Auditor Senior:**
- - Formación: Contador Público o equivalente.
- - Experiencia: 10+ años en auditoría forense, fraude, o corrupción.
- - Skills: análisis financiero profundo, escritura de reportes, capacidad de comunicar hallazgos a fiscales.
- - Responsabilidad: Validar hallazgos de algoritmos, tomar decisiones de investigación.
- **Investigador Forense Digital:**
- - Formación: Ingeniería Informática o similar.
- - Experiencia: 5+ años en forense digital, análisis de logs, reconstrucción de eventos.
- - Skills: Linux, herramientas forenses, cadena de custodia, análisis de tráfico de red.
- - Responsabilidad: Investigar cibercrimen, destrucción de evidencia, acceso no autorizado.
- ---
- ## 4. MOTORES DE DETECCIÓN
- ### 4.1 Motor 1: Detección Basada en Reglas (Rule-Based Detection)
- **Concepto:** Reglas codificadas basadas en patrones de fraude conocidos. Son rápidas, interpretables, bajo falso positivo.
- **Ejemplo 1: Concentración de Proveedor**
- ```
- REGLA: Fraude_Concentración_Proveedor
- DISPARA SI:
- Para un ministerio M en período P (ej: último año):
- Empresa E ganó > 80% de las licitaciones en que participó
- Y número de licitaciones >= 5
- Y E recibió > $10M en total
- CÁLCULO:
- concentración = (licitaciones ganadas / licitaciones en que participó)
- SI concentración > 0.80 Y monto > umbral:
- → BANDERA ROJA: "Posible favoritismo"
- → Severidad: MEDIA
- → Auditor asignado: Auditor Senior con experiencia en favoritismo
- CONTEXTO ADICIONAL PARA AUDITOR:
- - Historial de Empresa E: ¿ganó siempre así o es nuevo patrón?
- - Precio de E: ¿está dentro de rango de mercado?
- - Funcionarios que aprobaron: ¿hay rotación o siempre mismos?
- - Empresas que participaron pero perdieron: ¿por cuánto?
- ```
- **Ejemplo 2: Sobrepricing (Sobrefacturación)**
- ```
- REGLA: Fraude_Sobrepricing
- DISPARA SI:
- Para una transacción T (compra de bien/servicio):
- precio_pagado > precio_mercado * 1.3
- Y no hay justificación documentada de por qué subió
- Y es bien/servicio estándar (no especializado)
- CÁLCULO:
- // Base de precios de mercado: histórico de últimos 2 años
- // + consulta a precios internacionales para commodities
- ratio_precio = precio_pagado / precio_mercado_promedio
- desviación = (ratio_precio - 1) * 100
- SI desviación > 30%:
- → Solicitar justificación del comprador
- → SI no hay justificación:
- → BANDERA ROJA: "Posible sobrepricing"
- → Monto sospechoso = (precio_pagado - precio_mercado) * cantidad
- → Severidad: MEDIA-ALTA
- CONTEXTO ADICIONAL:
- - ¿Es medicina? ¿Cambió algo en el mercado? (crisis, escasez)
- - ¿El precio histórico de este proveedor siempre fue así?
- - ¿Otros proveedores ofrecen lo mismo a precio menor?
- ```
- **Ejemplo 3: Ciclo de Gasto Temporal Sospechoso**
- ```
- REGLA: Fraude_Ciclo_Temporal_Irregularidad
- DISPARA SI:
- Para un ministerio M o dependencia D:
- Patrón temporal ANÓMALO en desembolsos
- PATRONES DETECTABLES:
- a) Gasto de último día del mes: > 30% del mes en últimos 2 días
- b) Gasto de último día del año: > 50% del trimestre en últimos 5 días
- c) Pico semanal: > 60% de la semana viernes a domingo
- CONTEXTO: Son legales en situaciones legítimas (fin de periodo fiscal)
- pero pueden indicar: presión por ejecutar presupuesto +
- corrupción aprovechando menos revisión en momentos críticos
- CÁLCULO:
- distribución_temporal = Análisis(gasto_por_día, últimos_12_meses)
- SI distribución NO es uniforme (outlier estadístico):
- → BANDERA AMARILLA: "Patrón temporal inusual"
- → Revisar: ¿hay justificación (proyectos con plazo específico)?
- → SI hay patrón + sobrepricing simultáneamente:
- → ELEVAR A BANDERA ROJA
- CONTEXTO ADICIONAL:
- - Qué gastos concentrados: ¿emergencias o rutinarios?
- - ¿Mismo patrón en años anteriores?
- - ¿Otros ministerios similares tienen patrón distinto?
- ```
- **Matriz de Reglas (sample):**
- | Regla | Activación | Severidad | Falso Positivo (est.) | Acción |
- |-------|------------|-----------|----------------------|--------|
- | Concentración Proveedor | >80% participación, 5+ licitaciones | MEDIA | 10% | Auditor revisa |
- | Sobrepricing | Precio >130% mercado | MEDIA-ALTA | 15% | Solicitar justificación |
- | Conflicto Interés | Funcionario aprueba empresa relacionada | ALTA | 5% | Alerta inmediata |
- | Ciclo Temporal | Gasto >30% en 2 últimos días mes | BAJA | 40% | Revisar contexto |
- | Viajes & Dietas | Funcionario >20 viajes/mes con dietas | MEDIA | 20% | Revisar legitimidad |
- | Licitación Fracasada | Licitación se desierta, luego compra directa por más | ALTA | 8% | Investigación |
- ### 4.2 Motor 2: Detección Basada en Machine Learning
- **Concepto:** Algoritmos que aprenden patrones de fraude a partir de datos históricos. Pueden identificar fraude nuevo/desconocido.
- #### 4.2.1 Modelo: Anomaly Detection (Detección de Anomalías)
- **Técnica:** Isolation Forest / Autoencoders
- **Idea:** Entrenar modelo con transacciones LEGÍTIMAS. El modelo aprende qué es "normal". Cualquier transacción que se desvíe significativamente = potencial fraude.
- **Implementación:**
- ```python
- import pandas as pd
- from sklearn.ensemble import IsolationForest
- import numpy as np
- # PASO 1: PREPARAR DATOS DE ENTRENAMIENTO
- # Transacciones de 2020-2024, validadas como LEGÍTIMAS
- df_training = pd.read_csv("transacciones_validadas_2020_2024.csv")
- # Features (características que el modelo analiza):
- features = [
- 'monto',
- 'cantidad_items',
- 'precio_unitario',
- 'dias_desde_licitacion',
- 'porcentaje_del_presupuesto',
- 'numero_proveedores_similares',
- 'precio_vs_mercado_ratio',
- 'numero_aprobaciones',
- 'dias_entre_aprobacion_y_pago',
- 'antigüedad_proveedor_años',
- 'numero_transacciones_previas_proveedor'
- ]
- X = df_training[features]
- # PASO 2: ENTRENAR MODELO
- model = IsolationForest(
- contamination=0.05, # Asumir 5% de anomalías en datos históricos
- random_state=42,
- n_estimators=100
- )
- model.fit(X)
- # PASO 3: EVALUAR NUEVAS TRANSACCIONES (DIARIAMENTE)
- def auditar_transacciones_nuevas():
- df_nuevo = obtener_transacciones_del_dia() # Desde blockchain
- X_nuevo = df_nuevo[features]
- # Predecir: -1 = anomalía, 1 = normal
- predictions = model.predict(X_nuevo)
- anomaly_scores = model.score_samples(X_nuevo)
- for idx, (pred, score) in enumerate(zip(predictions, anomaly_scores)):
- if pred == -1: # Es anomalía
- transaccion = df_nuevo.iloc[idx]
- severidad = calcular_severidad(score, transaccion)
- generar_alerta(
- tipo="ANOMALIA_DETECTADA",
- transaccion_id=transaccion['id'],
- anomaly_score=score,
- severidad=severidad,
- features_anómalos=identificar_features_aberrantes(X_nuevo.iloc[idx])
- )
- def calcular_severidad(score, transaccion):
- """Calcular severidad basada en magnitud de anomalía + contexto"""
- magnitude = abs(score) # Qué tan alejada está de lo normal
- monto = transaccion['monto']
- if magnitude > 3 and monto > $5_000_000:
- return "CRÍTICA"
- elif magnitude > 2 and monto > $1_000_000:
- return "ALTA"
- elif magnitude > 1.5:
- return "MEDIA"
- else:
- return "BAJA"
- ```
- **Ejemplo de Salida:**
- ```
- ALERTA: ANOMALIA_DETECTADA
- ─────────────────────────────────────────
- Transacción: TX-2025-045821
- Ministerio: Salud
- Proveedor: MediSupply SA
- Monto: $8,500,000
- Fecha: 2025-03-20
- ANOMALY_SCORE: -2.8 (muy anómalo)
- SEVERIDAD: ALTA
- FEATURES ABERRANTES:
- ✗ Precio vs Mercado Ratio: 1.65 (esperado: 0.95-1.15)
- ✗ Porcentaje del Presupuesto: 8.2% (esperado: <2%)
- ✗ Días desde Licitación: 45 días (esperado: <10 días)
- ✓ Antigüedad Proveedor: OK (8 años en sistema)
- ✓ Número de Aprobaciones: OK (3 autorizaciones)
- RECOMENDACIÓN: Auditor revise por sobrepricing + ciclo temporal inusual
- ASIGNADO A: Auditor Senior - Juan García
- PRIORIDAD: ALTA
- ```
- #### 4.2.2 Modelo: Clasificación de Fraude (Fraud Classification)
- **Técnica:** XGBoost / Random Forest con datos etiquetados
- **Idea:** Entrenar modelo con transacciones históricas donde SE CONFIRMÓ fraude. El modelo aprende qué características típicamente indican fraude. Predice probabilidad de que nueva transacción sea fraude.
- **Implementación:**
- ```python
- import xgboost as xgb
- from sklearn.metrics import roc_auc_score, precision_recall_curve
- # PASO 1: PREPARAR DATOS CON ETIQUETAS
- # Transacciones 2020-2024 donde se confirmó fraude (label=1) o no (label=0)
- df_labeled = pd.read_csv("transacciones_con_etiqueta_fraude.csv")
- # Columnas: features + 'fraude' (0 o 1)
- # Features basadas en dominio de fraude
- features = [
- 'monto',
- 'precio_vs_mercado_ratio',
- 'concentration_score_proveedor', # Qué tan concentrado está en este proveedor
- 'funcionario_conflicto_interes', # 0/1: tiene conflicto
- 'proveedor_vinculado_a_oficial', # 0/1: vinculado a funcionario
- 'dias_entre_licitacion_pago',
- 'numero_licitaciones_participantes',
- 'historial_fraude_proveedor', # Score 0-1 de riesgo histórico
- 'antigüedad_proveedor',
- 'rotacion_funcionarios_aprobadores',
- 'dias_autorizado_vs_ejecutado',
- 'ciclo_temporal_outlier' # 0/1: patrón temporal sospechoso
- ]
- X = df_labeled[features]
- y = df_labeled['fraude']
- # PASO 2: ENTRENAR MODELO
- model = xgb.XGBClassifier(
- max_depth=6,
- learning_rate=0.1,
- n_estimators=200,
- scale_pos_weight=5, # Más peso a fraudes (que son minoría)
- random_state=42
- )
- model.fit(X, y, eval_set=[(X, y)], verbose=False)
- # Evaluar calidad
- y_pred_proba = model.predict_proba(X)[:, 1]
- auc = roc_auc_score(y, y_pred_proba)
- print(f"AUC del modelo: {auc:.3f}") # Objetivo: >0.85
- # PASO 3: USAR EN PRODUCCIÓN
- def evaluar_fraude_nueva_transaccion(transaccion):
- """Calcular probabilidad de fraude para cada transacción nueva"""
- x_new = extraer_features(transaccion)
- probabilidad_fraude = model.predict_proba([x_new])[0][1]
- if probabilidad_fraude > 0.7:
- return {
- 'riesgo': 'ALTO',
- 'probabilidad': probabilidad_fraude,
- 'accion': 'AUDITOR_REVISA_ANTES_DE_EJECUTAR'
- }
- elif probabilidad_fraude > 0.4:
- return {
- 'riesgo': 'MEDIO',
- 'probabilidad': probabilidad_fraude,
- 'accion': 'REVISAR_POST_EJECUCION'
- }
- else:
- return {
- 'riesgo': 'BAJO',
- 'probabilidad': probabilidad_fraude,
- 'accion': 'REGISTRAR_Y_MONITOREAR'
- }
- # Explicabilidad: qué features más influyeron
- import shap
- explainer = shap.TreeExplainer(model)
- shap_values = explainer.shap_values(X)
- # Para cada predicción podemos explicar: "Es alto riesgo porque X"
- ```
- **Output Ejemplo:**
- ```
- TRANSACCIÓN: TX-2025-046123
- PROBABILIDAD DE FRAUDE: 0.78 (ALTO RIESGO)
- FACTORES QUE AUMENTAN RIESGO:
- ↑↑ Proveedor tiene antecedente de fraude (score: 0.85)
- ↑↑ Funcionario tiene conflicto de interés declarado
- ↑ Precio 45% arriba del mercado
- ↑ Ciclo temporal outlier (fin de mes)
- FACTORES QUE REDUCEN RIESGO:
- ↓ Proveedor tiene 12 años en sistema (antigüedad)
- ↓ Número adecuado de licitantes (4 empresas)
- RECOMENDACIÓN: RECHAZO DE TRANSACCIÓN O AUDITORÍA PROFUNDA
- ```
- ### 4.3 Motor 3: Análisis de Redes (Network Analysis)
- **Concepto:** Grafos donde nodos son empresas/funcionarios, aristas son transacciones/relaciones. Detecta estructuras sospechosas (testaferría, carteles, ciclos de dinero).
- **Técnica:** Graph Neural Networks, detección de comunidades, análisis de centralidad.
- #### 4.3.1 Construcción del Grafo
- ```
- Nodo = Entidad (Empresa, Funcionario, Ministerio)
- Arista = Relación (transacción, accionariado, familia, oficina)
- EJEMPLO: Red de Testaferría
- Empresa A ─→ ($10M) ──→ Ministerio Salud
- ↑
- └─── Accionista: Sr. García ───→ [Funcionario F en Salud]
- Empresa B ─→ ($8M) ──→ Ministerio Educación
- ↑
- └─── Accionista: Sra. García (hermana de Sr. García)
- Empresa C ─→ ($5M) ──→ Ministerio Obras Públicas
- ↑
- └─── Accionista: Empresa A (circular)
- GRAFO DETECTADO:
- A ←→ B (accionista común) ←→ C (relación indirecta)
- A → Ministerio (dinero entra)
- B → Ministerio (dinero entra)
- C → Ministerio (dinero entra)
- Funcionario F ← García (familia)
- PATRÓN: Ciclo de 3+ empresas vinculadas que todas reciben dinero del Estado
- + funcionario con vínculos a accionistas
- = BANDERA ROJA: Posible red de corrupción
- ```
- #### 4.3.2 Algoritmos de Detección en Grafo
- **Algoritmo 1: Detección de Ciclos (Testaferría)**
- ```python
- import networkx as nx
- def detectar_ciclos_sospechosos(grafo, max_longitud_ciclo=5):
- """
- Encuentra ciclos en el grafo de empresas.
- Ciclos cortos = testaferría potencial
- """
- ciclos_encontrados = []
- # Encontrar todos los ciclos simples
- for ciclo in nx.simple_cycles(grafo, length_bound=max_longitud_ciclo):
- # Validar si es ciclo "sospechoso"
- empresa_beneficiada = None
- monto_total = 0
- accionistas_comunes = set()
- # Analizar cada arista del ciclo
- for i in range(len(ciclo)):
- empresa_actual = ciclo[i]
- empresa_siguiente = ciclo[(i + 1) % len(ciclo)]
- # ¿Esta empresa tiene accionistas comunes con la siguiente?
- accionistas_actual = grafo[empresa_actual]['accionistas']
- accionistas_siguiente = grafo[empresa_siguiente]['accionistas']
- comunes = accionistas_actual & accionistas_siguiente
- accionistas_comunes.update(comunes)
- # Si hay arista a Ministerio, registrar
- if empresa_siguiente.tipo == 'Ministerio':
- empresa_beneficiada = empresa_siguiente
- monto_total += empresa_actual.monto_recibido
- if accionistas_comunes: # Ciclo con accionistas comunes
- ciclos_encontrados.append({
- 'ciclo': ciclo,
- 'longitud': len(ciclo),
- 'accionistas_comunes': accionistas_comunes,
- 'monto_total': monto_total,
- 'severidad': 'CRÍTICA' if len(ciclo) <= 3 else 'ALTA'
- })
- return ciclos_encontrados
- ```
- **Algoritmo 2: Detección de Hubs (Concentración)**
- ```python
- def detectar_hubs_sospechosos(grafo):
- """
- Un 'hub' es un nodo central que conecta muchos otros.
- En contexto de corrupción: una empresa que recibe de muchos ministerios,
- o un funcionario que aprueba para muchos proveedores.
- """
- hubs_empresa = {}
- hubs_funcionario = {}
- for nodo in grafo.nodes():
- if nodo.tipo == 'Empresa':
- in_degree = grafo.in_degree(nodo) # Cuántos ministerios le pagan
- out_degree = grafo.out_degree(nodo) # Cuánto paga a otros
- if in_degree > 20 and nodo.monto_recibido > $100_000_000:
- monto_promedio = nodo.monto_recibido / in_degree
- hubs_empresa[nodo] = {
- 'ministerios_que_pagan': in_degree,
- 'monto_total': nodo.monto_recibido,
- 'monto_promedio_por_transaccion': monto_promedio,
- 'concentración': in_degree / len(grafo.nodes()) # % de economía
- }
- elif nodo.tipo == 'Funcionario':
- out_degree = grafo.out_degree(nodo) # Cuántas decisiones tomó
- empresas_favorecidas = set()
- for empresa, metadata in grafo[nodo].items():
- if metadata['relacion'] == 'APROBÓ':
- empresas_favorecidas.add(empresa)
- # Si un funcionario aprobó para pocas empresas (concentración)
- if out_degree > 50 and len(empresas_favorecidas) < out_degree * 0.2:
- hubs_funcionario[nodo] = {
- 'decisiones_totales': out_degree,
- 'empresas_favorecidas': len(empresas_favorecidas),
- 'concentración_empresas': len(empresas_favorecidas) / out_degree,
- 'severidad': 'ALTA' if len(empresas_favorecidas) < 5 else 'MEDIA'
- }
- return {'hubs_empresa': hubs_empresa, 'hubs_funcionario': hubs_funcionario}
- ```
- **Visualización:**
- ```
- Red de Empresas - Dashboard Interactivo
- Ministerio Salud
- ↓ ($500M)
- ┌────────┴────────┐
- ↓ ↓
- Empresa A Empresa B ← Mismo accionista
- ($200M/año) ($150M/año)
- ↓ ↓
- └────────┬────────┘
- ↓
- Empresa C (fantasma) ← Recibe 10% del dinero,
- ($30M/año) no produce nada documentado
- ↓
- [CICLO CERRADO] → FRAUDE PROBABLE
- Colores:
- 🔴 ROJO: Alta concentración, ciclos cerrados
- 🟠 NARANJA: Patrones sospechosos
- 🟢 VERDE: Operación normal
- ```
- ---
- ## 5. DASHBOARD DE AUDITORÍA AUTOMATIZADA
- ### 5.1 Pantalla Principal (para Analista/Auditor)
- ```
- ╔════════════════════════════════════════════════════════════════╗
- ║ DASHBOARD DE AUDITORÍA AUTOMATIZADA - AGN ║
- ╠════════════════════════════════════════════════════════════════╣
- ║ ║
- ║ ALERTAS DEL DÍA (20 de marzo, 2025) ║
- ║ ───────────────────────────────────────────────────────────── ║
- ║ ║
- ║ 🔴 CRÍTICAS (3) ⏰ Hace 2 horas ║
- ║ • TX-046821: Sobrepricing $8.5M - Ministerio Salud ║
- ║ • Red de Testaferría detectada (5 empresas) - $45M ║
- ║ • Funcionario F: Conflicto de interés en TX-046933 ║
- ║ ║
- ║ 🟠 ALTAS (8) ⏰ Hace 4 horas ║
- ║ • Ciclo temporal anómalo - Obra Pública ║
- ║ • Proveedor X: 85% de licitaciones ganadas ║
- ║ • [+5 más] ║
- ║ ║
- ║ 🟡 MEDIAS (12) ⏰ Hace 8 horas ║
- ║ • Precio +35% mercado - medicinas ║
- ║ • [+11 más] ║
- ║ ║
- ║ ───────────────────────────────────────────────────────────── ║
- ║ ║
- ║ ESTADÍSTICAS (últimos 30 días) ║
- ║ ║
- ║ Alertas totales: 847 ║
- ║ ├─ Críticas: 12 (1.4%) Validadas como fraude: 10 (83%) ║
- ║ ├─ Altas: 95 (11.2%) Validadas como fraude: 71 (75%) ║
- ║ ├─ Medias: 380 (44.9%) Validadas como fraude: 114 (30%) ║
- ║ └─ Bajas: 360 (42.5%) Validadas como fraude: 8 (2%) ║
- ║ ║
- ║ Casos derivados a Fiscalía: 87 ║
- ║ Casos en investigación: 43 ║
- ║ Casos cerrados (sin fraude): 201 ║
- ║ Fondos en riesgo identificados: $1.2 BILLONES ║
- ║ ║
- ╚════════════════════════════════════════════════════════════════╝
- ```
- ### 5.2 Vista de Detalle de Alerta
- ```
- ╔════════════════════════════════════════════════════════════════╗
- ║ ALERTA DETALLADA - TX-046821 ║
- ╠════════════════════════════════════════════════════════════════╣
- ║ ║
- ║ SEVERIDAD: 🔴 CRÍTICA ║
- ║ TIPO: Sobrepricing + Ciclo Temporal Sospechoso ║
- ║ FECHA DETECCIÓN: 20/03/2025 - 14:32:45 ║
- ║ ║
- ║ ─ TRANSACCIÓN ───────────────────────────────────────────── ║
- ║ ID: TX-046821 ║
- ║ Ministerio: Salud Pública ║
- ║ Dependencia: Hospital Nacional de Pediatría ║
- ║ Proveedor: MediSupply Solutions SA (CUIT: 30-71234567-9) ║
- ║ Producto: Amoxicilina 500mg - 10.000 unidades ║
- ║ Monto: $8,500,000 ║
- ║ Precio Unitario: $850 (Mercado: $530) = +60% ║
- ║ Fecha Compra: 28/03/2025 (ÚLTIMOS 2 DÍAS DEL MES) ⚠️ ║
- ║ ║
- ║ ─ ANÁLISIS AUTOMÁTICO ───────────────────────────────────── ║
- ║ ║
- ║ 1️⃣ ANOMALY SCORE: -2.95 (muy anómalo) ║
- ║ Features aberrantes: ║
- ║ • Precio vs Mercado: 1.60 (esperado: 0.95-1.15) ║
- ║ • Ciclo Temporal: 92% en últimos 3 días del mes ║
- ║ • Porcentaje presupuesto: 11.2% (esperado: <2%) ║
- ║ • Días desde licitación: 52 (esperado: <10) ║
- ║ ║
- ║ 2️⃣ PROBABILIDAD DE FRAUDE (XGBoost): 0.82 (ALTO) ║
- ║ Factores influyentes: ║
- ║ + Sobrepricing histórico de MediSupply: 35% promedio ║
- ║ + MediSupply ganó 7 de 9 licitaciones último año (78%) ║
- ║ + Director de Compras (Dr. García) aprobó todas 7 ║
- ║ - Proveedor tiene 6 años en sistema (antigüedad OK) ║
- ║ - Cantidad de licitantes fue adecuada (5 empresas) ║
- ║ ║
- ║ 3️⃣ ANÁLISIS DE RED: ║
- ║ MediSupply ← Accionista (oculto, encriptado) ║
- ║ ← Vinculación potencial a Dr. García: SIN REGISTRAR║
- ║ [REQUIERE INVESTIGACIÓN FORENSE] ║
- ║ ║
- ║ ─ CONTEXTO HISTÓRICO ─────────────────────────────────────── ║
- ║ ║
- ║ Transacciones de MediSupply (últimos 24 meses): ║
- ║ • 9 compras → Ministerio Salud = $45,200,000 ║
- ║ • Promedio precio vs mercado: +35% ║
- ║ • Tendencia: CRECIENTE (primer año: +20%, ahora +60%) ║
- ║ • Patrón: Siempre en últimos días de período ║
- ║ ║
- ║ Transacciones de Dr. García como aprobador: ║
- ║ • Total decisiones: 247 ║
- ║ • Aprobadas para MediSupply: 7 (2.8%) ║
- ║ • Tasa de aprobación: 100% (vs promedio 45%) ║
- ║ • Promedio montos MediSupply: $5.2M (vs promedio: $1.8M) ║
- ║ ║
- ║ ─ RECOMENDACIÓN ──────────────────────────────────────────── ║
- ║ ║
- ║ ACCIÓN: RECHAZAR TRANSACCIÓN + AUDITORÍA PROFUNDA ║
- ║ ║
- ║ Pasos siguientes: ║
- ║ 1. Auditor Senior valida hallazgos (manual) ║
- ║ 2. Si se confirma: Caso abierto formalmente ║
- ║ 3. Investigador Forense: Examinar accionistas MediSupply ║
- ║ 4. Investigador Fraude: Rastrear flujos de dinero ║
- ║ 5. Remitir a Fiscalía dentro de 5 días hábiles ║
- ║ ║
- ║ ─ ACCIONES DISPONIBLES ───────────────────────────────────── ║
- ║ ║
- ║ [✓ VALIDAR COMO FRAUDE] [◯ REVISAR MÁS] [✗ FALSO POSITIVO] ║
- ║ [📧 ENVIAR A AUDITOR] [📋 CREAR CASO] [💾 GUARDAR] ║
- ║ ║
- ╚════════════════════════════════════════════════════════════════╝
- ```
- ### 5.3 Vista de Red (Testaferría)
- ```
- ┌─ ANÁLISIS DE RED - Sospecha de Testaferría ──────────────────┐
- │ │
- │ Nodo: Ministerio Salud (central) │
- │ ├─► Empresa A ($200M) ────┐ │
- │ ├─► Empresa B ($150M) ────┼─ [ACCIONISTA COMÚN] ⚠️ │
- │ ├─► Empresa C ($100M) ────┤ │
- │ ├─► Empresa D ($80M) ────┘ │
- │ │ │
- │ └─► Empresa A ────► Empresa Z (intermediaria fantasma) │
- │ │ │
- │ └─► [CICLO CERRADO] $50M ⚠️⚠️ │
- │ │
- │ PATRÓN DETECTADO: │
- │ • 4 empresas reciben dinero del Ministerio │
- │ • 3 de ellas comparten accionistas │
- │ • Flujos de dinero cierran en ciclo (A→B→Z→A) │
- │ • Ciclo: Dinero estatal entra, sale mediante intermediarias │
- │ • Potencial: $50-100M desviados anualmente │
- │ │
- │ SEVERIDAD: CRÍTICA - Investigación Fiscal Recomendada │
- └────────────────────────────────────────────────────────────────┘
- ```
- ---
- ## 6. FLUJO DE VALIDACIÓN Y ESCALADA
- ### 6.1 Proceso: Alerta → Investigación → Denuncia
- ```
- PASO 1: ALERTA AUTOMÁTICA GENERADA
- └─ Algoritmo detecta anomalía
- Severity score calculado
- Caso creado en sistema
- ↓ (< 1 minuto)
- PASO 2: NOTIFICACIÓN A AUDITOR
- └─ Email + notificación en app
- Auditor recibe en bandeja "Pendiente Revisión"
- Debe actuar en plazo: 24 horas (crítica), 5 días (media)
- ↓
- PASO 3: AUDITOR REALIZA VALIDACIÓN INICIAL
- └─ Lee alerta automática
- Revisa contexto (histórico, transacciones similares)
- Tres opciones:
- A) VALIDAR COMO FRAUDE
- └─ Caso escala a "Investigación Formal"
- Investigador asignado
- B) MARCAR COMO "REQUIERE MÁS DATA"
- └─ Solicita información adicional
- Ejemplo: "Necesito justificación de por qué subió precio"
- Generador de transacción tiene 3 días para responder
- Si no responde o respuesta insuficiente → vuelve a A
- C) DESCARTAR COMO FALSO POSITIVO
- └─ Explica por qué es falso positivo
- Retroalimenta algoritmo
- Caso se cierra pero se registra
- (para mejorar precisión del modelo)
- ↓ (Si opción A)
- PASO 4: INVESTIGACIÓN FORMAL
- └─ Investigador asignado (forense, fraude, etc.)
- Recopila evidencia adicional:
- • Accionistas reales de proveedor
- • Historiales bancarios
- • Comunicaciones entre funcionarios
- • Documentación de licitación
- • Comparación con precios internacionales
- Duración estimada: 2-8 semanas
- ↓
- PASO 5: REPORTE DE INVESTIGACIÓN
- └─ Investigador redacta reporte de 10-30 páginas
- Estructura:
- • Resumen ejecutivo
- • Hechos observados
- • Marco legal violado
- • Evidencia recopilada
- • Cálculo de daño (monto defraudado)
- • Responsables identificados
- • Recomendaciones
- Revisión: Abogado + Auditor Senior + Director
- ↓
- PASO 6: REMISIÓN A FISCALÍA
- └─ Si se confirma delito:
- • Reporte + evidencia digital enviada a Fiscal especializado
- • Comunicación formal con protocolo de cadena de custodia
- • Seguimiento de caso
- ↓
- PASO 7: MONITOREO Y CIERRE
- └─ Seguimiento en Fiscalía (abierto vs cerrado)
- Resolución final registrada en sistema
- Si hay condena: entra en base de "sentencias confirmadas"
- Base alimenta modelo ML (mejora predicciones futuras)
- ```
- ### 6.2 SLA (Service Level Agreement) - Tiempos
- | Tipo Alerta | Tiempo a Validación | Tiempo a Investigación | Tiempo a Fiscal |
- |-------------|-------------------|----------------------|-----------------|
- | CRÍTICA | 24 horas | 2 semanas | 3 semanas |
- | ALTA | 3 días | 4 semanas | 5 semanas |
- | MEDIA | 5 días | 8 semanas | 10 semanas |
- | BAJA | 10 días | 12 semanas | N/A (si es falso positivo) |
- ---
- ## 7. MANEJO DE FALSOS POSITIVOS
- ### 7.1 El Problema: Precisión vs Sensibilidad
- ```
- DILEMA: ¿Qué es peor?
- A) FALSE POSITIVE (Falso Positivo)
- └─ Alerta por fraude que NO EXISTE
- Impacto: Auditor pierde tiempo, funcionario inocente sospechado
- Riesgo: Si muchos, sistema pierde credibilidad
- B) FALSE NEGATIVE (Falso Negativo)
- └─ Fraude REAL que no se detecta
- Impacto: Dinero público desviado, corruptor se escapa
- Riesgo: Es lo que queremos EVITAR
- ```
- ### 7.2 Estrategia de Balance
- **Objetivo:** Precision ≥ 70% (de 100 alertas, ≥70 son fraudes reales)
- **Método:**
- 1. **Threshold Variable por Severidad**
- ```
- CRÍTICA: threshold = 0.85 (muy conservador, pocos positivos)
- └─ Si modelo dice 85%+ probabilidad fraude: ALERTA
- ALTA: threshold = 0.65 (moderado)
- └─ Si modelo dice 65%+ probabilidad fraude: ALERTA
- MEDIA: threshold = 0.45 (liberal, más alertas pero más falsos)
- └─ Si modelo dice 45%+ probabilidad fraude: ALERTA
- ```
- 2. **Ensemble de Algoritmos**
- ```
- Una transacción genera alerta SOLO SI:
- • Motor 1 (Reglas): DISPARÓ
- Y
- • Motor 2 (ML): probabilidad > threshold
- Y
- • Motor 3 (Redes): detectó patrón sospechoso
- Si los 3 coinciden: confianza muy alta
- Si solo 1-2 disparan: necesita más validación manual
- ```
- 3. **Human-in-the-Loop**
- ```
- Auditor marca "Falso Positivo"
- ↓
- Sistema registra (transacción similar en futuro)
- ↓
- Modelo reentrenado (aprende qué NO es fraude)
- ↓
- Futuras alertas similares tienen score ajustado
- ```
- ### 7.3 Monitoreo de Precisión
- ```
- DASHBOARD DE CALIDAD DEL MODELO
- Semana: 2-8 de marzo, 2025
- Alertas generadas: 1,247
- ├─ Críticas: 15 → Validadas como Fraude: 14 (93% precision)
- ├─ Altas: 124 → Validadas como Fraude: 89 (72% precision)
- ├─ Medias: 658 → Validadas como Fraude: 198 (30% precision)
- └─ Bajas: 450 → Validadas como Fraude: 9 (2% precision)
- PRECISION PROMEDIO: (14+89+198+9) / 1,247 = 310/1,247 = 24.8%
- STATUS: ⚠️ BAJO - Necesita ajuste
- ACCIONES CORRECTIVAS:
- • Revisar qué hace que alertas MEDIA sean 70% falsos positivos
- • Probablemente threshold muy bajo para MEDIA
- • Propuesta: Aumentar threshold MEDIA de 0.45 a 0.55
- └─ Esto reduciría falsos positivos pero perdería algunos fraudes reales
- └─ Trade-off aceptable: mejor pocas alertas de alta calidad
- REENTRENAMIENTO PROGRAMADO:
- Próximo ciclo: 15 de marzo
- Input: últimas 1,000 transacciones etiquetadas
- Datos positivos (fraude confirmado): 310
- Datos negativos: 937
- Proporción: mejor balance
- ```
- ---
- ## 8. INTEGRACIÓN CON FISCALÍA
- ### 8.1 Protocolo de Remisión de Casos
- **Cuando se remite caso a Fiscal:**
- 1. **Documentación**
- - Reporte de 20-30 páginas
- - Evidencia digital (archivos, logs, blockchain hashes)
- - Declaraciones de testigos internos
- - Análisis financiero detallado
- 2. **Formato de Remisión**
- ```
- REMISIÓN A FISCALÍA
- Caso ID: INV-2025-001234
- Fiscal Especializado: Dra. María López
- Tribunal: Juzgado Penal Federal N°7
- HECHOS RESUMIDOS:
- Fraude en compra de medicinas. Proveedor "MediSupply SA"
- recibió $8.5M por medicinas con precio 60% arriba del mercado.
- Funcionario responsable aparentemente vinculado a accionistas.
- MONTOS INVOLUCRADOS:
- • Defraudación específica (TX-046821): $3.2M (diferencia de precio)
- • Defraudación total (24 meses historial): $28.7M
- RESPONSABLES IDENTIFICADOS:
- 1. Dr. Juan García (Funcionario, Ministerio Salud)
- 2. MediSupply SA (empresa contratada)
- 3. Accionistas de MediSupply (por confirmar)
- ARCHIVOS ADJUNTOS:
- • Reporte_Investigación_Final.pdf
- • Evidencia_Blockchain.zip (transacciones íntegras)
- • Análisis_Red_Testaferría.pdf
- • Comunicaciones_Internas.pdf
- CADENA DE CUSTODIA:
- [Hash criptográfico de todos los archivos]
- Verificable y no manipulable
- ```
- ### 8.2 Seguimiento y Coordinación
- **Sistema de Ticketing para Casos:**
- ```
- CASO: INV-2025-001234 - MediSupply Fraud
- Estado: REMITIDO A FISCALÍA
- Fecha Remisión: 15 de abril, 2025
- Fiscal: Dra. María López
- Juzgado: Penal Federal N°7
- TIMELINE:
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Abril 1: Investigación iniciada
- Abril 15: Reporte final completado
- Abril 16: Remisión a Fiscalía
- Mayo 10: Fiscal solicita documentación adicional
- Mayo 15: AGN proporciona datos (blockchain completo)
- Junio 1: Fiscal abre causa formal
- Junio 15: Citación de imputados
- Julio 1: [Esperando resolución]
- ACTUALIZACIONES:
- • [Hoy] Fiscal solicita: "¿Pueden confirmar monto real defraudado?"
- → AGN responde: "Confirmado en blockchain: $3.2M (TX específica)"
- → Estado: RESPONDIDO ✓
- ```
- ---
- ## 9. CAPACITACIÓN DE AUDITORES
- ### 9.1 Programa de Onboarding
- **Duración:** 12 semanas
- **Módulo 1 (Semana 1-2): Fundamentos**
- - Historia de fraude en administración pública
- - Tipos comunes de fraude (favoritismo, testaferría, sobrepricing)
- - Marco legal: qué es delito, qué no
- - Ética profesional y cadena de custodia
- **Módulo 2 (Semana 3-4): Herramientas Técnicas**
- - Dashboard de auditoría: navegación
- - Cómo leer alertas automáticas
- - Cómo interpretar anomaly scores
- - Herramientas de análisis: Excel, SQL queries básicas
- **Módulo 3 (Semana 5-6): Casos de Estudio**
- - Fraude real nº 1: Proveedor favorecido
- - Cómo fue detectado, cómo se investigó, resultado
- - Fraude real nº 2: Red de testaferría
- - Análisis de red, ciclos cerrados, investigación
- - Fraude real nº 3: Sobrepricing sistemático
- - Comparación de precios, análisis temporal
- **Módulo 4 (Semana 7-8): Redacción de Reportes**
- - Estructura de reporte investigativo
- - Cómo argumentar hallazgos
- - Cómo presentar evidencia
- - Prácticas: escribir reporte sobre caso ficticio
- **Módulo 5 (Semana 9-10): Coordinación Interinstitucional**
- - Protocolo con Fiscalía
- - Cómo se maneja cadena de custodia
- - Qué información es confidencial
- - Práctica: simular remisión de caso
- **Módulo 6 (Semana 11-12): Evaluación y Certificación**
- - Examen: caso real, deben detectar fraude
- - Presentación de investigación simulada
- - Certificación: aprobó/reprobó
- ### 9.2 Formación Continua
- **Cada trimestre:**
- - 1 caso de estudios nuevos
- - 1 capacitación sobre nuevas técnicas de fraude
- - 1 actualización de herramientas/sistemas
- ---
- ## 10. MÉTRICAS DE ÉXITO DEL PILAR 2
- ### 10.1 Métricas de Detección
- | Métrica | Baseline (Situación Actual) | Objetivo Año 3 | Fórmula |
- |---------|---------------------------|----------------|---------|
- | **Tiempo promedio de detección** | 5-7 años | <3 meses | (Fecha detección - Fecha inicio fraude) |
- | **Fraudes detectados/año** | ~5 (conocidos) | >50 | Casos confirmados por fiscal |
- | **Monto defraudado detectado/año** | ~$200M (histórico) | >$800M | Suma de montos de fraudes confirmados |
- | **Precision de alertas** | N/A | ≥70% | (Fraudes confirmados / Total alertas) |
- | **Recall (cobertura)** | Desconocido | ≥80% | (Fraudes detectados / Total fraudes reales) |
- ### 10.2 Métricas de Operación
- | Métrica | Target |
- |---------|--------|
- | **Tiempo Auditor por alerta CRÍTICA** | <2 horas |
- | **Tiempo a decisión (validar/descartar)** | SLA según severidad |
- | **Tasa de reentrenamiento de modelos** | Mensual |
- | **Disponibilidad del sistema** | 99.9% uptime |
- | **Cobertura de transacciones auditadas** | 100% (todas ingresadas) |
- ### 10.3 Métricas de Impacto
- | Métrica | Objetivo |
- |---------|----------|
- | **Casos derivados a Fiscalía/mes** | 5-10 |
- | **Tasa de condena de casos derivados** | ≥60% |
- | **Fondos recuperados/año** | $200-500M |
- | **Disuasión: Reducción de intentos de fraude** | Reducción >30% en patrones detectables |
- | **Confianza en el Estado** | Aumento de 15 puntos en encuestas |
- ---
- ## 11. COSTO OPERATIVO ANUAL (POST-IMPLEMENTACIÓN)
- | Concepto | Costo Anual |
- |----------|-------------|
- | **Salarios (35 personas)** | $80M |
- | **Infraestructura (servidores, networking)** | $12M |
- | **Licencias software (ML platforms, bases de datos)** | $8M |
- | **Auditoría externa + penetration testing** | $2M |
- | **Capacitación continua** | $1.5M |
- | **Viáticos/operación** | $1M |
- | **Contingencias (5%)** | $5.2M |
- | **TOTAL** | **$109.7M/año** |
- **Financiamiento:** Fondos recuperados (si Pilar 1 + 2 funcionan bien) pueden cubrir esto + expansión.
- ---
- ## 12. PRÓXIMOS PASOS Y VALIDACIÓN
- ### 12.1 Piloto Pre-Implementación
- Antes de escalar a todo el Estado:
- **Fase 0: Piloto (3 meses)**
- - Seleccionar 2 ministerios (Salud + Educación)
- - Histórico de 2 años de transacciones
- - Ejecutar motores de detección
- - Validar hallazgos contra investigaciones conocidas
- - Calibrar thresholds
- **Objetivo:** Demostrar que sistema detecta fraude real conocido
- ### 12.2 Validación con Expertos
- - Reunión con Auditor General actual
- - Reunión con Fiscal especializada en corrupción
- - Feedback de académicos en UBA/UNSAM
- - Ajustes basados en input
- ### 12.3 Implementación Gradual
- - Mes 1-3: Implementación Pilar 1 (Sistema de Información)
- - Mes 2-4 (paralelo): Construcción infraestructura Pilar 2
- - Mes 4-6: Operación piloto en 2 ministerios
- - Mes 6-12: Escalada a todos los ministerios nacionales
- - Mes 12+: Expansión a provincias
- ---
- ## CONCLUSIÓN
- El Pilar 2 convierte datos del Pilar 1 en inteligencia y acción. Combina:
- ✓ **Reglas basadas en expertise** (detecta fraude conocido rápidamente)
- ✓ **Machine Learning** (identifica patrones nuevos)
- ✓ **Análisis de Redes** (encuentra estructuras complejas de corrupción)
- ✓ **Humanos validadores** (evita falsos positivos, toma decisiones finales)
- **Impacto esperado:** Lo que tardaba 5-7 años en detectarse ahora se detecta en 1-3 meses.
- Del caso Hospital de Niños: Los $667K/mes defraudados habrían sido detectados EN LA PRIMERA SEMANA.
- ---
- # ÍNDICE
- - Plan Integral de Reforma Administrativa - Argentina
- https://pastebin.com/edit/Z19SsrUZ
- - Pilar 1: Sistema de Información Integrado del Estado Argentino
- https://pastebin.com/9gFV29Lj
- - Pilar 2: Sistema de Auditoría Automatizada y Análisis Predictivo
- https://pastebin.com/q9bqVE1W
- - Pilar 3: Reforma de la Auditoría General de la Nación (AGN)
- https://pastebin.com/5ppgN9Gj
- - Pilar 4: Juzgados Especializados en Corrupción Administrativa
- https://pastebin.com/ZxLkNvSH
- - Pilar 5: Sistema de Protección de Denunciantes
- https://pastebin.com/7QLN607D
- - Pilar 6: Transparencia y Participación Ciudadana
- https://pastebin.com/w51vGG4k
- <x777x>
- <x8888x>
- <x147x>
Advertisement