Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
signed-but-steerable — Medición y cierre de la brecha de integridad texto–vector en RAG sin conexión: ley de márgenes, auditorías de bases de datos vectoriales y verificación a nivel de código. | Kitploit
Herramientas/GitHubGitHub/securagenai/signed-but-steerable
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoPapers e InvestigaciónSeguridad de IA
GitHubsecuragenai/signed-but-steerable

signed-but-steerable

Medición y cierre de la brecha de integridad texto–vector en RAG sin conexión: ley de márgenes, auditorías de bases de datos vectoriales y verificación a nivel de código.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
41hace 2 díasAún no revisado
Compartir

Firmado pero manipulable: la brecha de integridad texto-vector en RAG offline

Código, datos y resultados del artículo Signed but Steerable: Measuring and Closing the Text-Vector Integrity Gap in Offline Retrieval-Augmented Generation (G. Feretzakis, A. Papaspyridis, securagen.ai).

DOI

Archivado en Zenodo: 10.5281/zenodo.23945569 (todas las versiones; release v1.0.2, citada en el artículo: 10.5281/zenodo.23948839). El identificador arXiv del artículo se añadirá cuando esté disponible.

Qué hay aquí

  • ragtrust/ biblioteca compartida, incluido codeverify.py, el verificador de referencia a nivel de código usado para cada resultado de verificación de código (la ambigüedad se decide únicamente a partir del recálculo del verificador; aceptación solo por vecinos; canonicalización).
  • desktop/ experimentos ejecutados en el escritorio: puntuación de abstención (E1) y su comprobación con MS MARCO, el ataque de desincronización de vectores y la ley de márgenes (E7), márgenes BEIR, exposición de bases de datos vectoriales, la demostración con FAISS, la verificación a nivel de código y el determinismo de las canalizaciones de coma flotante.
  • device/ experimentos ejecutados en la CPU del Raspberry Pi 5: poda de contexto (E2), el coste de la verificación junto al modelo de lenguaje (E4), embedding en el dispositivo y fidelidad INT8 (E5), el ataque de extremo a extremo (E7) y las actualizaciones de paquetes (E8).
  • analysis/ análisis, las comprobaciones de precisión y de unidades, y make_figures.py, que regenera las figuras.
  • data/ el corpus derivado de SQuAD, ventanas, preguntas y vectores; results/ salidas por experimento; tests/ pruebas unitarias; remote/ utilidades para controlar el Pi desde el escritorio (adaptar los nombres de host).
  • PROTOCOL.md hipótesis fijadas antes de la recogida de datos y el registro de desviaciones y análisis exploratorios. Los números de experimento siguen el protocolo; E3 y E6 no forman parte de esta release.
  • pins.json revisiones fijadas de modelos y herramientas.

Inicio rápido

  • Pruebas: python tests/test_codeverify.py.
  • Entorno de escritorio: bash desktop/setup_desktop.sh; figuras: python analysis/make_figures.py.
  • Experimentos en el dispositivo: un Raspberry Pi 5, Python con device/requirements_device.txt, y llama.cpp en el commit indicado en pins.json.

Ejecución de los experimentos en el dispositivo

En el Raspberry Pi, tras cp device/config.env.example device/config.env (adaptar las rutas) e instalar device/requirements_device.txt en venv_device:

  • Generación de E2 y E7: bash device/inner_generate.sh inicia llama-server y ejecuta k3_full (primeras 60 preguntas, comprobación de reproducibilidad), k5_ce3, k10_ce3, k10_ce5, k5_bi3, k5_ce3 con el selector INT8 en línea, y las configuraciones de E7; solo la configuración de extremo a extremo CPU-INT8: bash device/run_e7_cpu_int8.sh. Las variantes k5_ce3w, k3_ce3 y k3_ce3w se ejecutan con python device/e2_generate.py --config <name> mientras llama-server está en ejecución (iniciado como en device/inner_generate.sh). Una configuración se omite cuando existe results/e2/status_<name>.json; mueva esos archivos a otro sitio para regenerar los resultados publicados.
  • E4: python device/e4_contention.py; E5: python device/e5_reindex.py --backends ort-fp32,ort-int8 --batch 32 (el tamaño de lote de los resultados publicados: INT8 dinámico depende del lote, y lotes de 64 producen vectores distintos); E8: python device/e8_device_verify.py --vector-backend ort-fp32.
  • Desde el escritorio, remote/pi_sync.sh copia el repositorio al Pi y remote/pi_fetch.sh recupera los resultados.

