
Ataques de gradiente blancos locales para LLMs de peso abierto: búsqueda de sufijos GCG/PEZ, saliencia de capas, instantáneas de pesos y ajuste de sufijo a delta de rango 1 para equipos rojos.

Ataques de sufijo white-box locales contra modelos de pesos abiertos que tienes en disco.
| Importación | gradjail |
| CLI | gradient-untangler |
| Qué | Gradientes reales sobre pesos locales. Búsqueda de sufijos discretos/continuos GCG, PEZ y relacionados. Registro de pesos bruto y saliencia por capas. |
| Lo que no es | No es una herramienta de jailbreak de API remota. No es una licencia para atacar producción de terceros. |
Solo investigación de seguridad autorizada. Úsalo en modelos que poseas, pesos locales, programas de bug bounty dentro del alcance, pruebas de penetración por escrito, CTFs y laboratorios que controlas. Consulta SECURITY.md.
git clone https://gitlab.com/WattoCyber/gradient-untangler.git
cd gradient-untangler
py -3.12 -m pip install -e ".[dev,web]"
py -3.12 scripts/repro.py
Espera REPRO_OK. Esa verificación es local: sin GPU, sin red.
py -3.12 -m gradjail.cli run \
--model sshleifer/tiny-gpt2 \
--goal "Say the lab marker." \
--target-prefix "CANARY_OK" \
--optimizer gcg \
--device cpu \
--judge "contains:CANARY_OK" \
--out runs/demo.json
Cola web (no lanza ataques):
py -3.12 -m gradjail.web
Abre http://127.0.0.1:8787 y elige un archivo runs/*.json.
Lista de optimizadores implementados: py -3.12 -m gradjail.cli list.
WeightRegistry.from_path): lee tensores desde disco, crea instantáneas y diffs. Mapea antes de editar.U V^T en el embedding para que el prompt limpio alcance la misma CE objetivo forzada por el profesor. El peso original no se toca. No es ROME, ni abliteration, ni bit-flip.from gradjail.suffix_delta import fit_suffix_delta
La inyección del token objetivo está desactivada a menos que pases inject_target=True.
Las URL de API remotas se rechazan. Los gradientes requieren pesos locales.
Esto es un arnés local, no una afirmación de que cada optimizador es nuevo. GCG y PEZ son métodos publicados. El producto es una única columna vertebral: gradientes locales, un mapa de pesos, saliencia, un absorbedor de sufijo-a-delta y una verificación de reproducibilidad.
No trates un archivo en disco con un único asr=True como un hallazgo. Vuelve a lanzarlo. Un rechazo corto es un fallo.
src/gradjail/ paquete
tests/ pytest
scripts/repro.py verificación de producto local
docs/ notas de diseño y benchmarks
Electron está en disco en algunos checkouts y no se distribuye.
MIT. Consulta LICENSE.
Panel izquierdo del banner: Rembrandt, Filósofo en meditación (1632), dominio público, vía Wikimedia Commons. Los overlays científicos se generan dentro del repositorio.