Bajo MacOS X y Apache, si se cumplen determinadas condiciones, un
atacante puede acceder a cualquier archivo protegido dentro de la
jerarquía de documentos Apache y obtener listado de directorios.
Apache es el servidor web más popular del mundo, con el 60% de
instalaciones en Internet. Se trata de un producto «Open Source» y
disponible para infinidad de plataformas.
Mac OS X es la última versión del sistema operativo de Apple, para sus
equipos Macintosh. Se trata de un sistema microkernel Mach, con una capa
de emulación UNIX encima (concretamente, *BSD) y el conocido entorno
gráfico que tan popular ha hecho a los Macintosh.
MacOS X incluye el soporte del sistema de ficheros HFS+, un sistema
propio de Apple que, entre otras características, no incluye
sensibilidad a las mayúsculas y minúsculas, al igual que ocurre bajo
Windows.
Ello hace que se puedan leer ficheros en el árbol Apache, aunque su
acceso esté prohibido por configuración, sin más que cambiar mayúsculas
y minúsculas en la URL.
La solución para ello es utilizar el módulo «mod_hfs», para reconocer
adecuadamente los ficheros con combinaciones distintas de mayúsculas y
minúsculas, y la directiva «» en vez del «»
comúnmente utilizado. En la directiva «» deben emplearse
expresiones regulares para detectar el uso de mayúsculas y minúsculas.
Se verán ejemplos más abajo.
Otra posibilidad sería el uso de particiones UFS para la sensibilidad a
las mayúsculas y minúsculas. Dichas particiones, estándares en Unix, sí
consideran distintos ficheros con diferente combinación de mayúsculas y
minúsculas.
Todo esto es conocido por cualquier administrador de Mac OS X. O debería
serlo.
Existen, sin embargo, un par de detalles adicionales a considerar, poco
conocidos:
a) Mac OS X almacena en cada directorio un fichero «.DS_Store» que,
entre otras cosas, contiene un listado de ficheros en dicho directorio.
Si solicitamos dicho fichero obtendremos un listado de ficheros en el
directorio, aunque hayamos indicado a Apache que no nos muestre esa
información.
Para eliminar este problema, podemos definir una regla de acceso del
tipo:
Order allow, deny
Deny from all
b) Aunque indiquemos la regla anterior, seguimos pudiendo acceder a los
ficheros en el directorio si tenemos nuestro sistema Mac OS X con la
opción de «búsqueda por contenidos». Con esa opción activada, el sistema
operativo crea un fichero «.FBCIndex» en cada directorio, que consiste
en una base de datos para realizar búsquedas. Ello, además de
proporcionarnos un listado de ficheros, nos puede dar también su
contenido, analizando la base de datos de indexación en sí.
Se puede definir una regla similar:
Order allow, deny
Deny from all
c) Si se usa un fichero «.htaccess», debemos recordar que, a menos que
se hayan puesto reglas de exclusión como las anteriores, podemos acceder
a él usando una URL con «.HTACCESS».
Una posible solución para estos problemas, es la de emplear una regla
genérica de la forma:
Order allow, deny
Deny from all
Esta regla prohibirá el acceso a cualquier fichero cuyo nombre empiece
con un punto, a menos que su segundo carácter sea también un punto (por
ejemplo, el directorio padre «..»).
Este cambio, que incrementa la seguridad enormemente, puede ocasionar
algún problema con el uso de directivas SSI («Server Side Include»). Los
administradores que hagan estos cambios, que se recomiendan, deben
comprobar el correcto funcionamiento de sus páginas con contenido
activo.
jcea@hispasec.com
Más información:
Mac OS X Reader Reports: Part 46
http://www.macintouch.com/mosxreaderreports46.html
More security problems in Apache on Mac OS X
http://www.securityfocus.com/cgi-bin/archive.pl?id=1&mid=213330&start=2001-09-07&end=2001-09-13
Deja una respuesta