Andrez Higuera / AppSec

LABORATORIO PROPIO

Informe de muestra

Una muestra sanitizada del laboratorio LAB-APPSEC-001: evidencia de ejecución local, corrección y límites del resultado.

EVIDENCIA PARA REVISAR

Del hallazgo
a la siguiente
acción.

Un informe ejecutivo y técnico con evidencia, impacto, corrección recomendada y límites. La muestra permite ver qué se observó y qué se volvió a comprobar.

  • Aplicación, versión y operaciones identificadas
  • Evidencia sanitizada y resultado esperado
  • Recomendación y criterio de revalidación
  • Cobertura y responsabilidades explícitas

La muestra usa un laboratorio propio deliberadamente inseguro y datos ficticios. La ejecución de las pruebas es real; no corresponde a un cliente.

Ver matriz y límites del informe
LABORATORIO PROPIOLAB-APPSEC-001

Acceso a documentos ajenos

Evidencia funcional local · Python 3.12.14

RESULTADO REGISTRADO

La identidad no basta.
También importa la pertenencia.

ANTES · VULNERABLE10/14Contratos seguros cumplidos

DESPUÉS · CORREGIDO14/14Contratos seguros cumplidos

Cuatro fallos deliberados: lectura cruzada en ambos sentidos y listados con documentos ajenos. Se ejecutaron 14 casos por versión, 28 ejecuciones en total.

Cierre acotado La corrección pasa los casos definidos. Estos cocientes no son un porcentaje de seguridad de una aplicación.

MUESTRA SANITIZADA DEL INFORME

LAB-APPSEC-001 · Autorización horizontal por recurso

Registro: 9 de octubre de 2026, 20:43:17 UTC.
Entorno: Python 3.12.14, funciones locales sin red.

En la versión deliberadamente vulnerable, validar una identidad reconocida y el formato del identificador no comprueba el derecho a leer ese documento. La corrección exige coincidencia de propietario y aplica la misma política al listado. Se conserva el acceso legítimo de ambos usuarios.

Contratos seguros por grupo de pruebas
CasosComprobaciónAntesDespués
T01–T02Lectura propia, estado y cuerpo correctos2/22/2
T03–T04Lectura cruzada sin contenido ajeno0/22/2
T05–T06Lectura sin identidad válida2/22/2
T07Recurso inexistente1/11/1
T08–T09Formato o tipo de identificador no admitido2/22/2
T10–T11Listado limitado a documentos propios0/22/2
T12–T13Listado sin identidad válida2/22/2
T14Sin identidad y recurso inexistente1/11/1
Total de contratos seguros cumplidos10/1414/14

Evidencia y trazabilidad

El registro relaciona before.py y after.py con los 14 casos de verify.py. La matriz y las observaciones conservan resultados esperados y observados, incluidos los cuerpos completos. El manifiesto SHA-256 permite comprobar integridad; por sí solo no acredita autoría ni fecha.

El verificador termina con código 0 porque reproduce los cuatro fallos esperados antes del cambio y exige todos los contratos después. Ese código no significa que la versión vulnerable sea segura.

Qué se puede concluir

El hallazgo queda corregido y revalidado para las dos funciones y los datos ficticios del laboratorio. No hay datos reales expuestos ni un cliente afectado. No demuestra seguridad de sesiones, infraestructura, roles verticales o tenants, ni autoriza un release.

En un proyecto real, desarrollo implementa la política, QA/AppSec verifica los casos acordados y el responsable del sistema decide sobre el despliegue. Las responsabilidades concretas se acuerdan con el equipo.

Fuente: laboratorio propio LAB-APPSEC-001, matriz y observaciones registradas; muestra de informe de autorización por recurso, versión 1.0. Esta página presenta la evidencia sanitizada y no distribuye la implementación vulnerable.