¿Cómo puedo proteger una instalación de WordPress?

26

¿Cómo se hace para proteger una instalación de WordPress predeterminada?

¿Qué lista de verificación utiliza, mejores prácticas, consejos y trucos, etc.?

Cualquier recomendación sobre complementos, herramientas de terceros son bienvenidas.

    
pregunta Nuno Morgadinho 18.11.2010 - 23:26
fuente

9 respuestas

15

En realidad, hay una muy buena guía para esto en el sitio web de wordpress: Hardening WordPress .

Sin embargo, mi breve lista de verificación personal es

  • mod_security - @atdre ya mencionó que mod_security es un muy buen paso. Sin embargo, requiere una gran cantidad de ajustes del conjunto de reglas para permitir que WordPress funcione correctamente. También es muy probable que necesite personalizar el conjunto de reglas en función de los complementos que utilice.
  • Permisos de archivos : consulte aquí
  • Administración sobre SSL : use SSL para el área de administración, vea aquí .
  • Actualizar : lo más importante en mi opinión es mantener WordPress actualizado. Al usar las herramientas creadas, parcheando manualmente o usando un script de actualización (escribí este uno).
respondido por el Mark Davidson 19.11.2010 - 00:24
fuente
5

ModSecurity con el conjunto de reglas principales no es malo, pero es mejor configurarlo explícitamente para cada entrada que tome la aplicación, así como para reparar la salida sin escaparse que envía en el exterior. Esto funciona mejor en modo proxy completo, pero el modo de inserción tiene algunas otras ventajas únicas. Puede ser inteligente usar ambos, especialmente porque Wordpress es increíblemente inseguro.

    
respondido por el atdre 18.11.2010 - 23:32
fuente
4

Un paso sería asegurar el servidor (que generalmente es Apache) que se describe en las respuestas de mi pregunta anterior de Endurecimiento del servidor Apache

    
respondido por el Eric Warriner 18.11.2010 - 23:45
fuente
2
  1. Cambiar el nombre de usuario de la cuenta de administrador. Si un hacker ya conoce su nombre de usuario, es la mitad de la batalla y tratará de adivinar su contraseña.
  2. Cambie el prefijo de la tabla de WordPress durante la instalación.
  3. Usando un archivo .htaccess , puede bloquear su directorio wp-admin por dirección IP. Esto significa que solo las direcciones IP que especifique pueden acceder a las URL de su panel de administración.
  4. Establezca una contraseña segura para el inicio de sesión de administrador y el acceso ftp.
respondido por el Mena Samy 02.08.2011 - 11:26
fuente
1

Además de los excelentes consejos anteriores, tengo otra sugerencia: recientemente publiqué un plugin para Wordpress que podría resultarle útil. Lo llamo Foresight . Está disponible para descargar desde el Directorio de complementos de Wordpress:

enlace

(También está reflejado en github .)

El complemento es bastante simple: todo lo que hace es cargar un enlace "Foresight" en la sección "Herramientas" de la barra lateral cuando hayas iniciado sesión como administrador. Si hace clic en ese enlace, se le presentará una serie de iframes con pestañas, cada uno de los cuales muestra las vulnerabilidades más recientes de Wordpress que se encuentran en los siguientes rastreadores de vulnerabilidades populares:

Esta herramienta no es particularmente elegante ni nada. (Pienso que es una herramienta tonta para un administrador inteligente), en el sentido de que, en última instancia, solo está cargando un montón de iframes. Para usarlo, solo debes cargarlo periódicamente y navegar por los exploits, manteniendo un ojo abierto para los exploits en el núcleo de Wordpress o los complementos que uses. Si encuentra un exploit, puede tomar una decisión inteligente con respecto a la mejor manera de proceder.

Hice este complemento porque, después de la reciente debacle de TimThumb, me di cuenta de que muchos administradores de Wordpress no vigilan a los rastreadores de vulnerabilidades. Mi esperanza es que esto hará que sea un poco más fácil hacerlo.

    
respondido por el Chris Allen Lane 29.05.2012 - 19:47
fuente
1

