No soy ningún experto en ciberseguridad, pero la Inteligencia Artificial me está ayudando a mejorar todos los días en ello. He preparado una batería de pruebas exhaustiva para poder auditar mis trabajos y descubrir qué vulnerabilidades tienen.
Tengo claro que el resultado nunca será perfecto. En seguridad informática no existe nada 100% seguro. Nuestro objetivo real es poner suficientes candados para que a los bots y atacantes les resulte demasiado difícil entrar y decidan buscar un servidor más fácil de penetrar.
No pretendo dar lecciones a nadie, en esto sigo siendo un estudiante, pero compartir este tipo de auditorías quizá nos ayude a todos a mejorar un poco nuestra seguridad. Lo importante no es volverse inexpugnable, sino solamente menos penetrable.
Gracias a la IA, hoy puedo entregar trabajos mejores y mucho más seguros.
Nota de Transparencia Tecnológica: La IA ha ayudado, basándose en mis comentarios, a dar formato y corrección a estas líneas.
Ciberseguridad #InteligenciaArtificial #SeguridadInformatica #DesarrolloWeb #CleanCode #IA #AuditoriaWeb #Programacion #MejoraContinua #AprenderAProgramar #DesarrolloDeSoftware #Tech #OWASP #HackingEtico
-
Auditoría de Seguridad Inyectada y Aislamiento en Subidas (Gatekeeper)
Riesgo CríticoDirectiva: Revisa el ciclo de vida completo de la carga de documentos de usuario desde la petición HTTP hasta el almacenamiento final.
Criterio de Brecha: Alojamiento directo de documentos externos en directorios del núcleo operativo sin validación de esquema ni aislamiento temporal.
Mitigación: Arquitectura de cuarentena obligatoria de múltiples capas (validación UTF-8, rechazo de ejecutables, verificación de esquema) en directorios aislados sin permisos de ejecución.
-
Fuga de Credenciales en Código Fuente
Riesgo CríticoDirectiva: Escanea la base de código fuente buscando asignaciones estáticas de claves criptográficas, contraseñas o tokens de proveedores externos.
Criterio de Brecha: Mantenimiento de credenciales de alto privilegio escritas en texto plano «en duro» dentro de archivos versionados o lógica de la aplicación.
Mitigación: Segregación total de credenciales mediante el uso exclusivo de archivos de configuración protegidos fuera del alcance público o variables de entorno.
-
Inyección SQL Directa (SQLi) por Inputs del Formulario
Riesgo CríticoDirectiva: Analiza los vectores de transferencia de datos desde peticiones de clientes hacia operaciones de consulta, modificación o borrado de base de datos.
Criterio de Brecha: Construcción de sentencias SQL mediante la interpolación directa o concatenación dinámica de variables originadas en el exterior de la aplicación.
Mitigación: Adopción dogmática de sentencias preparadas (Prepared Statements) con tipado forzado y parametrización vinculada para desarmar instrucciones ejecutables.
-
Drenaje Billetera de Tokens API (Denial of Wallet – DoS)
Riesgo CríticoDirectiva: Audita todos los endpoints de API que conecten con servicios o modelos de terceros facturados por consumo.
Criterio de Brecha: Endpoints expuestos públicamente sin validación de sesión previa que permitan la ejecución automatizada infinita de solicitudes.
Mitigación: Inyección de validación forzosa en cada controlador externo exigiendo tokens estrictos de sesión y limitadores de cuota asociados a la IP.
-
Robo de Sesiones por Predictibilidad Criptográfica (Session Hijacking)
Riesgo Muy AltoDirectiva: Examina las funciones encargadas de generar identificadores de sesión, tokens de recuperación y semillas aleatorias.
Criterio de Brecha: Uso de algoritmos pseudoaleatorios matemáticamente predecibles (como Math.random()) para la generación de identificadores críticos.
Mitigación: Reemplazo por APIs de criptografía fuerte irrompible (ej. window.crypto.getRandomValues) para garantizar una entropía impredecible.
-
LFI (Local File Inclusion) y Path Traversal
Riesgo Muy AltoDirectiva: Escanea la manipulación de parámetros dinámicos utilizados para resolver o incluir rutas de archivos locales en el servidor.
Criterio de Brecha: Ausencia de desinfección contra secuencias de salto de directorio o inclusión de terminadores nulos dinámicos desde la entrada del usuario.
Mitigación: Filtros de expresiones regulares estrictas que destruyan explícitamente caracteres de navegación (/, \, .., \0).
-
Inyección de HTML y JavaScript (XSS) e Inyección Pasiva (Stored XSS)
Riesgo AltoDirectiva: Escanea controladores de frontend y backend responsables de la renderización de datos buscando métodos de inserción directa en el DOM y almacenamiento sin sanitizar.
Criterio de Brecha: Uso del método .innerHTML o concatenación directa de cadenas en la base de datos que permita la inyección de etiquetas maliciosas.
Mitigación: Implementación estricta de la API del DOM (document.createElement() y .textContent) combinada con limpieza de inputs y sentencias preparadas (PDO).
-
Inyección de Instrucciones (Prompt Injection & Jailbreak)
Riesgo AltoDirectiva: Rastrea el flujo de datos entre los inputs de los usuarios y el motor de procesamiento lógico o de Inteligencia Artificial de terceros.
Criterio de Brecha: Paso directo de cadenas de texto proporcionadas por el usuario hacia el procesador sin un filtro previo que detecte comandos de alteración de comportamiento.
Mitigación: Despliegue de un filtro bidireccional estricto que evalúe y descarte cualquier mensaje con intentos de manipulación de reglas antes de procesarlo.
-
Sobreescritura Masiva de Memoria (Mass Payload Crash / DoS)
Riesgo AltoDirectiva: Inspecciona los controladores de carga de documentos y endpoints de ingesta de contenido en memoria RAM.
Criterio de Brecha: Lectura o procesamiento de archivos entrantes antes de validar su peso o tamaño real contra la memoria asignada al proceso.
Mitigación: Bloqueo físico en la primera línea de ejecución que destruya cualquier petición superior a un límite estricto (ej. strlen() máximo) antes de leer el archivo.
-
Indicios de Backdoor por Regex Roto (Firewall)
Riesgo AltoDirectiva: Analiza las reglas de expresiones regulares en archivos de configuración del servidor diseñados para bloquear ejecuciones anómalas.
Criterio de Brecha: Uso de sintaxis defectuosa (ej. .* $) que permita la evasión de filtros y la ejecución de scripts maliciosos encubiertos.
Mitigación: Corrección a sintaxis universal de anclaje (^.*$) y directivas de forzado de tipos MIME inofensivos (ForceType text/plain) en directorios de subida.
-
IDOR de Documentos Privados (Lectura de Borradores)
Riesgo AltoDirectiva: Analiza el modelo de control de acceso a la lectura de entidades de base de datos o documentos con diferentes estados de visibilidad.
Criterio de Brecha: Posibilidad de acceder directamente a un recurso mediante su identificador, omitiendo la verificación de su estado de publicación o pertenencia.
Mitigación: Incorporación de una barrera pre-evaluadora obligatoria que corte el acceso si la entidad no cuenta con un flag de estado público verificado.
-
Exposición de Instrucciones del Sistema (Falta de Arquitectura File-Based)
Riesgo AltoDirectiva: Estudia la ubicación de almacenamiento de la lógica de negocio, secretos de sistema o directivas de procesadores algorítmicos.
Criterio de Brecha: Tránsito de reglas críticas y de comportamiento operativo alojadas en el código fuente frontend, posibilitando ingeniería inversa masiva.
Mitigación: Despliegue de una arquitectura aislada gestionada por el servidor, ocultando la lógica confidencial en archivos locales sin acceso directo desde el navegador.
-
Falsificación de Sesión en Endpoints Satélites (Token Laxo)
Riesgo AltoDirectiva: Estudia la validación de tokens de estado o sesión en endpoints secundarios o módulos auxiliares de la plataforma.
Criterio de Brecha: Aceptación de tokens de sesión con comprobación de simple existencia sin validación de esquema, longitud o entropía.
Mitigación: Exigencia matemática y de expresión regular estricta en el formato de los tokens entrantes para descarte inmediato en capa superficial.
-
Evasión de Políticas Base (Ausencia de Escudos Estructurales)
Riesgo AltoDirectiva: Inspecciona las validaciones de los controladores de carga de documentos antes de inyectarlos al sistema algorítmico principal.
Criterio de Brecha: Omisión de verificación estructural interna que permita que archivos ingresen al sistema sin los bloques mandatorios de directivas de seguridad.
Mitigación: Motor guardián que exija y compruebe la presencia obligatoria de los bloques de políticas núcleo antes de aprobar su integración.
-
Bypass de Limitación de Tasa (Rate Limit Spoofing)
Riesgo AltoDirectiva: Analiza los mecanismos de control de tráfico y bloqueo de solicitudes repetitivas en los endpoints de API.
Criterio de Brecha: Confianza exclusiva en la cabecera HTTP Host o cabeceras falsificables (X-Forwarded-For) para identificar la fuente, permitiendo evasión de límites.
Mitigación: Configuración de un escudo perimetral fundamentado en la dirección IP real (REMOTE_ADDR) vinculada a un hash del identificador de sesión.
-
Denegación de Servicio por Timeout (Gateway / Conexión Inicial)
Riesgo AltoDirectiva: Analiza integraciones backend que efectúan llamadas a APIs o servicios externos para verificar el control de latencias y handshakes.
Criterio de Brecha: Ejecución de clientes HTTP sin límites de tiempo explícitos, permitiendo que el proceso quede atascado indefinidamente esperando respuestas externas.
Mitigación: Configuración obligatoria de tiempos máximos de conexión y respuesta (ej. CURLOPT_CONNECTTIMEOUT, CURLOPT_TIMEOUT) y abortos controlados de conexión.
-
CORS y API Expuesta (CSRF)
Riesgo AltoDirectiva: Evalúa las cabeceras de políticas de intercambio de recursos cruzados en todos los endpoints de API.
Criterio de Brecha: Configuración permisiva con comodines (Access-Control-Allow-Origin: *) en endpoints con capacidad de alteración de estado.
Mitigación: Restricción paramétrica estricta de orígenes permitidos, limitando el acceso exclusivamente al dominio oficial de producción.
-
Fuga de Información del Servidor (Information Disclosure)
Riesgo ModeradoDirectiva: Verifica la configuración del entorno respecto al manejo de excepciones, caídas y logs expuestos.
Criterio de Brecha: Ausencia de supresión de errores que permita imprimir en pantalla rutas físicas secretas, directorios locales o fallos de sintaxis.
Mitigación: Inserción de directivas globales de silenciado como error_reporting(0); e ini_set(‘display_errors’, 0); garantizando un fallo silencioso.
-
Desestabilización Continua (Warnings / Linter Errors)
Riesgo Bajo-ModeradoDirectiva: Revisa las declaraciones de variables de entorno y constantes de configuración a lo largo del flujo de ejecución del backend.
Criterio de Brecha: Presencia de constantes rígidas no validadas o variables indefinidas que generen advertencias, colapsando buffers de memoria.
Mitigación: Implementación de variables condicionales y comprobaciones de existencia (defined(‘CTE’) ? CTE : ‘fallback’) para un entorno libre de errores estáticos.
-
DoS por Truncamiento Estricto de Base de Datos
Riesgo ModeradoDirectiva: Evalúa las rutinas de inserción de datos hacia entidades de base de datos con límites fijos de longitud (VARCHAR, TEXT).
Criterio de Brecha: Paso de cargas de texto no dimensionadas directamente al motor de base de datos, provocando excepciones fatales (Error 500) por exceso de tamaño.
Mitigación: Recortes automáticos a nivel de lenguaje de servidor (mb_substr()) para encajar la carga antes de la inserción.
-
Censura por Colisión (Arbitrary IDOR File Overwrite)
Riesgo ModeradoDirectiva: Verifica la lógica de guardado físico de la carga de documentos de usuario en el sistema de archivos del servidor.
Criterio de Brecha: Nombramiento de archivos basados en el título original sin sufijos de unicidad, posibilitando la sobreescritura inadvertida.
Mitigación: Fusión de los nombres de archivo entrantes con una semilla de generación matemática basada en tiempo y entropía (ej. uniqid()).
-
Desgaste Concurrente en Fase de Registro (Condition Race TOCTOU)
Riesgo ModeradoDirectiva: Estudia la concurrencia en los procesos de creación de entidades de base de datos o registro de usuarios.
Criterio de Brecha: Lógica secuencial separada de «Verificar si existe» e «Insertar», que colapsa ante peticiones simultáneas idénticas (Duplicate Entry).
Mitigación: Adopción de un paradigma de inserción de base de datos atómico (INSERT INTO… ON DUPLICATE KEY UPDATE).
-
Protección contra Listado de Directorios y Acceso a Configuración
Riesgo ModeradoDirectiva: Verifica las directivas de seguridad pasiva del servidor web (Apache, Nginx) relativas a rutas y archivos nucleares.
Criterio de Brecha: Configuración por defecto que permita enumerar contenidos de directorios sin indexar o descargar archivos de configuración sensibles.
Mitigación: Implementación de escudos de denegación global para listados (Options -Indexes) y bloqueo absoluto a archivos sensibles.
-
Corrupción de Respuesta JSON por Fallos SQL no Capturados
Riesgo ModeradoDirectiva: Analiza la gestión de excepciones de persistencia de datos (PDO/SQL) en los endpoints de servicios API.
Criterio de Brecha: Propagación de excepciones nativas de base de datos sin manejar que aborten la ejecución emitiendo trazas HTML o cadenas vacías.
Mitigación: Aislamiento perimetral del motor de base de datos bajo bloques try/catch, forzando siempre la devolución de un objeto JSON estructurado válido.
-
Auditoría de Integridad contra Caracteres Destructivos y Bytes Nulos
Riesgo ModeradoDirectiva: Inspecciona las rutinas de lectura de codificación en la ingesta de documentos de usuario textuales.
Criterio de Brecha: Procesamiento a ciegas de archivos con codificaciones anómalas o bytes nulos que puedan corromper las funciones del backend.
Mitigación: Escudo de integridad que fuerce el rechazo de flujos de datos que no cumplan estrictamente la codificación estándar (ej. UTF-8 válida).
-
Desbordamiento por Envío Masivo de Archivos (Spam/DoS)
Riesgo ModeradoDirectiva: Audita los límites de ingesta volumétrica en los canales de recepción de documentos de usuario.
Criterio de Brecha: Ausencia de control temporal o limitación en frecuencia de subida por origen, posibilitando el agotamiento de almacenamiento o CPU.
Mitigación: Integración de limitadores de tasa por ventana de tiempo (Rate Limiter) bloqueando orígenes temporalmente tras cuotas específicas.
-
Asfixia de Procesos por Límite de Ejecución Global (Timeout de Servidor)
Riesgo ModeradoDirectiva: Verifica las cuotas de tiempo de ejecución del intérprete backend para procesos que requieran integraciones asíncronas lentas.
Criterio de Brecha: Dependencia de las directivas globales que matan silenciosamente procesos transaccionales extensos antes de finalizar tareas críticas.
Mitigación: Declaración explícita de límites de tiempo de vida de proceso (max_execution_time) para garantizar la compleción de rutinas de alta latencia.
-
Explotación de Código Muerto u Obsoleto (Archivos Huérfanos)
Riesgo ModeradoDirectiva: Ejecuta una revisión del árbol de directorios y el mapeo de dependencias de los endpoints de API expuestos.
Criterio de Brecha: Presencia de controladores heredados o módulos depreciados que generen superficies de ataque o excepciones fatales.
Mitigación: Auditoría y purga forense del código, realineando toda consulta huérfana encontrada a las nuevas convenciones de base de datos.
-
Prevención de Errores Fatales por Tipado (Objects vs Arrays)
Riesgo ModeradoDirectiva: Audita el manejo de estructuras de datos transformadas procedentes de peticiones JSON y servicios externos.
Criterio de Brecha: Interacción inconsistente con flujos de datos asumiendo tipos erróneos (intentar operar arrays como objetos), detonando fallos irrecuperables.
Mitigación: Estandarización forzosa en los parámetros de las funciones decodificadoras asegurando una manipulación coherente del árbol de propiedades.
-
Corrupción de API por Fuga de Alertas (Redefinición de Constantes)
Riesgo BajoDirectiva: Evalúa las directivas de inclusión dinámica y declaraciones de constantes en endpoints que emiten respuestas estructuradas (JSON).
Criterio de Brecha: Re-declaración de elementos que provoquen inyecciones de texto de advertencia dentro del payload, rompiendo los decodificadores del cliente.
Mitigación: Despliegue de comprobaciones condicionales inteligentes (if (!defined(…))) asegurando salidas de datos limpias y sin artefactos.
-
Conflictos de Cabeceras HTTP (CORS Headers Duplicados)
Riesgo BajoDirectiva: Rastrea las declaraciones de emisión de cabeceras HTTP a lo largo del flujo de carga de módulos y dependencias.
Criterio de Brecha: Emisión superpuesta de cabeceras operativas (CORS, Content-Type) desde múltiples archivos, provocando colisión e invalidez.
Mitigación: Arquitectura de delegación centralizada donde la emisión de cabeceras de control recae exclusivamente en el endpoint de salida final.
-
Condición de Carrera en el Frontend (JavaScript Race Condition)
Riesgo Bajo-ModeradoDirectiva: Examina la sincronización de las peticiones asíncronas en interfaces de cliente durante procesos transaccionales compuestos.
Criterio de Brecha: Emisión paralela de instrucciones de lectura sin esperar confirmación de escrituras críticas previas, generando bloqueos por datos ausentes.
Mitigación: Implementación de flujos secuenciales apoyados en sincronización asíncrona (async/await) bloqueando ejecuciones secundarias hasta el retorno principal.
-
Denegación de Servicio por Falso Positivo de Seguridad (LFI)
Riesgo BajoDirectiva: Audita la precisión de los filtros de expresiones regulares (WAF/Regex) en los parámetros de recuperación de entidades.
Criterio de Brecha: Reglas draconianas que descartan caracteres seguros (espacios, acentos), bloqueando el acceso legítimo al contenido.
Mitigación: Calibración de los escudos permitiendo caracteres estándar pero prohibiendo secuencias exclusivas de navegación patológica.
-
Desincronización de Identificadores (Bug de Regresión)
Riesgo BajoDirectiva: Verifica la consistencia de los identificadores de persistencia devueltos por el backend contra las peticiones de búsqueda del frontend.
Criterio de Brecha: Discrepancia entre la representación física en la base de datos y la solicitada por el cliente, provocando estados inaccesibles.
Mitigación: Estandarización de las consultas entrantes mediante la aplicación de rutinas limpiadoras de formato que unifiquen la lógica de emparejamiento.