Blog · Ciberseguridad

Construyo software pensando como un atacante (y por qué deberías exigirlo)

📅 30 jun 2026⏱ 5 min de lectura✍ Diego Navarro Roca

Antes de escribir software profesionalmente, ya rompía el de otros. Vengo del pentesting —me saqué el HTB CPTS y el CDSA, el Ethical Hacker de Cisco— y eso me cambió la forma de programar para siempre. Cuando construyo, no me pregunto solo "¿funciona?". Me pregunto "¿cómo rompería yo esto?".

La diferencia entre "funciona" y "aguanta"

La mayoría del software se construye para el camino feliz: el usuario hace lo que se espera y todo va bien. Pero los atacantes no van por el camino feliz. Mandan datos que no tocan, manipulan IDs, prueban a entrar donde no deben. Si solo pruebas que algo funciona, te queda la mitad del trabajo.

Pensar como atacante es asumir, desde el primer commit, que alguien va a intentar abusar de cada formulario, cada endpoint y cada permiso. Y construir en consecuencia.

Qué cambia cuando programas así

Cada permiso se comprueba en el servidor

No basta con que el botón "borrar" no se vea: hay que verificar en el backend que ese usuario tiene derecho a esa acción y sobre ese recurso. Es la diferencia entre una app segura y un IDOR esperando a ser explotado.

Nunca te fías de lo que llega del cliente

Cualquier dato que venga del navegador o de una app es "hostil" hasta que lo validas. La autoría de un recurso la decide el servidor con el usuario autenticado, no un campo que manda el cliente.

Los secretos y la configuración se tratan como secretos

Nada de claves en el código, nada de DEBUG=true en producción, nada de documentación interna expuesta. La configuración de despliegue es tan importante como el código.

Defensa en profundidad

Cabeceras de seguridad, expiración de tokens, hashing fuerte de contraseñas, HTTPS de extremo a extremo. Ninguna es la solución por sí sola; juntas hacen que romperlo cueste mucho más.

Y con la IA, más todavía

Hoy mucho código nace de un asistente de IA. Es rápido y útil, pero genera el camino feliz y se deja la seguridad por el camino. Por eso reviso el código generado con IA con la misma mirada con la que haría un pentest: buscando el agujero antes de que lo encuentre otro.

Qué exigirle a quien desarrolla tu producto

No hace falta que seas técnico. Con preguntar esto ya filtras mucho:

  • ¿Comprobáis permisos en el servidor, no solo en la interfaz?
  • ¿Cómo guardáis las contraseñas y los tokens de sesión?
  • ¿Aplicáis cabeceras de seguridad en API y frontend?
  • ¿Cómo es la configuración de producción frente a la de desarrollo?
  • ¿Hacéis alguna revisión de seguridad antes de lanzar?
Si quien te lo construye duda en estas preguntas, ya sabes por dónde te va a entrar el problema. La seguridad no es una fase final: es una forma de construir.

¿Tu producto está construido para aguantar?

Te hago una auditoría de seguridad inicial gratis y te digo, sin humo, qué blindar.

Pedir auditoría gratis →
DNR
Diego Navarro RocaFull-Stack & ciberseguridad · Founder de ReXyo · HTB CPTS & CDSA, Cisco Ethical Hacker

Ver un caso real: auditoría OWASP y hardening de una plataforma web + app →