También agregaré mi respuesta:

Métodos para aumentar la seguridad (MUST-HAVE):

  • Utilizando HTTPS (también existe el ssl gratuito por "Vamos a cifrar").

  • No escribe las credenciales en una PC pública / WIFI desconocida / pública (si necesito internet sobre la marcha, comparto Internet desde mi móvil a mi computadora portátil)

  • Usando contraseñas seguras

  • solo tengo 1 administrador (yo mismo) y asigno a otros como editores, etc ...

  • Suscribiéndose a wpvulndb.com para noticias diarias.

  • Comprobar sitios con complementos de Pen-Test (como estos ).

  • Uso de Complemento de autorización bidireccional .

  • Cambiar Nicename & DisplayName : configúralos de forma diferente a username .

  • Deshabilitar las advertencias en la página de inicio de sesión (usando el iThemes plugin)

  • Bloqueo de fuerza bruta (usando el iThemes plugin)

  • Cambiar wp-admin url (usando iThemes plugin)

  • Deshabilita las modificaciones de los archivos PLUGIN / THEME desde el panel de control (usando el iThemes plugin)

  • En algunos casos, usa el complemento IP LOGIN RESTRICTOR (bloquea todas las IP no permitidas si intenta ingresar a cualquier página en el área /wp-admin .

  • instalando complementos de seguridad (como iThemes), que hace:

  • Si el sitio específico es ALTAMENTE CRÍTICO, solo uso esos complementos y el tema **, que es la fuente que verifiqué línea por línea por seguridad.

  • Habilitar actualizaciones automáticas para CORE & PLUGINS & TEMAS !

  • usa el plugin "block bad IP / bots".

  • instala el complemento de Actividades para inspeccionar las actividades de vez en cuando.

  • verifique los registros de inicio de sesión para las IP si alguien ingresó desde otro país.

  • Cerrar sesión si se usa Internet pública.

Partes aún vulnerables:

  • alguien podría omitir autorización bidireccional , wp-admin ofuscación de backend u otras restricciones usando:

    • "COOKIE Brute forcing" (en lugar de verificación de la contraseña del usuario).

    • Aplicación de WordPress en Android (no solicita detalles de 2 factores, porque tiene su forma de conectarse a WP)

    • Comandos JSON-API (no solicita detalles de 2 factores o etc ...)

"Sugerencias" inútiles :

Es posible que hayas escuchado varios de estos, pero son inútiles:

  • Ocultando cualquier enlace wp-* en la fuente (bastante inútil, alguien simplemente verifica cualquier archivo, es decir, example.com/wp-settings.php para el código HTTP 200).

  • Ocultar la versión / readme de WordPress (es inútil, ya que alguien puede verificar la fuente del sitio y entenderá qué versión está usando)

  • Cambiando Admin nombre de usuario (inútil, cualquiera puede ver sus nombres de usuario en: yoursite.com/wp-json/wp/v2/users a menos que haga lo que dije en la parte superior)

respondido por el T.Todua 04.03.2018 - 11:45
fuente
0

Hay cientos de artículos sobre este tema. Por favor, lea los siguientes artículos.

Si puede permitírselo, alquile un servidor dedicado para que otros sitios web comprometidos que se encuentran en el mismo cuadro que el suyo no lo afecten. Puedes hacer todo lo que puedas para asegurarte de que tu sitio web sea seguro, pero si tu host utiliza una versión obsoleta de Apache o Linux, solo podría ser tu desaparición.

Realice regularmente una suma de comprobación y / o una revisión del código en sus complementos. Es común que los piratas informáticos introduzcan shellcode en sus complementos, ya que no lo esperaría / buscaría allí y se ejecutará cada vez que se ejecute ese complemento. Si encuentra algún complemento que no puede verificar que instaló, elimínelo. Vigile la fecha en que se modificó por última vez un complemento, documente cada modificación que realice en un complemento.

Si debe almacenar contraseñas, hágalo de manera segura. Use un algoritmo de hashing fuerte con una sal por usuario (no debe haber dos sales iguales). La sal de los usuarios (si está almacenada) debe estar en una base de datos separada. Lea este artículo (OSWASP) sobre cómo almacenar las contraseñas de manera segura.

Hablando de bases de datos, use la regla de privilegios mínimos. Comprobar si las credenciales de un usuario son correctas no requiere privilegios de root.

Asegúrese de realizar la validación en todas las entradas del usuario . Para búsquedas, campos de registro, etc. esto será fácil, comentarios / respuestas no tanto. Establecer una lista blanca de entrada válida, restringir todo lo demás. Por ejemplo, en su página de registro no hay razón para permitir nada más que a-z, A-Z y 0-9 en el campo de nombre de usuario. Todo lo demás debería estar explícitamente restringido. Desde mi experiencia, la forma más fácil de ingresar a un sitio web (Wordpress o no) es explotar la validación incompetente. Hacer uso de las listas blancas y el carácter de escape.

Cuenta para todos los vectores de ataque. Si solo está haciendo una instalación de Wordpress, asegurarla es relativamente fácil. Sin embargo, en el futuro puede instalar complementos y aplicaciones adicionales (foros, comercio electrónico, análisis, etc.). A continuación, debe asegurarse de que estén actualizados y de que tiene contraseñas seguras.

Limite el número de intentos de inicio de sesión que un usuario puede intentar antes de ser bloqueado. Personalmente, uso el nombre adecuado " Limitar intentos de inicio de sesión " pero hay bastantes por ahí, como bloqueo de inicio de sesión . Algunas personas también usan un CAPTCHA en su página de inicio de sesión, es una cuestión de preferencia. Esto reducirá enormemente las posibilidades de que un ataque de fuerza bruta (un método de penetración ya deficiente) tenga éxito. Habilite también el registro opcional.

Si necesita información adicional, no dude en ponerse en contacto conmigo. Tenía mucho más que agregar, pero decidí eliminarlo para ahorrar energía;)

    
respondido por el Fairlight 29.05.2012 - 22:57
fuente
0

