← Lumbre

Desarrollo de Software con IA Detective de código: siete señales de alerta en lo que genera la IA

Portada de Detective de código: siete señales de alerta en lo que genera la IA

Detective de código: siete señales de alerta en lo que genera la IA

✦ No necesitas leer código como programador para detectar código peligroso: necesitas las siete señales · Desarrollo de Software con IA · 9 minutos que valen la pena

Roadwise Consulting

Contenido modificado tras su publicación

Objetivo: Aplicar una lista de señales (secretos en texto, SQL concatenado, permisos abiertos, sin validación) a código ajeno.

9 min Desarrollo de Software con IA 15–99 años
Modo PPTX
Más
Detective de código: siete señales de alerta en lo que genera la IA

Herramientas de la lección

Sorpréndeme

Sobre este contenido

Ir a

Volver a Módulo 21 · Cuando NO debes confiar en la IA Cursos Explorar Mi cuenta Salir del modo estudio

Detective no es programador: es quien trae la lista

La IA te devolvió el login y funciona. Pero "funciona" no es "es seguro": el código generado puede funcionar exactamente porque hace las cosas mal —guardar la contraseña en texto plano para poder compararla, quitar el permiso para que no salga error—. Tu ventaja como builder: no necesitas entender cada línea; necesitas escanear con lista de señales, como un inspector de vivienda que no construyó la casa pero sabe dónde huele a humedad.

La rutina de escaneo: cuatro pasadas

  1. Pasada 1 · Textos sueltos

    busca con ctrl-f: password, secret, key, token, api. Si hay valores junto a estas palabras dentro del código, señal 1 encendida.

  2. Pasada 2 · Bases de datos

    ¿el SQL tiene comillas con más o llaves? ¿o solo signos de interrogación con parámetros separados?

  3. Pasada 3 · Puertas y permisos

    ¿quién puede llegar a cada ruta? Rutas sin chequeo de sesión/rol, CORS con estrella: señal encendida.

  4. Pasada 4 · Silencios

    bloques que atrapan errores sin hacer nada, logs con datos crudos. Lo que calla el código también habla.

Las siete señales

Las siete las puedes buscar sin leer código: son palabras, símbolos y ausencias. Un escaneo de dos minutos con la lista encuentra más que una hora de lectura intuitiva.
#SeñalCómo se vePor qué duele
1Secretos en el códigoconst API_KEY = "sk-abc123…" a la vista en un archivoviaja al repo, a la copia, al navegador: filtración eterna
2SQL cosido con másWHERE email = ' + correo + 'la puerta clásica del SQL injection (M10)
3Validación solo del lado de afuerael required está en el formulario y no en el servidorcualquiera llega al servidor con una petición directa
4Permisos en abiertoruta de borrado/edición sin chequear quién esel usuario 2 borra al usuario 1 "porque funciona"
5Errores tragadoscatch { } vacío: si algo falla, nadie se entera jamásel fallo silencioso es el bug que nunca se arregla
6CORS con estrella en algo con sesiónaccess-allow-origin para todo el mundo en rutas privadasinvita a otros sitios a montar tu API (M10-OA02)
7Datos personales al logel log imprime correo, teléfono o la petición completala bitácora se vuelve la filtración que no atacaron

Escena del crimen: veinte líneas, cinco señales

Un solo pantallazo: cinco de las siete señales activas

javascript
const API_KEY = "sk-prod-9f2c8a1b…";            // senal 1: secreto en el codigo\n\napp.get("/busca", (req, res) => {\n  const q = req.query.q;\n  // senal 2: SQL cosido con +\n  const sql = "SELECT * FROM clientes WHERE nombre LIKE '%" + q + "%'";\n  db.run(sql, (err, rows) => {\n    if (err) { }                                    // senal 5: error tragado\n    console.log("busqueda:", q, rows);              // senal 7: datos al log\n    res.json(rows);\n  });\n});\n\n// senal 6: cors estrella en ruta con sesión\napp.use((req, res, next) => {\n  res.setHeader("Access-Control-Allow-Origin", "*");\n  next();\n});\n\n// senal 4: la ruta de arriba no chequeo quien es: cualquiera busca todos los clientes
Fíjate en la sutileza de la señal 4: no hay línea que diga "sin permiso"; la señal es la AUSENCIA de dos líneas que debían estar. Por eso el escaneo busca también lo que falta, no solo lo que está.

Para reforzar

Prueba

En el código del ejemplo, un atacante escribe como búsqueda: ' OR 1=1 -- . ¿Qué ocurre por la señal 2?

La señal 5 (catch vacío) solo es un problema estético: el error igual ocurrió.

Detecta el escaneo mal hecho

Cuatro alumnos revisan código generado antes de aceptarlo. Señala el escaneo que NO encuentra las siete señales:

Marca la línea o las líneas con error y pulsa Comprobar.

Pasa el escaneo de cuatro pasadas al último archivo crítico que la IA te generó (login, subida de archivos o el que toque datos). Anota las señales encontradas —o "cero señales" con la evidencia de cada pasada— y pídele la corrección de cada una con la señal nombrada: «tienes SQL cosido con más (señal 2); paramétrizalo».

La desconfianza con lista es inspección; sin lista es mala onda.

Tu texto se guarda sólo en este dispositivo.

Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.
Más sobre esta lección

Comentarios

Inicia sesión para comentar.

Todavía no hay comentarios. Sé la primera persona en opinar.