Replication Attacks

Noviembre 20th, 2008

Es curioso que a pesar de lo importante que se han vuelto las medidas de seguridad en cualquier tipo de software, aún hoy en día podamos encontrar programas hechos a medida que cuentan con sistemas de protección que no sólo no protegen, sino que dejan en evidencia los conocimientos de sus desarrolladores en cuánto a este tema se refiere.

Desgraciadamente lo que os voy a contar es algo que encuentro con más frecuencia de la que sería deseable. Pongámonos en situación, imaginemos una aplicación cliente/servidor  que se ha desarrollado para una red interna. Durante su diseño nunca se tuvo en cuenta que la red en donde se tendría que colocar podría ser un entorno hostil, así que la utilización de protocolos seguros jamás pasó por la mente de ninguno de los diseñadores. Uno de los peores problemas que esto genera es que cualquier empleado puede hacerse con las credenciales de otro vía sniffing, pudiendo así suplantar su identidad y hacer todo tipo de trastadas.

No hay problema, dice el más inteligente de los desarrolladores, parcheamos la aplicación cliente para que genere un hash a partir de las credenciales. Luego lo envía al servidor en donde ocurre un proceso similar, es decir se genera el hash a partir de la información de la base de datos. Por último se comprueba si las dos versiones son iguales, en cuyo caso se da acceso a la aplicación. A veces también se suele emplear cifrado simétrico con claves pre-distribuidas o extraños métodos de autenticación de lo más retorcido, pero igual de vulnerables.

Y es que por muy extraño que sea el algoritmo para generar el hash, por muy difícil que sea invertir el cifrado o por más que no sepamos que estrafalarios métodos usa la aplicación para enviar esa jeringonza imcomprensible que estamos capturando con nuestro magnífico sniffer, lo cierto es que da igual. Y da igual porque siempre el mismo usuario + la misma clave = el mismo hash.

Nos basta capturar ese hash una vez y cuando queramos acceder a la apliación lo enviamos tal cual (si se trata de una aplicación web esto es trivial). Da igual que no sepamos cual es la clave en texto plano… da igual porque la aplicación servidor espera que le llegue ese hash y ya se encargará ella de comprobar si es legítimo o no. A este tipo de ataques se los conoce como Replication Attacks y son casi tan viejos como la propia Internet, por eso sigo sin entender como es posible que aún se cometan estos fallos hoy en día.

Categorías: seguridad |

1 comentario

  1. Bitacoras.com

    Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….

Deja un comentario