Sobre los experimentos :P
Navegando por joomla.org, me encontré con un hilo la mar de interesante que trataba sobre un tema de seguridad que me apasiona! éste es..
Cambiar la ubicación y el nombre de la carpeta administrator
Lo cierto, es que no me fijé en que ese hilo estaba publicado en una sección llamada “White papers” dedicada a “Proponer mejoras para Joomla! 1.6″.. lo sí que vi, es que se respondia con alternativas u otros modos de intentar apañarlo en Joomla 1.5.x, e “ipsoflauto”, pasé también a dar mi opinión.
¿Por qué tiene de título este hilo “Sobre los experimentos”?
Bueno, porque a través de una respuesta en concreto en ese hilo, se me daba a entender que “los experimentos en público pueden traer consecuencias nefastas para personas no experimentadas que se dedican a aplicar el método de prueba y error sin saber exactamente lo que se hacen”, o, “que tocar código al “tumtum”, usando instrucciones “de consola de linux” como las propuestas, puede acarrear problemas”, o, “que hay alternativas menos laboriosas”, o, “¿por qué iniciar un experimento si no se va a aportar un resultado que lo solucione limpiamente?”
El inglés no es lo mio, me cuesta entender “bien bien” todas las respuestas, expresarme, y/o extenderme en ese idioma; así que, me repetiré en las intenciones e ideas, esta vez, en español :)…
Me alegre mucho al enterarme que, una de las “Buenas noticias” para la ahora ya estable Joomla 1.5.x, iba a ser la posibilidad de que, por medio de constantes específicas del tipo “JPATH_ADMINISTRATOR”, declaradas en archivos “defines.php”, se podría indicar otro nombre y ruta para la carpeta “administrator”
Sin embargo, me entristeció un poco que en la práctica, eso no funciona todavía sobre Joomla 1.5.X
Los problemas que veo para que no funcione o cueste de implementar sobre Joomla! 1.5.X son que:
- La palabra “administrator” ( o la ruta apuntando a ella), sigue apareciendo en el código de Joomla! 1.5 por lugares donde debería estar sustituido con la constante apropiada.
- La palabra “administrator”, aparece en archivos que no son con extensión de PHP (txt, db, xml, etc) y el implementa la constante se complica porque, otros archivos “no PHP” no tienen porqué saber “interpretar php” (y de hecho predeterminadamente no lo hacen)
- Hay extensiones de terceros (módulos, componentes, plugins) que padecen el mismo inconveniente (no implementan, en toda ocasión que es posible, a la constante y tiran de la palabra “administrator”)
- La palabra “administrator” no tiene exclusividad; es decir, no se usa solo para hacer referencia al nombre de la carpeta, y, dentro del código, puede aparecer dentro de los archivos del idioma, rutas, URLs, o, ser usada para los “rangos” (Super administrator, administrator, etc). Esa falta de excluividad en el uso de esta palabra, complica y restringe las soluciones que tengan que ver con el “buscar y reemplazar”
En estas condiciones actuales y a falta de una “implementación oficial”, veo complicado el darle una solución “Limpia y rápida” que cumpla con el próposito desde el código de Joomla! o de las extensiones.
Aunque en lo personal, prefiero esperar a que se saque una versión que soporte esta característica predeterminadamente y que sea funcional (funcional= manejable desde la admistración), eso no me quita que, a modo de entretenimiento o por las simples ganas de experimentar, me puedan entrar las ganas de darle una solución al problema; sin lugar a dudas, mucho menos elegante.. vamos, lo que yo llamo una solución “muy sucia y rápida; pero nada funcional” (no confundirlo con un “hack” en su buen uso del término), o, proponer una vía, para intentar entre todos los interesados, que se consiga obtener un modelo de “Hack provisional y funcional”
¿Se implementará esta característica en Joomla! 1.6 de modo funcional? ¿Cuanto tiempo estaremos a tener una versión oficial estable de Joomla! 1.6?
Es algo que sabremos cuando se decida y de lo que dispondremos cuando este listo.. pero no hay fechas marcadas.
¿Que me puede invitar a recurrir a una solución “muy sucia y rápida; pero poco funcional?
Bueno, a mi entender y bajo un aspecto de seguridad, si el 90% de las intrusiones, via URL, son automatizadas, y, contamos con la desventaja de que somos predecibles porque a todos se nos instalan las mismas cosas en las mismas ubicaciones… el cambiar el dato “administrator” por “otra cosa” + “ocultar los errores de PHP” nos puede permitir eludir el 90% de los ataques, via URL, dirigidas contra nuestro CMS o extensiones (luego nos quedaría lidiar contra el otro 10% aplicando otras medidas de seguridad, claro)
Ser diferente, usando un CMS en común, te salvará la vida contra los ataques automatizados que intenten entrar por “rutas predeterminadas” y contar con esa característica, implementada predeterminadamente, será una gran ventaja en la lucha contra las intrusiones no deseadas.
Estoy totalmente de acuerdo en que no se deben recurrir a métodos de prueba y error, o, aplicar modificaciones en el código original a la ligera.
La solución “muy sucia y rápida” consiste en sustituir todo “adminstrator” por “otra_cosa”, dentro del código, o, dentro de nombres de archivos y carpetas. Esto, aparte de cambiarnos lo que nos interesa, también nos cambia “archivos del idioma” y “rangos”
Tras disponer de un CMS modificado, a cada actualización del CMS o de las extensiones, o simplemente a los paquetes de extensiones por instalar, se le debería aplicar la misma “Técnica sucia”, o en caso contrario, el lio estaría armado.
Si en alguna parte del código de una extensión, se ofusca la palabra “administrator”, tantos problemas tendremos para hacerla funcionar con esta “solución sucia” que con una “Implementación oficial y correcta de la casa”.
Si una extensión de terceros para Joomla 1.0.x, no nos funciona ya con Joomla! 1.5 y el “legacy mode” habilitado, el aplicarle la “solución sucia”, no mejorará; ni emperorará la situación.
Otra propuesta, bastante más laboriosa, es la de intentar implementar la constante u “otra_palabra” modificando solo las líneas de código, archivos y/o carpetas del CMS o Extensiones que lo requieran para el propósito. El método de prueba-error y rezarle a Dios, de poco o nada sirven aquí.
En resumen, se trata de una invitación pública a experimentar localmente teniendo noción o entendiendo lo que se propone
¿Funciona? ¿no falla? ¿seguuuuuuuuuuro?.. luego, tú decides.
- Abril 6th
Leave a Reply