Aplicar el principio de privilegio mínimo para mejorar la seguridad de WordPress
Publicado: 2021-07-27El principio de privilegio mínimo para WordPress se pierde en los grandes titulares cuando ocurren violaciones, pérdida de datos y ataques DoS. Sin embargo, es una de las mejores prácticas de seguridad más efectivas, si se pasa por alto, para los sitios web de WordPress.
En esta publicación de blog, primero definimos el principio de privilegio mínimo, luego examinamos cuándo y dónde se aplica, los riesgos de no adoptarlo y por qué muchos desarrolladores de sitios web aún no lo incorporan en sus sitios web de WordPress. También compartimos algunas recomendaciones prácticas, para que puedas comenzar de inmediato a mejorar la seguridad de tus sitios web de WordPress. Esta publicación de blog incluye algunos mini estudios de casos para ayudar a ilustrar su uso en entornos reales.
Tabla de contenido
- ¿Qué es el Principio del Mínimo Privilegio?
- ¿Cuándo y dónde se aplica el Principio del Mínimo Privilegio?
- ¿Cuáles son los riesgos si no se aplica PoLP?
- ¿Por qué muchos propietarios de sitios web descuidan el principio de privilegio mínimo en WordPress?
- Cómo aplicar el PoLP para WordPress
- Privilegios de usuario de la base de datos de WordPress
- Roles y privilegios de los usuarios de WordPress
- Crear roles personalizados
- Permisos de archivos y directorios
- Configuración de complementos de WordPress
- Acceso FTP para terceros contratistas
- Miniestudios de casos
- Aplicaciones de sitios web de comercio electrónico
- Universidades e instituciones educativas
- Sitios web y blogs de noticias
- sitios web bancarios
- Rastreadores de salud y estado físico
- Usando el Principio de Mínimo Privilegio para WordPress y más allá
¿Qué es el Principio del Mínimo Privilegio?
La idea es muy simple: no otorgue a una cuenta de usuario, proceso o programa más derechos de acceso de los que necesita para realizar sus tareas designadas. En términos de un sitio web típico de WordPress con un blog, piense en sus editores, autores, colaboradores y suscriptores. Cada uno de ellos necesita acceso a más o menos parte del backend de su sitio web.
El principio de privilegio mínimo (PoLP) también se conoce como el "principio de autoridad mínima", el "principio de privilegios mínimos" o la "cuenta de usuario con privilegios mínimos" (LUA).
Consideremos algunos ejemplos simples. Sus niños pequeños no suelen necesitar acceso a la cocina. Por lo tanto, instala un dispositivo de control de acceso, como una puerta de seguridad, en varios puntos de su hogar para permitirles deambular a voluntad, excepto en ciertas habitaciones. En un espacio de coworking público compartido, desconectarías tu computadora portátil antes de irte a almorzar. Y, el asistente de estacionamiento de su elegante restaurante requerirá su identificación o boleto antes de devolverle las llaves de su automóvil. El control de acceso evita daños a la propiedad valiosa de usted y de sus usuarios, ya sea un elemento físico o una garantía digital.
¿Cuándo y dónde se aplica el Principio del Mínimo Privilegio?
La respuesta simple es que se aplica en todas partes: desde ese niño pequeño que quiere subir las escaleras hasta los usuarios de su cuenta de alojamiento de sitios web de WordPress. Su profesional independiente de finanzas que necesita descargar las facturas mensuales no necesita el mismo nivel de acceso que el administrador del sitio web. Lo mismo ocurre con todo tipo de cuentas de empresa privilegiadas, sistemas de gestión de archivos, documentación de estrategia de marketing o gestores de contraseñas.
¿Cuáles son los riesgos si no se aplica PoLP?
Controlar el acceso a ciertas áreas parece una obviedad. De lo contrario, ¿no está abandonando el sitio web completamente por capricho de cualquier usuario que haya iniciado sesión, incluidos aquellos que pueden cometer errores inocentes e involuntarios, y es posible que ni siquiera se den cuenta de que los han cometido, ni de los resultados no deseados?
Piense en los siguientes posibles usuarios:
- El nuevo usuario comienza con poca comprensión de las implicaciones comerciales de los errores en un sitio web de WordPress
- Aquellos con poca experiencia en la administración de WordPress
- Sin conocimiento de las implicaciones de descargar nuevas versiones o complementos de WordPress a voluntad, o de actualizarlos sin antes hacer una copia de seguridad
- Aquellos con conciencia de seguridad limitada que crean nuevos usuarios o cambian los permisos de los usuarios existentes.
- Aquellos que no saben cómo lidiar con los errores informados u otros problemas
- Contribuyentes externos de publicaciones de blog, como socios, autónomos y clientes, con quizás un poco de conocimiento de WordPress, que incluso pueden descargar o actualizar complementos en su sitio web de manera 'útil', sin preguntar.
También significa que todo su backend de WordPress está en riesgo de que alguna persona no autorizada, como alguien con niveles de acceso inapropiados, agregue nuevos usuarios y les dé acceso a áreas del sitio web donde pueden causar daño deliberado .
Tal como:
- Alteración de temas, funciones personalizadas o contenido de sitios web públicos
- Mal manejo de existencias, SKU o metadatos de productos en tiendas de comercio electrónico
- Ofrecer descuentos no autorizados
- Acceder, cambiar, descargar o eliminar código, plantillas de página, medios, configuraciones o personal, clientes y otros tipos de archivos
- Acceder a datos financieros, de salud, de clientes o de la empresa, por ejemplo, para hacer un uso indebido o venderlos a otras partes malintencionadas
- Desconectar el sitio y sus productos o servicios
Ya sea que use WordPress o no, cualquiera o todos estos problemas pueden ocurrir cuando el principio de privilegio mínimo para WordPress no se adopta de manera deliberada y consistente en toda su organización.
SUGERENCIA: use un complemento de registro de actividad para WordPress para mantener un registro de todos los cambios que los usuarios hacen en su sitio web de WordPress. Ayuda con la responsabilidad del usuario y facilita la resolución de problemas.
¿Por qué muchos propietarios de sitios web descuidan el principio de privilegio mínimo en WordPress?
Los riesgos que hemos descrito parecen bastante persuasivos, ¿verdad? Pero uno de los problemas más comunes informados después de las auditorías del sitio web de WordPress es que los roles de los usuarios de WordPress en un entorno típico todavía están configurados de la siguiente manera:
- El rol de administrador de WordPress se otorga a cada usuario, incluso cuando el usuario solo necesita ingresar contenido escrito por otra persona.
- Lo mismo se aplica a los permisos de archivos y directorios, todos los cuales están configurados con los permisos menos restrictivos.
Lo entendemos. Todos hemos tenido experiencia trabajando como administradores de sistemas y sitios web en algún momento de nuestras carreras. En lugar de servir de enlace entre los usuarios y los permisos en los primeros días, comprobando lo que el usuario necesita hacer, los administradores a menudo prefieren simplemente asignarles también la función de administrador (al principio parece más rápido).
Lo mismo se aplica a los permisos de archivos y directorios. Por ejemplo, algunos complementos de WordPress almacenan archivos de caché u otros datos en el sistema de archivos (es decir, en los directorios de WordPress). Es más fácil simplemente configurar los permisos 777 en el directorio /wp-content/plugins/, porque todos los complementos funcionarán y no es necesario perder más tiempo solucionando problemas y ajustando los permisos cada vez que instala un nuevo complemento. Pero investigar un poco al principio para determinar las áreas específicas de la aplicación o los directorios del sitio web, para evitar que los usuarios tengan demasiado acceso, reduce los riesgos ya mencionados. Y tiene el beneficio adicional de permitir que todos obtengan acceso a lo que necesitan para hacer su trabajo, sin más aportes de un administrador.
Preguntas que los propietarios y administradores de sitios web deben hacer
¿Vale la pena el riesgo de seguridad por conveniencia? Ya sabes cuál sería nuestra respuesta a esa pregunta. Simplemente no tiene sentido instalar y mantener sólidos complementos de seguridad de aplicaciones web, protocolos de contraseña y otras medidas como 2FA, si su mayor riesgo de seguridad es que ya ha dejado la puerta trasera abierta con controles de acceso amateur y laxos.
Cómo aplicar el principio de privilegio mínimo para WordPress
Ahora que está enfocado en hacer que la aplicación de su sitio web sea lo más segura posible, esta sección le brinda una lista de dónde y cómo se puede aplicar el principio de privilegio mínimo a un sitio web o blog de WordPress.
Privilegios de usuario de la base de datos de WordPress
Comencemos con el lugar más básico: permisos o privilegios de la base de datos de usuarios de WordPress.
Para las operaciones diarias normales de WordPress, como escribir y publicar contenido, el usuario de la base de datos de WordPress solo necesita los siguientes permisos para poder administrar los datos desde la base de datos:
- Seleccione
- Insertar
- Actualizar
- Borrar
Estos permisos no permiten que el usuario de la base de datos de WordPress modifique la estructura de la base de datos.
Recomendaciones
En un entorno ideal, para reforzar la seguridad de su sitio web o blog de WordPress, debe configurar privilegios de base de datos MySQL seguros y restrictivos. Solo vuelva a asignar todos los privilegios a los usuarios que necesiten instalar un nuevo complemento que cree nuevas tablas en la base de datos, o cuando WordPress se haya actualizado y haya cambios en el esquema de la base de datos de WordPress.
Otra recomendación es evitar otorgar acceso a bases de datos distintas a la de WordPress para el sitio web en cuestión.
Para obtener más información sobre los privilegios de la base de datos de WordPress, también puede leer Por qué los privilegios mínimos de la base de datos de WordPress para usuarios de MySQL mejoran la seguridad, lo que explica las repercusiones de una configuración insegura.
Roles y privilegios de los usuarios de WordPress
Los usuarios de WordPress cometen errores, incluso los administradores. Y a los usuarios también les gusta explorar ajustes y configuraciones. Si asigna a los usuarios acceso de superadministrador o administrador, es probable que los más curiosos instalen complementos aleatorios. Esto puede resultar potencialmente en un cambio no intencional en la experiencia del usuario, como un cambio en la funcionalidad del sitio web.
WordPress tiene una serie de roles de usuario integrados y capacidades conectadas, como se indica a continuación (de mayor a menor).
- Superadministrador: administrador de la red del sitio
- Administrador: administrador de la red del sitio para un solo sitio
- Editor: administre y publique publicaciones, incluidas las publicaciones de otros usuarios
- Autor: administrar y publicar publicaciones propias
- Colaborador: escriba y administre sus propias publicaciones, pero no las publique
- Suscriptor: solo administrar perfil
Un ejemplo de cómo funciona esto en la práctica es que, si bien un Colaborador y un Autor pueden compartir algunas capacidades (por ejemplo, editar publicaciones y eliminar publicaciones), un Colaborador no puede hacer todo lo que puede hacer un Autor, como cargar archivos o crear bloques utilizables.
Crear roles personalizados
También hay una buena cantidad de complementos que puede usar para crear roles de WordPress nuevos y personalizados.
Estos son algunos casos de uso comunes:
- En organizaciones más grandes, es posible que deba asignar a alguien en su equipo de marketing para moderar, aprobar y responder a los comentarios. La capacidad de 'comentarios moderados' se encuentra dentro del rol de Editor, pero este rol también asigna una gran cantidad de otras capacidades poderosas. Entonces, si eso es todo lo que necesitan para poder hacer, entonces es suficiente configurar un rol personalizado, con este único permiso.
- Si su sitio de WordPress contiene un complemento de comercio electrónico como WooCommerce, está limitado a dos roles iniciales: Administrador de la tienda (que permite al usuario administrar toda la tienda) y Cliente (que permite al usuario ver su cuenta y pedidos). El administrador tiene permisos adicionales, como 'administrar configuraciones' y 'ver informes'. Pero, ¿qué sucede si sus usuarios, por ejemplo, personal que no es de administración, requieren algo intermedio, como la capacidad de agregar y administrar cantidades de existencias o SKU, o simplemente procesar pedidos?
- En nuestro sitio web, utilizamos un complemento para nuestros artículos de la base de conocimientos. Esto le da a nuestro equipo de soporte acceso para crear y modificar artículos de la base de conocimiento, pero no acceso a las páginas principales del sitio web y publicaciones de blog.
Recomendaciones
Para la mayoría de los usuarios regulares, el rol de Colaborador es suficiente. Para los líderes de equipo y gerentes prácticos, se recomienda el rol de editor. Sin embargo, debe restringir los roles de superadministrador y administrador a usuarios experimentados y responsables que realmente los necesiten.
Para obtener más información, consulte Cómo usar los roles de usuario de WordPress para mejorar la seguridad de WordPress.
Permisos de archivos y directorios
Es fácil configurar los permisos de archivos y directorios y hay una amplia documentación disponible en línea que explica cómo fortalecer los permisos de su instalación de WordPress. WordPress se ejecuta en cualquier sistema operativo que ejecute PHP, comúnmente Linux. En términos de grupos, Linux tiene tres grupos de permisos:
- Propietario: propietario del archivo/directorio, cuyos permisos no se aplican ni afectan a ningún otro usuario
- Grupo: grupo de usuarios a los que se les ha asignado acceso al archivo/directorio, cuyos permisos no se aplican ni afectan a ningún usuario fuera del grupo
- Otro: qué niveles de permisos tienen todos los demás para el mismo archivo/directorio
A cada uno de estos se le asigna el permiso de Lectura (ver el contenido), Escritura (escribir o modificar el contenido) o Ejecutar (ejecutar el contenido, como un script). Estos permisos se almacenan como una serie de números y dan acceso a código PHP, imágenes y otros medios, archivos HTML y javascript y complementos.
La implicación de asignar los permisos incorrectos al grupo de permisos incorrecto podría significar que un pirata informático malintencionado podría aprovecharse y dar como resultado una vulnerabilidad de bajo nivel que se convierte en un riesgo inaceptable.
Recomendaciones
Al instalar WordPress, también debe usar PoLP, configurando la menor cantidad posible de permisos de archivos y directorios para que WordPress funcione.
Recuerde que al fortalecer los permisos de archivos y directorios, también puede restringir el funcionamiento de algunos complementos de WordPress. Como se explicó anteriormente, es posible que esté instalando complementos que necesitan almacenar datos en su directorio de instalación. Si es así, no configure simplemente los permisos 777 para el directorio del complemento (lectura, escritura y ejecución completas para cualquier persona con permisos para controlarlo). Esa es la salida fácil. Pero también debe evitar limitarlo tanto que impida que los usuarios relevantes actualicen WordPress, sus temas y complementos desde la interfaz de usuario web.
Para obtener más información, consulte Permisos de archivos de WordPress: la guía para configurar permisos seguros de sitios web y servidores web.
Configuración de complementos de WordPress
No todos los administradores son iguales. Como muchos sistemas y redes, es común tener un administrador principal entre un grupo de administradores de WordPress. Por lo general, el propietario del sitio web no tiene otra opción que asignar acceso de administrador a otros usuarios. Tenga en cuenta que, en el caso de los complementos de seguridad de WordPress, a menudo pueden almacenar datos confidenciales, como un registro de auditoría de seguridad de WordPress, al que tendrían acceso los administradores.
Recomendaciones
Los complementos de seguridad de WordPress generalmente le permiten restringir el acceso a otros administradores de WordPress. Hacer uso de tales funciones parece un control pequeño, pero a veces pasado por alto, que lo ayudará a controlar mejor el acceso de los usuarios.
Para obtener más información sobre complementos individuales, comuníquese con el soporte de complementos y el proveedor de alojamiento. Luego pregunte en qué directorios necesita escribir el complemento, para que pueda configurar los permisos específicamente para ese directorio.
Acceso FTP para terceros contratistas
Cuando contrata a un diseñador o el equipo de soporte de un complemento necesita acceso FTP a su sitio web, puede otorgarles acceso completo a la raíz de su sitio web, ¿verdad? Esto es innecesario.
Recomendaciones
En el caso de un diseñador, todo lo que necesitan acceso es al directorio del tema, así que restrinja el acceso a ese directorio. Lo mismo se aplica a los equipos de soporte de complementos. Si necesitan acceso para verificar los archivos de registro, bríndeles acceso FTP al directorio del complemento o a la ubicación donde el complemento almacena los archivos de registro. Evite depender de terceros para que realicen la debida diligencia de seguridad por usted.
Miniestudios de casos
Veamos algunos ejemplos relacionados de cómo funciona esto en la práctica y cómo las preguntas y decisiones de control de acceso pueden impulsar la aplicación de PoLP para permitir el acceso correcto para los equipos y personas correctos.
Aplicaciones de sitios web de comercio electrónico
Las aplicaciones de sitios web de comercio electrónico, como aquellas en las que los consumidores compran artículos caros como frigoríficos, aspiradoras, cámaras o portátiles, ofrecen varios ejemplos de dónde se puede adoptar PoLP.
Algunas de las decisiones de control de acceso para los desarrolladores de aplicaciones de sitios web de comercio electrónico son obvias:
- Los departamentos de recursos humanos probablemente no necesitarán acceder a los datos de los clientes o directorios de archivos que almacenan complementos, pero necesitarán acceso a la mayoría de los registros del personal (aunque quizás los datos de salud, que a menudo disfrutan de un estatus especial bajo muchas leyes de cumplimiento de protección de datos, pueden estar más restringido a una base de necesidad de saber)
- Los departamentos de marketing no necesariamente necesitarán acceso a tablas de SKU o códigos de producto. Sin embargo, querrán acceder a las tablas en la base de datos de productos que enumeran los nombres, especificaciones y descripciones de los productos.
Algunos son menos obvios:
- ¿Los consumidores necesitan acceso a todos sus datos todo el tiempo?
- ¿Los oficiales de cumplimiento de PCI-DSS necesitan acceso a todos los datos del consumidor?
Universidades e instituciones educativas
¿Qué pasa con las instituciones más tradicionales y de larga data, donde la seguridad de las aplicaciones web y PoLP es inicialmente menos evidente?
Algunas de las decisiones de control de acceso para los portales de universidades y colegios son obvias:
- El departamento de nómina necesita acceso a los registros del personal y del contratista en la aplicación del sitio web para realizar un seguimiento de los días laborables y realizar pagos.
- Los departamentos administrativos de varios tipos pueden necesitar acceso a los registros de los estudiantes para procesar identificaciones, solicitudes de alojamiento, facturas o subvenciones.
Algunos son menos obvios:
- ¿Qué proveedores externos, como los proveedores de tarjetas magnéticas de edificios, podrían necesitar acceso intermitente a algunas tablas de datos de estudiantes?
Sitios web y blogs de noticias
La web está llena de sitios web de noticias, podcasts y blogs. Muchos propietarios de sitios web dependen de varios administradores, colaboradores, editores, correctores y editores. Además, hay suscriptores y espectadores a considerar.
Algunas de las decisiones de control de acceso para aplicaciones de sitios web de noticias y blogs son obvias:
- Dependiendo de las áreas comerciales de responsabilidad, los editores pueden necesitar acceso a una combinación de las páginas, artículos y publicaciones de blog de todos.
- Los colaboradores solo necesitarán acceso a sus propias publicaciones de blog.
Algunos son menos obvios:
- ¿Todos los terceros necesitan acceso a todas las tablas de la base de datos de WordPress? Aquí es donde los controles personalizados entran en juego.
sitios web bancarios
Nuestro ejemplo final es algo que muchos de nosotros usamos a diario, los servicios de sitios web bancarios. Aparte de la información de salud, los datos financieros personales son naturalmente uno de los tipos más confidenciales que existen.
Algunas de las decisiones de control de acceso para hacer aplicaciones de sitios web son obvias:
- Ningún usuario de servicios bancarios debe tener acceso a la cuenta de otro usuario, excepto por consentimiento expreso (probablemente controlado por el usuario).
- Las cuentas de usuario del personal deben tener acceso a muchas cuentas de usuario de servicio, pero limitado solo a aquellas tareas que necesitan realizar como parte de su trabajo.
Algunos son menos obvios:
- ¿Cuánto acceso deben tener los departamentos de soporte técnico? ¿Deberían poder ver y modificar todo, en caso de errores?
Le recomendamos que piense y planifique el caso de uso comercial para cada escenario. Junto con sus grupos de usuarios e individuos con descripciones de trabajo únicas. Traza estos primero. Solo entonces puede comenzar a examinar los protocolos de control de acceso disponibles en su sitio web de WordPress.
Rastreadores de salud y estado físico
Los dispositivos de seguimiento de la salud o el estado físico y sus paneles en línea conectados recopilan, almacenan y comparten estadísticas fascinantes sobre los usuarios y sus datos de salud, actividad, objetivos y logros.
Algunas de las decisiones de control de acceso para las marcas de rastreadores de salud y estado físico son obvias:
- ¿Qué equipos dentro de la organización necesitan acceso a qué datos? Tiene sentido que si un equipo es responsable del diseño y desarrollo de la parte de seguimiento del sueño de la aplicación, no necesariamente necesitan acceso a las tablas de estadísticas de entrenamiento.
- La mayoría de los usuarios querrán que el PoLP (lo sepan o no) sea muy restrictivo, por lo que su información de salud no se comparte con todos los demás usuarios. Entonces, ¿qué privilegios de acceso se deben otorgar al rol de usuario normal y, por lo tanto, qué datos se compartirán en un perfil público (solo nombre, imagen de perfil y pasos diarios promedio?).
Algunos son menos obvios:
- ¿Qué y cuánta información debe ser accesible a otros usuarios para facilitar las características comunes de gamificación de dichas herramientas?
- ¿Deberían los desarrolladores establecer todos los permisos de acceso, o parte de esta toma de decisiones debería descargarse a los usuarios?
Usando el Principio de Mínimo Privilegio para WordPress y más allá
Lo anterior es solo una selección de los escenarios más comunes donde el principio de privilegio mínimo para WordPress a menudo se pasa por alto, pero se puede aplicar fácilmente.
Para comenzar a adoptar PoLP, comience considerando lo que quiere hacer con los siguientes elementos:
- el servidor web
- La base de datos
- Personalizaciones
No dude en aplicar el principio del privilegio mínimo simplemente porque las cosas no funcionan de inmediato. Sí, la mayor parte del tiempo tiene que pasar algunas horas configurando roles de usuario personalizados y solucionando problemas de complementos. Vuelva a empaquetar esto en su mente como una inversión a largo plazo en la seguridad de sus sitios web de WordPress.