VULNERABILIDADES DE APLICACIONES WEB: EXPOSICIÓN DE INFORMACIÓN VALIOSA POR MEDIO DE COPIAS DE RESPALDO

26.02.2018 06:35
 
Algunos errores de los programadores o de los administradores de un sitio web o de un servidor pueden parecer triviales, aburridos o tontos. De todos modos convendrá conocerlos porque pueden tener consecuencias graves ya que pueden ser aprovechados por los piratas informáticos para escalar un ataque que en principio puede parecer igual de trivial.
 
Veamos el siguiente script en PHP:
 
$original = $_GET['archivo'];
$respaldo = 'copias_respaldo/'.$original.'~';
copy($original, $respaldo) or die("La copia no pudo realizarse correctamente");
echo 'Copiado con éxito. Volver al editor';
?>
 
El script hará una copia archivo que se ingrese como parámetro y le agregará al final un caracter indicativo de que es un archivo de respaldo: "~". Nótese que la copia fue dejada en la ruta de la aplicación por lo que cualquiera que conozca de su existencia (o simplemente esté buscando algo) podrá acceder al código fuente del archivo original por medio de la red. Un pirata informático puede sacarle mucho provecho a esa información.
 
Este tipo de copias se hacen de forma manual o automática. Sería de poca utilidad ponerlas en un directorio protegido, tarde o temprano un hacker podría acceder a las mismas, por ejemplo, obteniendo una combinación de usuario/contraseña por medio de un ataque de fuerza bruta. Las aplicaciones deben diseñarse para no crear copias de respaldo en los árboles del directorio web servidos por el servidor web. Los archivos copiados deben almacenarse en directorios no accesibles por el servidor web.
 
Esta vulnerabilidad y otras similares son frecuentes. ¿Cuántos de nosotros en algún momento hemos editado algún archivo y hemos dejado el original en los árboles del directorio web servidos por el servidor? A veces hasta dejamos el original de algún archivo al que le hemos corregido alguna vulnerabilidad. Que lo dejemos sin referenciar no hace mucha diferencia, de hecho casi ninguna.