Como propietario de un sitio web ¿Hay algo más aterrador que la imagen de nuestro trabajo alterado, secuestrado o destruido por un ataque virtual? Hemos trabajado duro en la marca y su posicionamiento y prestigio online, así que mejor que nadie sabemos cuanto sudor valen, eso sin considerar el inmenso potencial futuro.
Además de Respaldar Regularmente los Archivos (conducta que debería ser instintiva en todo desarrollador web, por varias razones), las siguientes siete medidas de protección deben estar en nuestro workflow para a mantener todo sitio web seguro, saludable y monetizable:
1: Mantener Actualizados Plataformas y Scripts
Es como recibir una vacuna, o mantenerse en forma y en contacto con la naturaleza, deja nuestras defensas alertas e informadas sobre las últimas amenazas conocidas. Debido a que muchas de estas herramientas se crean como programas de software de código abierto, su código está fácilmente disponible, tanto para desarrolladores “buenos” como hackers malévolos. Estos pueden examinar este código, buscando lagunas de seguridad que les permitan tomar el control de tu sitio web.
Por ejemplo, si estás ejecutando un sitio en WordPress, tanto su instalación básica como los plugins son potencialmente vulnerables a este tipo de ataques. Asegurarse de tener las versiones más recientes de la plataforma y scripts instalados minimiza el riesgo de ser invadido de esta manera y normalmente tarda muy poco.
Los usuarios de WordPress pueden comprobar esto rápidamente cuando acceden a su panel de control. Busca el icono de actualización en la esquina superior izquierda junto al nombre de su sitio. Pulsa en el número para acceder a las actualizaciones de WordPress.
2: Instalar Plugins de Seguridad, siempre que sea posible
Una vez actualizado todo, mejora aún más la seguridad de tu sitio web con plugins o complementos que prevengan activamente los ataques.
Una vez más, usando WordPress como ejemplo, hay complementos gratis como iThemes Security y Bulletproof Scurity (o similares disponibles para otros sistemas de gestión de contenido). Estos productos abordan las debilidades inherentes a cada plataforma, frustrando otros tipos de intentos de hacking que podrían amenazar su sitio web.
Como alternativa, ya sea para un sitio auto-administrable o estático en HTML, dale un vistazo a SiteLock. SiteLock va más allá de simplemente cerrar lagunas de seguridad, proporcionando monitoreo diario para todo, desde la detección de malware hasta la identificación de vulnerabilidades, análisis antivirus activo y más. Si tu negocio se basa en la web, SiteLock es definitivamente una inversión que vale la pena considerar.
Nota: En nuestro planes ofrecemos alojamiento Managed WordPress y SiteLock incorporado, junto con otras características para ayudar a proteger tu sitio.
3: Usar HTTPS / Certificado SSL
Como consumidor, es posible que ya sepas buscar los https verdes en tu barra del explorador siempre que proporcionas información confidencial en un sitio web. Para obtener dicho https es necesario adquirir un certificado SSL.
Si tienes una tienda online, o si alguna parte de tu sitio web requiere que los visitantes entreguen información confidencial como un número de tarjeta de crédito, tendrás que invertir en un certificado SSL. El costo es mínimo o incluso gratis, pero el nivel adicional de cifrado que ofrece hará tu sitio web mucho más seguro y confiable.
4: Usar Consultas Parametrizadas
Uno de los tipos de hackeo más comunes son las inyecciones de SQL.
Las inyecciones de SQL pueden entrar en juego si tienes un formulario web o un parámetro de URL que permite a usuarios externos proporcionar información. Si dejas los parámetros del campo demasiado abiertos, alguien podría insertar código en ellos y hackear su base de datos, que puede contener información confidencial del cliente, como contacto o números de tarjetas de crédito, que es obviamente la información que hay que proteger.
Hay una serie de pasos a tomar para proteger tu sitio web de una inyección de SQL; uno de los más importantes y fáciles de implementar es el uso de consultas parametrizadas. Esto asegura que su código tiene parámetros específicos suficientes que no dejan brechas para que un hacker se entrometa.
5: Usar CSP
Similar a las inyecciones de SQL, los ataques de scripts entre sitios (XSS) son otro enemigo común que acecha a webmasters y propietarios de webs. Ocurren cuando los hackers encuentran una manera de infiltrar código JavaScript malicioso en sus páginas, lo que puede infectar el computador, dispositivo y/o páginas de cualquier visitante del sitio web que sea expuesto al código.
En parte la lucha por proteger tu sitio de ataques XSS es similar a las consultas parametrizadas que se usan contra las inyecciones de SQL. Debes asegurarte que cualquier código usado en tu sitio web para funciones o campos que permitan entradas sean lo más explícitos posibles en lo que se permite, sin espacio para que nada más se infiltre.
Otra herramienta anti-ataque-XSS es el CSP (Content Security Policy). El CSP te permite especificar los dominios que un navegador debe considerar fuentes válidas de scripts ejecutables cuando está exhibiendo tu página, para que no preste atención a ningún script malicioso que pueda existir en la computadora de tu visitante.
El uso de CSP es simplemente una cuestión de agregar el encabezado correcto de HTTP a su página web que proporciona una serie de directivas que le dice al navegador qué dominios están bien y cualquier excepción a la regla. Puede encontrar detalles sobre cómo crear cabeceras CSP para su sitio web proporcionadas por Mozilla aquí.
6: Usar Contraseñas Seguras
Este paso casi parece una majadería, pero es talvez el más importante.
Ningún esfuerzo es inútil cuando se trata de crear una contraseña segura – Hay generadores de contraseñas como el de la imagen de Hostgator, y este simple método matemático nemotécnico para crear y deducir 1000 contraseñas diferentes sin esfuerzo y sin olvidos.
Una buena contraseña debe ser una larga mezcla inusitada de caracteres especiales, números y letras. Y por favor de una vez olvídate de cosas fáciles de adivinar como cumpleaños o el nombre de tu primer hijo o mascota. Si un hacker llega a obtener información sobre tí, eso es lo primero que pensará en buscar.
Y asegúrate que todos quienes tienen acceso a tu web también usen contraseñas seguras. Implementa requisitos generales en términos de longitud y tipo de caracteres que deben utilizar. Una contraseña floja dentro del equipo puede hacer vulnerable toda tu plataforma web y hacer pagar muy caro a justos por pecadores.
7: Bloquear Directorio y Permisos de Archivo
Ahora, para el golpe de gracia, vamos a ponernos un poco técnicos, pero será breve e intenso, así que atención!
Todas las páginas web se pueden reducir a archivos y carpetas almacenados en tu hosting web, ya sea de un proveedor o propio. Además de contener los scripts y datos para tu sitio funcione, a cada uno de estos archivos y carpetas se le asignan permisos que controlan quién puede leer, escribir y ejecutar cualquier archivo o carpeta dada, de acuerdo con el usuario o el grupo al que pertenece.
En el sistema operativo Linux, los permisos son visibles como un código de tres dígitos (número entero entre 0 y 7). El primer dígito representa el permiso para el propietario del archivo, el segundo representa el permiso para cualquier persona asignada al grupo que posee el archivo y el tercer dígito representa el permiso para todos los demás. Las asignaciones funcionan así:
4 = Leer
2 = Escribir
1 = Ejecutar
0 = Sin permiso para este usuario.
¿Y el permiso absoluto para Leer, Escribir y Ejecutar un archivo? Sumemos 4 + 2 + 1 y obtendremos el permiso total “7“, y así sucesivamente con los permisos “6” (4 Leer + 2 Escribir) y “5” (4 Leer + 1 Ejecutar).
Ejemplo: Permiso 644. En este caso, el 6 en la primera posición le da al dueño del archivo la capacidad tanto de leer como escribir (o sobreescribir o borrar) el archivo. Los 4 en segunda y tercera posición mandan que tanto los usuarios del grupo como los internautas en general sólo pueden leer el archivo, protegiéndolo de manipulaciones indeseadas.
De este modo, un archivo con permisos “777” ( 4 + 2 + 1 | 4 + 2 + 1 | 4 + 2 + 1) sería legible, escribible y ejecutable por el usuario, el grupo y todos los demás en el mundo.
Como es lógico, un archivo con permisos totalmente relajados es mucho menos seguro que otro bloqueado y con los derechos reservados sólo para el propietario. Claro que hay razones válidas para abrir el acceso a otros grupos de usuarios (FTP anónimo, por ejemplo), pero estas instancias deben ser cuidadosamente consideradas.
Por lo anterior, una buena regla general es establecer permisos de la siguiente forma:
Carpetas y directorios = 755
(dueño del archivo = leer, escribir y ejecutar | grupo usuarios = leer y ejecutar | público general = leer y ejecutar).
Archivos individuales = 644
(dueño del archivo = leer y escribir | grupo usuarios = leer | público general = leer ).
Cómo Asignar los Permisos
Para establecer los permisos de archivo, accede al Administrador de Archivos de tu cPanel o conéctate a tu servidor a través de FTP. Una vez dentro, verás una lista de tus permisos de archivo existentes (como en el siguiente ejemplo generado usando el freeware de FTP Filezilla):
La columna final de este ejemplo muestra los permisos de carpetas y archivos actualmente asignados al contenido del sitio web. Para cambiar estos permisos en Filezilla, simplemente haga clic derecho en la carpeta o archivo en cuestión y seleccione la opción “Permisos de archivo”. Al hacerlo, se iniciará una pantalla que le permitirá asignar diferentes permisos mediante una serie de casillas de verificación:
Aunque el panel de tu hosting web o el programa FTP puede parecer ligeramente diferente, el proceso básico es el mismo.
Consejo final
No dejes de tomar este importante paso ¡Proteger tu sitio usando estas estrategias es vital para mantener su sitio sano y seguro en el largo plazo!