Di una charla a WordCamp San José 2017 sobre las bases de la seguridad con WordPress. Éste es el articulo complementario que escribí por la. Si buscas solamente las diapositivas, haga clic aquí. Aquí está el articulo original en inglés.
Seamos sinceros: ninguna persona quiere despertarse una mañana con su sitio WordPress hackeado, o peor, el sitio de tu cliente hackeado.
¿Que pasa cuando Google marca tu sitio como malware? ¿Que si la empresa de alojamiento web cierra tu cuenta? ¿O si tu cuenta de correo electronico termina en una lista negra? Cosas como estas pueden poner tu reputacion y tu empresa en peligro. Y encima de eso, ¡solo es si tu te das cuenta! Un hacker puede tomar el control de tu sitio sin que tú lo sepas.
La seguridad de web es un tema importante para todos los utilizadores de WordPress. Y eso un tema que puede devenir muy complicado si exploras profundamente. Sin embargo, las bases no son tan difíciles a comprender. Es porque el articulo se centrará en ésta.
Repasaremos conceptos básicos y algunas recomendaciones. Estas recomendaciones son buenas por los utilizadores de WordPress de todos los niveles. Si tú eres un utilizador de WordPress avanzado, es posible que no vayas a aprender tanto.
Conceptos
Antes de ir a ver las recomendaciones, repasamos algunos conceptos básicos sobre la seguridad de web. Éste va a ayudarte a comprender las recomendaciones que vamos a ver.
Tipos de ataques
Empecemos con los tipos de ataques que puedes sufrir. Hay dos grandes categorías para categorizarlos: generalizado y dirigido.
Generalizado
Estos son los tipos de ataques que asocias con “hackeado”. Estos son de natura oportunista. Ataques utilizan bots para buscar la web por sitios con vulnerabilidades conocidas como “TimThumb”. Estas vulnerabilidades son fáciles de explotar y permiten a los ataques de infectar sitios a gran escala.
Dirigido
Un ataque dirigido es un ataque dirigido a un sitio específico. Estos sitios son normalmente sitios WordPress grande con mucho tráfico. Estos sitios tienen el mejor potencial de recompensar los agresores. Así valen la pena el tiempo y la energía a comprometer. Es también la razón porque la mayoría entre nosotros nunca va a sufrir de este tipo de ataque.
Una excepción es ex empleados o contratistas. Si tu relación con estos no termina bien, es posible que deseen atacarte como retribución. Es importante de nunca bajo-estimar la motivación de una persona descontenta.
Vectores
Vectores son las diferentes maneras que un agresor puede utilizar para infectar tu sitio. Es el concepto más importante para comprender.
Cada recomendación de seguridad que vamos a ver se centra sobre éstos. Intentan eliminar o reducir el riesgo alrededor de un vector de ataque. Los menos vectores de ataque que tú tengas, el más seguro tú estás. Es un poco una generalización, pero está destinado a ilustrar la importancia del concepto.
Aquí están algunos comunes vectores que agresores utilizan para infectar sitios.
Software vulnerable
Software vulnerable no es solamente sobre la utilización de versiones anticuados. Es fácil de pensar que los dos son los mismos. Más bien deberías centrar sobre el estado vulnerable del software. Estar anticuado es una manera que el software puede estar vulnerable.
¿Entonces que hace que un software anticuado sea vulnerable? Son las vulnerabilidades que el programador ha reparado. Estas vulnerabilidades devienen siempre conocimientos públicos cuando están reparados. Al caer detrás, estas exposandote a éstas. Para los agresores, sitios con software anticuado son fáciles a explotar. En general, es más un problema con los plugins que con WordPress sí mismo.
Contraseñas
Es un hecho que la mayor parte de nosotros no gustan las contraseñas. Es una verdadera que los agresores utilizan todo el tiempo. Mucha veces, nuestras habitudes alrededor de las contraseñas están las grietas en nuestra armadura.
Eso es porque hoy en día brechas de seguridad ocurren sobre una base regular. Utilizar la misma contraseña o el mismo grupo de contraseñas te plasa en riesgo. Es mejor de asumir que tu contraseña está ahí fuera.
Personas piensan siempre que sólo haya solamente su contraseña WordPress que puede causar problemas. Pero es un objetivo fuera de mucho. Tienes contraseñas para tu FTP, SSH, base de datos, cPanel y más. ¡Y eso es solamente para tu sitio!
Si un agresor gana acceso a tu correo electrónico, sólo puede reiniciar todas sus contraseñas. Ahora has perdido todo el trabajo que hiciste para seguro tu sitio. Es por eso que son una avenida común para las infecciones.
Puedes utilizar un servicio como “haveibeenpwned” para advertirte si una brecha de seguridad compromete una de sus contraseñas.
Servidores contaminados
Es fácil de pasar por alto los servidores como una causa de contaminación. Alojamiento web se hace más barato cada año. Pero todavía demasiado común de tomar atajos con éstos.
Si un agresor compromete tu servidor, puede infectar todos los sitios alojados en él. Lo llamamos contaminación cruzada. Toda la cosa puede invalidar muchos de tus precauciones de seguridad que tomaste.
Complica también el trabajo de limpieza el servidor. Es porque una contaminación cruzada va a continuar a reinfectar tus sitios. Necesitas limpiar el servidor completamente para deshacerse de eso.
Infecciones
Ahora que miramos los vectores de infección. Miramos a algunos comunes tipos de infecciones.
Puertas traseras
El propósito de una puerta trasera es simple. Permite a un agresor de ganar acceso a tu sitio. Lo hace pasando por alto el sistema de autenticación.
La puerta trasera sí misma no hace nadie daño. Su propósito es solamente de comprometer la seguridad de tu sitio. Esto da rienda libre a él. El agresor puede utilizar entonces esa puerta trasera para hacer daño real.
Inyecciones
El objetivo de las inyecciones es añadir contenido no deseado a tu sitio. Ese contenido puede tomar formas diferentes. Los comunes son:
- Enlaces
- iFrames
- SEO
- Redirecciones
- Guiones maliciosos
Agresores utilizan esos por ganancia financiera. A menudo inyecciones convierten tu sitio de modo que apunta a productos o sitios farmacéuticos. Pero pueden hacer parte de esquema de SEO no deseado también.
Disfigurados
¿Te despertaste un día para encontrar tu sitio de fan de gatitos de Bengala convertido en un sitio activista de PETA? Las personas tienden a ver eses tipos de ataques como hackeados. A menudo agresores perpetra eses ataques para mostrar apoyo para una causa.
Recomendaciones
Tomemos un vistazo a algunas recomendaciones. Se centran sobre la configuración, mantenimiento y el alojamiento de tu sitio. Esas recomendaciones son relevantes tanto para principiantes como para expertos. No necesitas experiencia de programación para implementarlas también.
Configuración
Las recomendaciones de configuración se centran sobre la instalación inicial de tu sitio WordPress. Son pequeños cambios que puedes hacer durante el proceso de instalación. Se asegurarán que tu sitio WordPress es más seguro desde el principio.
No utilices valores predeterminados
¿Has visto la película “El código Enigma”? La historia gira alrededor rompiendo esta máquina de cifrado llamado “Enigma” durante la segunda guerra mundial. Sus cifrados serían tan complejos que sería imposible romperlo.
Todavía terminaba siendo deshecho por un valor predeterminado. Todos los mensajes se terminaban con la misma frase. Esta frase estaba “Heil Hitler”.
Utilizar el nombre de usuario “admin” crea el mismo tipo de vulnerabilidad. Haces la combinación de nombre de usuario y contraseña más débil eliminando un obstáculo que el agresor necesita superar. Si tu nombre de usuario es “admin”, solamente necesita descubrir tu contraseña ahora.
El prefijo predeterminado de la tabla de base de dato es otro valor predeterminado que los agresores aprovechan todo el tiempo. La mayoría de los ataques de inyección SQL asuman que los sitios utilizan “wp_” como el prefijo predeterminado.
La mayoría de los agresores no molestarán en comprobar que es el prefijo correcto. Están buscando objetivos fáciles. ¡Y tú no eres uno de ellos!
Utiliza contraseñas fuertes y únicas
Es la recomendación que nadie le guste escuchar. Pero es probablemente la más importante de todas las recomendaciones. Tus contraseñas necesitan estar únicas y tener más de 14 caracteres. También necesitan contener:
- Letras minúculas y mayúsculas
- Caracteres especiales
- Numeros
Si no desean utilizar todos estos condiciones, otra solución es utilizar una frase de contraseña. Una frase de contraseña es simplemente una frase muy larga que es difícil de descifrar. Es más fácil de recordar que una contraseña con caracteres aleatorios. Pero esto es solamente una distracción de la verdad que es…
Necesita utilizar un administrador de contraseñas. Te ayuda a generar contraseñas complejas y guárdalas para ti. 1Password y LastPass son las dos aplicaciones las más populares. Comprar una de las dos es una buena inversión.
Haz una cuenta administrador y una regular
Esta idea viene del “principio de mínimo privilegio“. Afirma que necesites dar una cuenta el mínimo privilegio para hacer su trabajo. De esta manera no te expones a riesgos innecesarios.
La mayoría del tiempo no necesitas el privilegio de administrador. Estás publicando contenido. No estás instalando plugins o cambiando la configuración. Crea una cuenta de administrador separada para utilizar para esas circunstancias especiales.
Desactivar el editado de archivos
El editado de archivos es una capacidad muy poderosa disponible a los administradores. Permite a algún agresor de ejecutar código malicioso. Todo lo que necesitan una cuenta de administrador.
Incluso con una buena seguridad de cuentas, todavía tomas riesgos innecesarios. No deberías editar archivos en un ambiente de producción. Desactivado el editado de archivos asegura que un agresor no puede tampoco.
Mantenimiento
Recomendaciones de mantenimiento tratan con tu día a día. Son buenas habitudes para mantener tu sitio WordPress seguro.
Utiliza fuentes confiables
Nunca utiliza un plugin o tema que vino de una fuente no confiable. Es fácil para un agresor de manipular el código de un plugin bien conocido (y, a menudo, pagado). Entonces el agresor lo redistribuye al exterior de los canales normales (a menudo gratis).
Mantén todo actualizado
Es otra recomendación obvia. Necesita mantener todo actualizado. A agresores les gusta explotar sitios no actualizados. Son objetivos fáciles con vulnerabilidades conocidas y documentadas. Mantenerse actualizado te mantiene fuera de sus radares.
Mantén unas copias de seguridad regulares
Deberías mantener alguna forma de copia de seguridad regular. No van a hacer tu sitio más seguro por decir. Sólo reducen el daño potencial que un agresor pueda hacer. Sí, sigue siendo una situación horrible, pero es mucho menos doloroso. Puedes reparar y conseguir tu sitio funcionando otra vez en ningún tiempo con algunos buenas copias de seguridad.
Retira plugins o temas no utilizados
Aquí está un guión común. Quieres probar un nuevo plugin o tema. Lo instalas, juegas con eso y lo olvidas. Sólo se quedan allí acumulando polvo.
Deberías retirar alguno plugin o tema que no estás utilizando. Pueden introducir problemas de seguridad incluso si los mantienes actualizados. Es otra manera de cubrir sus apuestas.
Alojamiento web
Recomendaciones para el alojamiento web son para ayudar con servidores web contaminados. El objetivo es limitar el daño causado por el agresor si accede a tu servidor web.
Evita servidores compartidos
Un servidor compartido es un servidor que aloja otros sitios web que tu propio. Son una causa comuna de contaminación cruzada. Es como vivir en un edificio de apartamentos. Necesitas orar que tu alojamiento web (tu dueño en la analogía) tome las buenas precauciones. De otra manera, tú estás en la merced de alguien más compartiendo el servidor contigo.
Es porque no tienes control de la seguridad de esos otros sitios. No importa que tengas todas las precauciones necesarias. Si uno de ellos deviene infectado, puede propagar a todos los otros sitios alojados sobre el servidor. Hace la limpieza casi imposible. Mientras tu sitio se queda sobre el servidor, la infección va a continuar a reinfectar tu sitio.
Así que paga un poco más y consíguete un servidor dedicado o VPS.
Una instalación de WordPress por servidor
Éste toma la idea de no utilizar un servidor compartido un paso más allá. Si haces esto, limitas la exposición de tus servidores a la contaminación cruzada. Si un agresor compromete tu servidor o instalación de WordPress, la infección no puede propagar a otros servidores ni instalaciones.
Si quieres ejecutar más de une sitio sobre un solo servidor, deberías utilizar “WordPress como un red” en lugar. Es como funciona WordPress.com. Vale la pena de señalar que todavía un ataque dirigido puede comprometer todos tus sitios. Siendo consciente de la seguridad es aun más importante con esta configuración.
Utiliza cifrado SSL
Mientras está utilizando cifrado SSL no es obligatorio todavía, se está acercando cada día. Google da una pequeña preferencia a los sitios que utilizan cifrado SSL. Hay una presión creciente para todos a utilizarlo.
Utilizar un cifrado SSL previene un agresor de interceptar tu tráfico. Es imposible para ellos de robar tu contraseña y ganar acceso a tu sitio.
Si no sabes instalar un cifrado SSL, no te preocupes por eso. CloudFlare ofrece SSL gratis con todos sus planes. (¡Incluso el plan gratis!) Necesitas solamente cliquear sobre una opción sobre el panel de control.
El objetivo es manejar riesgo
La idea principal detrás la seguridad de web es manejar riesgo. Estas recomendaciones apuntan a eliminar los vectores de ataque comunes utilizado por agresores. Menos vectores de ataque significa menos riesgo. Es así de simple.
Es imposible tener una protección 100% completa, pero cada paso que tomas te ayuda a acercarte un poco más. Éste cambia la discusión a una sobre soluciones intermedias. ¿Qué cambios te están dispuestos a hacer para reducir ese riesgo? ¿Qué cualidad de vida te está (o tus clientes) dispuesto a sacrificar para él?
Al final del día, la seguridad de web es todo sobre manejar esa equilibra.