Para las auditorías automáticas, puede encontrar plecost de interés.

Visite definitivamente enlace para obtener una lista muy completa de tácticas y estrategias. Otras respuestas a su pregunta tienen enlaces igualmente útiles. Revise cada uno de ellos hasta que sienta que tiene la cobertura adecuada.

Además, ten muy en cuenta los complementos que instalas y cuántos. Mientras que WordPress está en constante desarrollo y revisión por pares, no se puede decir lo mismo de muchos de estos complementos. Cada uno representa un riesgo de seguridad y debe mantenerse.

    
respondido por el chao-mu 28.06.2012 - 18:30
fuente
0

El complemento de seguridad de iThemes es bastante bueno para hacer cosas como cambiar los nombres de inicio de sesión, el prefijo de la base de datos, las sales e incluso cambiar / ocultar el área de administración y la página de inicio de sesión. También es bueno para verificar permisos.

Algo de lo que no he visto demasiado es cómo proteger el xmlrpc.php que está expuesto a los ataques DoS, incluso si utilizas el plugin Jetpack y activas "proteger". Encontré este código para poner en el archivo .htaccess o apache para permitir solo el acceso a xmlrpc.php por el rango de IP de WordPress.

<files xmlrpc.php="">
Order Deny,Allow
Deny from all
Allow from 192.0.64.0/18
Satisfy All
ErrorDocument 403 http://127.0.0.1/
</files>

¿Espero que esto sea útil o quizás alguien conozca una mejor manera de proteger el xmlrpc.php?

    
respondido por el sdexp 15.10.2016 - 21:23
fuente

Lea otras preguntas en las etiquetas