La Puerta que Ni el Ladrón Puede Abrir
La historia detrás de mi primer plugin de WordPress.
Un profesional de TI con experiencia me habló una vez sobre la función de inmutabilidad de Linux, que utiliza el binario chattr. En palabras sencillas, permite bloquear un archivo o una carpeta de modo que, simplemente, no se puede modificar; ni siquiera por la cuenta de administrador principal, llamada cuenta root, que tiene acceso total a Linux, así que, mucho menos, por algún software o cuenta de usuario. Esto significa que, si alguien obtuviera acceso no autorizado a un servidor Linux, no podría hacer cambios no autorizados en los archivos o carpetas que tuvieran activada esta protección. Es como una puerta que no se puede abrir: aunque un ladrón lograra de algún modo entrar a una casa, no podría llevarse ni dañar ningún mueble que hubiera en ella.
Los administradores de sistemas conocen esto desde hace muchos años y han escrito sus propios scripts para usarlo. Pero ahí está, justamente, la limitación. Solo las personas técnicas pueden aprovechar esta función de forma segura. Y, si una organización la usa, un empleado común que quiera proteger archivos importantes de un sitio web tendría que depender de un administrador de sistemas para que lo haga por él; lo que significaba que, si esa persona estaba almorzando, de vacaciones o simplemente no disponible cuando se necesitaba hacer cambios en ese o esos archivos, no se podía avanzar con el trabajo hasta su regreso. Por eso, muy pocas organizaciones se molestan en usar esta función.
Decidí encontrar una manera de hacer que esta función fuera fácilmente accesible para personas no técnicas, y que solo requiriera una configuración inicial por parte de esa persona técnica; luego, esta puede otorgar acceso restringido y seguro a ciertas personas no técnicas para que hagan los cambios necesarios para su trabajo. Así, no sería un acceso libre para todos, sino una versión cuidadosa, en la que personas seleccionadas pueden endurecer únicamente archivos y carpetas específicos, con la configuración correcta ya establecida para evitar errores o abusos, y con un registro de quién hizo qué. La protección de los expertos, sin necesidad de tenerlos siempre presentes y sin más esperas hasta su regreso.
Lo construí. La primera versión es un plugin de WordPress, una prueba de concepto que ya he utilizado en sitios web en producción. Toma esa antigua y confiable función de Linux y la envuelve en algo que una persona común realmente puede usar, con salvaguardas para que no se haga un mal uso de ella.
WordPress fue solo el punto de partida. La misma idea no se limita en absoluto a WordPress; puede implementarse en cualquier sitio web con funciones disponibles según se necesiten. Estoy planeando otras versiones para distintos entornos, como el alojamiento compartido, para que el mismo tipo de protección pueda llegar a más personas en más lugares.
La buena seguridad consiste, muchas veces, en tomar algo poderoso que suele estar reservado a unos pocos técnicos y ponerlo, de forma segura, al alcance de todos. Esto añade una capa de protección para los sitios web a nivel del sistema de archivos, de modo que, si las demás medidas fallan, aún podamos contar con algo de protección disponible.