Andreas Bogk, senior hacker de la empresa Xing y miembro del legendario Chaos Computer Club, afirma que PHP crea números de sesión de usuario (ID) propensos a ser adivinados con facilidad. Esto es grave si consideramos la inmensa red de sitios web (e.g., algunas redes sociales) que utiliza ese motor para la creación de sus páginas web.

El estudio de Bogk, difundido hace un par de días desde SecList.org, revela lo siguiente:

PHP utiliza un débil, criptográficamente hablando, generador de números aleatorios (RNG) para producir identificadores de sesión de usuario.

PHP no usa suficiente entropía para la semilla del RNG, y parte de ella puede perderse con el mal uso de la función uniqid().

Bajo ciertas circunstancias, la conjunción de ese par de debilidades provoca una reducción en la cantidad de posibles valores de un ID de sesión con PHP, tanto así que es factible un ataque contra un servidor web por la búsqueda exhaustiva de ID válidos.

Samy Kamkar, otro gran hacker, evidenció hace unos meses lo fácil que es predecir el ID de sesión. Esto llevó a mejorar la forma de crear semillas para el algoritmo RNG en versiones posteriores de PHP. El hallazgo de Bogk revela que los cambios aún son insuficientes y recomienda a los desarrolladores de PHP mejorar sus conocimientos en criptografía. Aquí cabe mencionar que las instalaciones de PHP que usen Suhosin no están comprometidas.

Como sucede en muchos otros casos, el trabajo de esos hackers ayudará a mejorar la seguridad de PHP.


Fuente