Dónde están los números del artículo

  • Ley de margen en SQuAD (Tabla 2): results/e7/margin_law_squad.json; otros corpus y Fig. 1: results/e7/beir_margins.json y results/e7/margins/; exposición en el umbral de referencia CPU-INT8: results/e7/cpu_int8_exposure.json; comprobaciones de precisión numérica y de unidades: results/e7/margin_precision_check.json; calibración del umbral de referencia INT8 (cuantil exacto, ventanas honestas por debajo de él, recodificación bit a bit en lote 32): results/e5/int8_calibration_check.json (analysis/e5_int8_calibration_check.py).
  • Almacenes comprimidos: results/e7/vecdb_quant.json; auditoría de FAISS y ataque ejecutado: results/e7/faiss_integrity.json; presupuesto residual: results/e7/guard_budget.json.
  • Extremo a extremo en el dispositivo: results/e7/analysis.json (respuestas correctas y rechazos) y results/e7/e2e_checks.json (mismas preguntas, presupuesto angular, carga útil en el contexto top-3).
  • Poda de contexto (E2): results/e2/decomposition.json; coste junto al modelo de lenguaje (E4): results/e4/.
  • Figuras: results/figures/fig_margin_law.pdf (Fig. 1) y results/figures/fig_vdb.pdf (Fig. 2), regeneradas por analysis/make_figures.py.

No incluido

  • Pesos de modelos y grafos ONNX exportados (licencias): descargados y reconstruidos por los scripts en las revisiones fijadas.
  • Datos de BEIR y MS MARCO y vectores derivados (licencias): descargados por los scripts.
  • Archivos vectoriales grandes y cachés, regenerados por los scripts: results/e7/squad_question_vectors.npz (analysis/margin_law_squad.py) y results/e7/proxy_vectors.npz (analysis/margin_law.py).
  • Entradas intermedias regeneradas o descargadas por los scripts: results/e7/vecs/ (escrito por desktop/beir_margins.py), results/e7/scale_*.npy (escrito por los scripts de verificación de código), data/beir/ y artifacts/models/ (escrito por desktop/export_onnx.py).
  • Registros de ejecución.

Algunos scripts de análisis cargan cachés que ellos mismos crearon con numpy.load(..., allow_pickle=True); cargue dichos archivos solo desde sus propias ejecuciones, nunca desde fuentes no confiables.

Recursos de terceros

Los modelos, conjuntos de datos y sus licencias se enumeran en DATA_LICENSES.md. Cite también SQuAD 2.0 (Rajpurkar et al., 2018), BEIR (Thakur et al., 2021), MS MARCO (Bajaj et al., 2016), BGE-M3 (Chen et al., 2024) y Sentence-BERT (Reimers y Gurevych, 2019) cuando utilice las partes correspondientes.

Notas

  • FAISS se comporta según su diseño en todo momento: proporciona formatos de almacenamiento y búsqueda, no auditorías de integridad. El modelo de amenaza es un editor o escritor comprometido de los vectores almacenados, no un defecto de ninguna biblioteca o producto.
  • Este es código de investigación, proporcionado tal cual y sin garantía (véase LICENSE).
  • Raspberry Pi es una marca registrada de Raspberry Pi Ltd. Otros nombres de productos son marcas registradas de sus respectivos propietarios.

Licencia

Copyright 2026 securagen.ai P.C. MIT para el código y nuestros resultados; los datos derivados de SQuAD, los archivos de resultados que contienen texto de SQuAD y las respuestas generadas mantienen CC BY-SA 4.0; véase LICENSE y DATA_LICENSES.md para los detalles y para los términos de los otros conjuntos de datos y modelos.

Descargar herramienta