vamp-forensic-query
© VampSecure Studios — VampSecure Labs Security Research Division
Consultas forenses self-service sobre logs y eventos de usuario, sin necesidad de un LLM,
que generan por sí solas la evidencia lista para peritaje: informe firmado, cadena de custodia
(SHA-256 de las fuentes) y paquete ZIP a prueba de manipulación (MANIFEST.sha256).
Pensado para responder preguntas concretas de una investigación —"¿cuántos DNI distintos cambiaron la contraseña en 2026, cuáles y cuántas veces?", "dame la cronología exacta de esta cuenta"— de forma determinista y reproducible.
Cómo funciona
- Ingesta cualquier fuente tabular (CSV/XLSX) a un modelo normalizado de eventos
(entidad, tipo, acción, fecha_hora, IP, estado, fuente). - Clasifica la entidad automáticamente:
DNI(8 díg.+letra),NIE,CIF,email,IPv4. - Consulta con la CLI (sin IA):
distinct,top,timeline,events,sql. - Genera evidencia: por cada consulta escribe resultado (CSV+JSON), informe pericial HTML
(con la consulta reproducible, metodología, cadena de custodia y nota legal) y, con
--evidence, un ZIP firmado conMANIFEST.sha256de cada artefacto +cadena_de_custodia.json.
Consultas
| Consulta | Qué devuelve |
|---|---|
distinct |
Entidades distintas + nº de veces, primero/último evento, nº de IPs, y distribución por tipo |
top |
Como distinct pero solo reincidentes (--min-count N) |
timeline |
Cronología exacta (fecha-hora + IP + estado) de una entidad (--entity) |
events |
Todos los eventos que cumplen los filtros |
sql |
SELECT libre (solo lectura) sobre la tabla events |
Filtros
--action, --entity, --entity-type {DNI,NIE,CIF,email,IPv4,otro}, --ip, --year,
--from/--to (YYYY-MM-DD), --min-count.
Mapeo de columnas
Con --map rol=columna o un perfil reutilizable (--profile cliente.json):
{ "sep": ";", "action_const": "password_change",
"map": { "entity": "Usuario", "ts": "CreatedAt", "ip": "Datos" } }
--action-const fija la acción para toda la fuente (útil si el fichero es de un solo tipo de evento,
p. ej. un export de cambios de contraseña). --sep re-divide fuentes cuyos campos vienen en una sola
columna.
Ejemplos
# Cuántos DNI distintos cambiaron contraseña en 2026 (+ evidencia firmada)
vamp_forensic_query.py Contrasenas.xlsx distinct \
--profile cliente.json --year 2026 --entity-type DNI \
--case "CASO-2026-001" --analyst "Perito — VampSecure Labs" --evidence
# Cronología exacta de una cuenta
vamp_forensic_query.py Contrasenas.xlsx timeline --profile cliente.json --entity 11723541G
# Reincidentes (>=4 eventos) de todos los tipos, con evidencia
vamp_forensic_query.py Contrasenas.xlsx top --profile cliente.json --action password_change \
--year 2026 --min-count 4 --evidence
# Consulta libre
vamp_forensic_query.py Acceso.csv sql --map entity=Usuario ts=Fecha ip=IP \
--sql "SELECT ip, COUNT(DISTINCT entity) n FROM events GROUP BY ip HAVING n>=3 ORDER BY n DESC"
Salida de evidencia
Cada consulta con --evidence produce en --out:
consulta_<UTC>.json— resultado + metadatos + consulta reproducible + cadena de custodiaconsulta_<UTC>.csv— resultado tabuladoconsulta_<UTC>.html— informe pericialconsulta_<UTC>_evidencia.zip— paquete sellado (MANIFEST.sha256+cadena_de_custodia.json)
Integridad: cualquier alteración de un byte de las fuentes cambia su SHA-256 y rompe la cadena
de custodia; cualquier alteración de un artefacto rompe su hash en el MANIFEST. Los resultados son
verificables reejecutando la consulta indicada sobre ficheros de idéntico hash.
Requisitos
- Python 3.9+ (stdlib). Para fuentes
.xlsx:pip install pandas openpyxl.
Prefijo de hallazgos
No aplica (es una herramienta de consulta/evidencia, no de detección). Complementa a
vamp-log-analyzer (detección FORA-NNN) aportando la capa de consulta ad-hoc + evidencia.
Metadata
Release files for vamp-forensic-query 1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vamp_forensic_query-1.2.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vamp_forensic_query-1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.0 kB
Release files / vamp_forensic_query-1.2.tar.gz
| Download URL | vamp_forensic_query-1.2.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a1d8bc46a8d722c1211df477c0db735b8b52c61cdaef1d4e9799d4f564e6b65
|
|
BLAKE2b-256 checksum How to use checksums |
7023375fa8197e1c297edc93681dae094d2103c5b567f49e139cb50dec02b6fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / vamp_forensic_query-1.2-py3-none-any.whl
| Download URL | vamp_forensic_query-1.2-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
adf8d8464ec0a9d991628f856bc3096d8632825b4292aa16de1d1f3a85d54323
|
|
BLAKE2b-256 checksum How to use checksums |
80f0993f973b4e2b505d2219936a5497d4779a4a29f5cfb16204f3f5fa9961f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|