Recientemente, en concreto el 28/08/2010, se descubrió una vulnerabilidad en nuestro querido Textpattern, a partir de ahora TXP por economía del lenguaje, que supuestamente permitía incluir ficheros externos y ejecutarlos (una definición de andar por casa para el término ‘Remote File Inclusion Vulnerability’ o RFI). Como siempre que sale una vulnerabilidad en una aplicación Web no tardan en aparecer visitantes curiosos que intentan comprobar si el aviso es cierto e intentar explotarlo (como imaginaréis no he estado exento de dichas pruebas).
Ejemplos de pruebas que algunos han realizado en mi web.
Teniendo en mente estos problemas de seguridad, hace tiempo pensé en por qué no aportar una capa más de seguridad a TXP. De muchos es sabido la labor que los IDS realizan en el mundo de la seguridad informática, entre los que me cuento, así que por qué no incluir uno en TXP. Sobre cuál no tuve duda: PHPIDS. Con la firme idea de crear un plugin que incorporase las cualidades de PHPIDS me puse a trabajar, no os diré hace cuanto, hasta que saqué la primera versión funcional del mismo, al que llamé jhc_phpids: PHPIDS para Textpattern.
En estas primeras versiones lo que me ha interesado es tener un plugin sencillo de instalar (en cinco pasos tal y como podéis ver en la Wiki) y que nada más hacerlo se tuviera una versión funcional de PHPIDS; y el listado de los futuros posibles ataques (todo ello desde una nueva pestaña del Gestor). Así mismo, aprovechando que el plugin no será estático, sino que tendrá una evolución tanto por fallos como por los cambios de PHPIDS, lo he colgado en Googe Code donde espero poder manejar mejor dicha evolución, vuestras posibles incidencias y, por qué no, probar el control de fuentes con Subversion.
Para una configuración más detallada de PHPIDS os recomiendo leer su documentación.
Pantalla con el error 500 que jhc_phpids mostrará ante alguna petición algo rara