Denisijcu commited on
Commit
3d88f42
·
verified ·
1 Parent(s): 8e5417d
Files changed (1) hide show
  1. README.md +477 -0
README.md CHANGED
@@ -13,4 +13,481 @@ pinned: false
13
 
14
  DECI is a high-performance, privacy-first backend API designed to detect advanced AI bots, cognitive mimicry attacks, and credential stuffing in real time.
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  Developed by **Vertex Coders LLC**. *Offensive by design. Defensive by nature.* 🛡️🔥
 
13
 
14
  DECI is a high-performance, privacy-first backend API designed to detect advanced AI bots, cognitive mimicry attacks, and credential stuffing in real time.
15
 
16
+ > **PoH Engine · Sprint 1 MVP · Vertex Coders LLC**
17
+
18
+ ![Version](https://img.shields.io/badge/version-0.1.0--sprint1-red)
19
+ ![Status](https://img.shields.io/badge/status-MVP%20%2F%20Research-yellow)
20
+ ![Stack](https://img.shields.io/badge/stack-FastAPI%20%2B%20Qdrant%20%2B%20Python-blue)
21
+ ![License](https://img.shields.io/badge/license-MIT-green)
22
+
23
+ ---
24
+
25
+ ## ¿Qué es DECI?
26
+
27
+ DECI es un motor experimental de **autenticación cognitiva continua**. En vez de preguntar *"¿qué sabes?"* (contraseña) o *"¿qué tienes?"* (token), DECI pregunta *"¿cómo piensas mientras escribes?"*
28
+
29
+ Analiza señales de comportamiento en tiempo real — latencia entre teclas, patrones de corrección, micro-pausas — y genera un **Trust Score (0.0 → 1.0)** que indica si quien está escribiendo es un humano real o un bot automatizado.
30
+
31
+ ```
32
+ Score >= 0.65 → HUMAN ✓
33
+ Score 0.40-0.65 → SUSPECT ⚠
34
+ Score < 0.40 → BOT ✗
35
+ ```
36
+
37
+ > **Nota importante:** Este es un MVP de investigación (Sprint 1). Los números de precisión no están validados con datos reales todavía. Ver sección [Estado actual del proyecto](#estado-actual-del-proyecto).
38
+
39
+ ---
40
+
41
+ ## Screenshots
42
+
43
+ | Dashboard | Session Analyzer |
44
+ |-----------|-----------------|
45
+ | ![Dashboard](docs/screenshots/dashboard.png) | ![Analyzer](docs/screenshots/analyzer.png) |
46
+
47
+ | Red Team Lab | Signal Analysis |
48
+ |-------------|-----------------|
49
+ | ![Attacks](docs/screenshots/attacks.png) | ![Signals](docs/screenshots/signals.png) |
50
+
51
+ ---
52
+
53
+ ## Arquitectura
54
+
55
+ ```
56
+ ┌─────────────────────────────────────────────────────────┐
57
+ │ DECI Architecture │
58
+ ├─────────────────────────────────────────────────────────┤
59
+ │ │
60
+ │ Browser/Client │
61
+ │ ┌──────────────────────┐ │
62
+ │ │ deci-dashboard.html │ ← Dashboard HTML (single │
63
+ │ │ (Keystroke capture) │ file, sin dependencias) │
64
+ │ └──────────┬───────────┘ │
65
+ │ │ POST /session/analyze │
66
+ │ │ POST /attack/simulate/ghosting │
67
+ │ ▼ │
68
+ │ ┌──────────────────────┐ │
69
+ │ │ FastAPI (Python) │ ← PoH Engine, port 8000 │
70
+ │ │ app/main.py │ │
71
+ │ │ app/core/engine.py │ ← Scoring logic │
72
+ │ └──────────┬───────────┘ │
73
+ │ │ │
74
+ │ ▼ │
75
+ │ ┌──────────────────────┐ │
76
+ │ │ Qdrant │ ← Cognitive DNA Vault │
77
+ │ │ (Vector DB) │ port 6333 │
78
+ │ └──────────────────────┘ │
79
+ │ │
80
+ └─────────────────────────────────────────────────────────┘
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Estructura del proyecto
86
+
87
+ ```
88
+ deci-prototype/
89
+ ├── docker-compose.yml # Levanta FastAPI + Qdrant
90
+ ├── Dockerfile # Container de la API
91
+ ├── .env # Variables de entorno
92
+ ├── requirements.txt # Dependencias Python
93
+
94
+ ├── app/
95
+ │ ├── main.py # Punto de entrada FastAPI
96
+ │ ├── core/
97
+ │ │ ├── engine.py # PoH Engine — corazón del sistema
98
+ │ │ ├── config.py # Configuración global
99
+ │ │ └── security.py # JWT + Shadow Mode
100
+ │ ├── api/
101
+ │ │ ├── endpoints/
102
+ │ │ │ ├── session.py # POST /session/analyze
103
+ │ │ │ └── attack.py # POST /attack/simulate/ghosting
104
+ │ │ └── schemas/
105
+ │ │ └── telemetry.py # Modelos Pydantic — el Contrato
106
+ │ ├── database/
107
+ │ │ └── qdrant_vault.py # Cognitive DNA Vault
108
+ │ └── tests/
109
+ │ └── deepseek_lab/ # Red Team attack suite
110
+ │ ├── mimicry_attack_v2.py
111
+ │ ├── ghosting_attack.py
112
+ │ ├── forced_errors.py
113
+ │ ├── entropy_scanner.py
114
+ │ ├── benchmark.py
115
+ │ └── results/
116
+
117
+ ├── scripts/
118
+ │ └── setup_db.py # Inicializa colección Qdrant
119
+
120
+ └── deci-dashboard.html # Dashboard completo (single file)
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Instalación y arranque rápido
126
+
127
+ ### Requisitos previos
128
+
129
+ - [Docker Desktop](https://www.docker.com/products/docker-desktop/) instalado y corriendo
130
+ - Python 3.11+ (solo para el red team lab)
131
+ - Un browser moderno (Chrome, Firefox, Edge)
132
+
133
+ ### Paso 1 — Clonar el repo
134
+
135
+ ```bash
136
+ git clone https://github.com/tu-usuario/deci-prototype.git
137
+ cd deci-prototype
138
+ ```
139
+
140
+ ### Paso 2 — Configurar variables de entorno
141
+
142
+ ```bash
143
+ cp .env.example .env
144
+ # El .env por defecto funciona para desarrollo local
145
+ # Cambia SECRET_KEY en producción
146
+ ```
147
+
148
+ ### Paso 3 — Levantar el backend
149
+
150
+ ```bash
151
+ docker-compose up
152
+ ```
153
+
154
+ Deberías ver algo así:
155
+
156
+ ```
157
+ deci_vault | Qdrant HTTP listening on 6333
158
+ deci_core | INFO: Uvicorn running on http://0.0.0.0:8000
159
+ deci_core | [DECI] Cognitive Vault ready — collection: cognitive_dna
160
+ ```
161
+
162
+ ### Paso 4 — Abrir el dashboard
163
+
164
+ Tienes dos opciones:
165
+
166
+ **Opción A — Directo en el browser (más simple):**
167
+ ```bash
168
+ # Windows
169
+ start deci-dashboard.html
170
+
171
+ # Mac
172
+ open deci-dashboard.html
173
+
174
+ # Linux
175
+ xdg-open deci-dashboard.html
176
+ ```
177
+
178
+ **Opción B — Con servidor local (recomendado, evita CORS):**
179
+ ```bash
180
+ # Si tienes Python
181
+ python -m http.server 5500
182
+ # Abrir: http://localhost:5500/deci-dashboard.html
183
+
184
+ # Si tienes Node
185
+ npx serve .
186
+ # Abrir: http://localhost:3000/deci-dashboard.html
187
+ ```
188
+
189
+ ### Paso 5 — Verificar que todo funciona
190
+
191
+ El topbar del dashboard debe mostrar `● OPERATIONAL` en verde.
192
+
193
+ Si muestra `● API OFFLINE`, verifica que `docker-compose up` esté corriendo.
194
+
195
+ ---
196
+
197
+ ## Guía de uso del Dashboard
198
+
199
+ ### Tab 1 — Dashboard
200
+
201
+ Vista general en tiempo real. Muestra:
202
+
203
+ - **Métricas** — conteo de sesiones Human / Suspect / Bot / Calibrating
204
+ - **Score distribution** — histograma de scores de las últimas sesiones
205
+ - **Attack detections** — chart de ataques detectados vs bypassed (datos del Sprint 1)
206
+ - **Live session feed** — feed en tiempo real de sesiones entrantes
207
+
208
+ Las sesiones del feed en modo demo son simuladas. Cuando conectas el Session Analyzer, las sesiones reales aparecen aquí.
209
+
210
+ ### Tab 2 — Session Analyzer
211
+
212
+ **El corazón del sistema.** Aquí puedes probar DECI con tu propia escritura.
213
+
214
+ **Cómo usarlo:**
215
+
216
+ 1. Click en **Start** — el textarea se activa
217
+ 2. **Escribe cualquier cosa** — un párrafo, texto libre, lo que sea. Mínimo 10 keystrokes, ideal 80+
218
+ 3. Click en **Analyze** — el payload se envía al engine
219
+ 4. El resultado aparece a la derecha con:
220
+ - **Verdict** (HUMAN / SUSPECT / BOT)
221
+ - **Score** (0.0 → 1.0)
222
+ - **Confidence** — qué tan seguro está el engine
223
+ - **Signal breakdown** — por qué tomó esa decisión
224
+
225
+ **Importante:** Con menos de 50 keystrokes el IKL Entropy es inestable. Para resultados confiables escribe al menos 2-3 oraciones completas.
226
+
227
+ **¿Qué mide mientras escribes?**
228
+
229
+ | Señal | Peso | Lo que detecta |
230
+ |-------|------|----------------|
231
+ | IKL Entropy | 30% | Variabilidad en el tiempo entre teclas. Los humanos tienen distribución lognormal. Los bots tienen distribución normal o constante. |
232
+ | Corrections | 25% | Patrones de backspace. Los humanos cometen errores en ráfagas orgánicas. Los bots no cometen errores o los distribuyen uniformemente. |
233
+ | Pauses | 15% | Micro-pausas (>800ms). Los humanos pausan antes de palabras difíciles. Los bots generan de forma lineal. |
234
+ | Speed | 15% | Velocidad en CPM. Rango humano: 150-600 CPM. |
235
+ | Fatigue | 15% | ¿Se simplifica el vocabulario con el tiempo? Los humanos se cansan. Los bots no. |
236
+
237
+ ### Tab 3 — Red Team Lab
238
+
239
+ **El laboratorio de DeepSeek.** Simula ataques contra el engine para probar su robustez.
240
+
241
+ #### Ghosting Attack
242
+
243
+ Simula un bot que intenta imitar latencia humana. Cuatro niveles de sofisticación:
244
+
245
+ | Nivel | Técnica | Score esperado | ¿Pasa? |
246
+ |-------|---------|----------------|--------|
247
+ | L1 — Constant | Delay fijo de 100ms | ~0.08 | ❌ BOT |
248
+ | L2 — Gaussian | Noise gaussiano | ~0.22 | ❌ BOT |
249
+ | L3 — Bimodal | Clusters rápido+lento | ~0.44 | ❌ SUSPECT |
250
+ | L4 — Lognormal | Distribución biológica + bursts + fatiga | ~0.60 | ⚠ SUSPECT |
251
+
252
+ **Cómo correrlo:**
253
+ 1. Seleccionar el nivel en el dropdown
254
+ 2. Opcionalmente cambiar el texto objetivo
255
+ 3. Click **Run Attack** — el payload se envía al endpoint real de Gemini
256
+ 4. El resultado aparece en el Attack Log
257
+
258
+ **Full Suite** corre los 4 niveles en secuencia automáticamente.
259
+
260
+ #### Forced Errors
261
+
262
+ Testea si el engine detecta la ausencia de correcciones orgánicas:
263
+
264
+ - **Variant A** — Cero correcciones (clásico tell de LLM) → detectado
265
+ - **Variant C** — Fake burst (ataque sofisticado) → SUSPECT
266
+ - **Variant E** — Bursts posicionados óptimamente → SUSPECT
267
+
268
+ #### Replay Attack
269
+
270
+ Visualiza el scatter de cosine similarity. El threshold de detección es 0.92 — sesiones con similarity mayor son flaggeadas como replay.
271
+
272
+ ### Tab 4 — Signal Analysis
273
+
274
+ Análisis técnico de las señales:
275
+
276
+ - **Signal weights** — donut chart con el peso de cada señal en el score final
277
+ - **Human vs Bot radar** — comparación de perfil cognitivo humano real vs bot L4
278
+ - **DeepSeek V1 vs V2** — evolución del ataque a través de versiones
279
+ - **Signal definitions** — definición técnica de cada señal
280
+
281
+ ---
282
+
283
+ ## Red Team Lab — Correr los ataques desde Python
284
+
285
+ Además del dashboard, puedes correr los ataques directamente desde Python:
286
+
287
+ ```bash
288
+ # Instalar dependencias
289
+ pip install -r requirements.txt
290
+
291
+ # Asegúrate de que docker-compose up está corriendo
292
+ # Luego:
293
+
294
+ # Ataque simple
295
+ python app/tests/deepseek_lab/mimicry_attack_v2.py --version v2 --target gemini
296
+
297
+ # Con texto largo (más confiable)
298
+ python app/tests/deepseek_lab/mimicry_attack_v2.py \
299
+ --version v2 \
300
+ --target gemini \
301
+ --text "Intento de acceso no autorizado al nucleo VIC de Vertex Coders usando patron cognitivo avanzado de nivel cuatro"
302
+
303
+ # Benchmark completo V1 vs V2
304
+ python app/tests/deepseek_lab/mimicry_attack_v2.py --benchmark --runs 10
305
+
306
+ # Suite completa de DeepSeek
307
+ python app/tests/deepseek_lab/benchmark_v2.py --verbose --iterations 20
308
+ ```
309
+
310
+ Los resultados se guardan en `app/tests/deepseek_lab/results/`.
311
+
312
+ ---
313
+
314
+ ## API Endpoints
315
+
316
+ Con el backend corriendo, la documentación interactiva está en:
317
+ **http://localhost:8000/docs**
318
+
319
+ ### Endpoints principales
320
+
321
+ #### `POST /session/analyze`
322
+
323
+ Analiza una sesión de telemetría y devuelve un PoH verdict.
324
+
325
+
326
+
327
+ ```json
328
+ // Request
329
+ ### POST /session/analyze
330
+ Analiza la telemetría conductual. **Importante:** Requiere mínimo 15 eventos para un veredicto confiable.
331
+
332
+ // Request (Esquema TelemetryPayload)
333
+ {
334
+ "session_id": "SESS-001",
335
+ "events": [
336
+ { "key": "v", "timestamp": 1000.0 },
337
+ { "key": "e", "timestamp": 1150.0 }
338
+ ],
339
+ "metadata": {
340
+ "total_chars": 20,
341
+ "total_corrections": 0
342
+ }
343
+ }
344
+
345
+ // Response
346
+ {
347
+ "verdict": "HUMAN",
348
+ "score": 0.8561,
349
+ "confidence": 0.90,
350
+ "signal_scores": {
351
+ "entropy": 0.85,
352
+ "cv": 0.15,
353
+ "corrections": 0.05
354
+ }
355
+ }
356
+
357
+
358
+ ```
359
+
360
+ #### `POST /attack/simulate/ghosting`
361
+
362
+ Endpoint del red team. Simula un ataque de ghosting y devuelve el verdict del engine.
363
+
364
+ ```json
365
+ // Request
366
+ {
367
+ "session_id": "atk-001",
368
+ "events": [
369
+ { "key": "A", "timestamp": 1700000000100 },
370
+ { "key": "c", "timestamp": 1700000000200 }
371
+ ]
372
+ }
373
+
374
+ // Response
375
+ {
376
+ "session_id": "atk-001",
377
+ "entropy_score": 0.43,
378
+ "score": 0.51,
379
+ "verdict": "SUSPECT",
380
+ "signal_breakdown": { ... }
381
+ }
382
+ ```
383
+
384
+ #### `GET /health`
385
+
386
+ ```json
387
+ { "api": "ok", "vault": "ok", "shadow_mode": true }
388
+ ```
389
+
390
+ #### `DELETE /session/{user_id}/dna`
391
+
392
+ Elimina todo el Cognitive DNA de un usuario. Cumplimiento GDPR Art. 17.
393
+
394
+ ---
395
+
396
+ ## Variables de entorno (.env)
397
+
398
+ ```bash
399
+ # API
400
+ APP_ENV=development # development | production
401
+ SECRET_KEY=change_me_please # JWT secret — cambia esto en producción
402
+
403
+ # Qdrant
404
+ QDRANT_HOST=qdrant # nombre del servicio en docker-compose
405
+ QDRANT_PORT=6333
406
+ QDRANT_COLLECTION=cognitive_dna
407
+
408
+ # PoH Engine thresholds
409
+ POH_HUMAN_THRESHOLD=0.65 # score >= este valor → HUMAN
410
+ POH_SUSPECT_THRESHOLD=0.40 # score entre 0.40-0.65 → SUSPECT
411
+ POH_ENTROPY_MIN=1.8 # entropía mínima para clasificar como humano
412
+ POH_CALIBRATION_SESSIONS=3 # sesiones requeridas antes de activar validación completa
413
+
414
+ # Shadow Mode — en true, el engine observa pero NO bloquea
415
+ SHADOW_MODE=true
416
+ ```
417
+
418
+ ---
419
+
420
+ ## Estado actual del proyecto
421
+
422
+ ### ✅ Completado (Sprint 1)
423
+
424
+ - PoH Engine funcional con 5 señales cognitivas
425
+ - Cognitive DNA Vault (Qdrant) con GDPR erasure
426
+ - API FastAPI completa con documentación automática
427
+ - Red Team framework (DeepSeek attack suite)
428
+ - Dashboard HTML completo con 4 módulos
429
+ - Shadow Mode para calibración sin bloqueo
430
+ - Cold start detection (período de calibración)
431
+ - Docker Compose con Qdrant + FastAPI
432
+
433
+ ### ⚠️ Limitaciones conocidas (Sprint 1)
434
+
435
+ - **No validado con datos reales** — los thresholds (0.65, 0.40) fueron elegidos por lógica, no por datos estadísticos de usuarios reales
436
+ - **IKL Entropy inestable con < 50 keystrokes** — textos cortos dan entropy cercana a 0
437
+ - **Sin ZK-Proofs** — la capa de privacidad avanzada está planificada para Sprint 2
438
+ - **Sin P2P Mesh** — los nodos validadores están planificados para Sprint 2
439
+ - **Sin WebSocket** — el dashboard usa polling/simulación, no conexión en vivo
440
+
441
+ ### 🔜 Sprint 2 (planificado)
442
+
443
+ - ZK-Proof layer para privacidad absoluta
444
+ - LibP2P validation mesh
445
+ - Adaptive PoH challenges (se adaptan cuando un ataque los rompe)
446
+ - WebSocket para feed en tiempo real
447
+ - Validación con dataset de 50+ usuarios reales
448
+
449
+ ---
450
+
451
+ ## Equipo
452
+
453
+ | Rol | Responsabilidad |
454
+ |-----|-----------------|
455
+ | **Denis Sanchez Leyva** (CEO, Vertex Coders) | Producto, arquitectura general, FastAPI, dashboard |
456
+ | **Claude** (Anthropic) | PoH Engine design, privacy layer, API architecture |
457
+ | **Gemini** (Google) | Infrastructure, Qdrant integration, node mesh design |
458
+ | **DeepSeek** | Offensive security, attack suite, cognitive mimicry testing |
459
+
460
+ ---
461
+
462
+ ## Contribuir
463
+
464
+ Este proyecto está en fase de investigación activa. Si quieres contribuir:
465
+
466
+ 1. Fork el repo
467
+ 2. Crea un branch: `git checkout -b feature/nombre-del-feature`
468
+ 3. Commit tus cambios: `git commit -m 'feat: descripción'`
469
+ 4. Push: `git push origin feature/nombre-del-feature`
470
+ 5. Abre un Pull Request
471
+
472
+ **Áreas donde más se necesita ayuda:**
473
+ - Recolección de datos reales para validar thresholds
474
+ - Mejoras al PoH Engine (nuevas señales cognitivas)
475
+ - Ataques nuevos para el red team lab
476
+ - Tests unitarios
477
+
478
+ ---
479
+
480
+ ## Licencia
481
+
482
+ MIT License — ver [LICENSE](LICENSE) para detalles.
483
+
484
+ ---
485
+
486
+ ## Disclaimer
487
+
488
+ DECI es un proyecto de investigación en desarrollo activo. **No usar en producción** sin validación previa con datos reales de tu caso de uso específico. Los números de precisión en el artículo de lanzamiento son estimados teóricos, no métricas validadas.
489
+
490
+
491
+ ---
492
+
493
  Developed by **Vertex Coders LLC**. *Offensive by design. Defensive by nature.* 🛡️🔥