Vulnerabilidades de seguridad

Para muchas empresas del mundo, las vulnerabilidades de seguridad del sitio web no son el punto central de la gestión, hasta que se enfrentan a una violación grave. En realidad, la seguridad de la web y los problemas de seguridad deberían ser una prioridad, ya que actualmente vivimos en un mundo muy digitalizado. La vulnerabilidad de seguridad es un tema serio y debe ser abordado en consecuencia.

Si tu sitio web se enfrenta a una vulnerabilidad de seguridad, también podría afectar a la información que compartes en tus páginas de medios sociales.

Vulnerabilidades de seguridad
Imagen tomada del usuario de Strikingly

En este post, hablaremos de las 10 vulnerabilidades de sitios web más significativas a las que podrías enfrentarte, y algunos consejos rápidos sobre cómo evitarlas.

10 vulnerabilidades de seguridad de sitios web más comunes

Aquí están los 10 problemas de seguridad web más comunes con los que hay que tener cuidado en estos tiempos.

1. Fallos de inyección

Se producen cuando hay un fallo clásico en el filtrado de la entrada no fiable. Los fallos de inyección pueden ocurrir cuando los datos no filtrados se pasan al servidor SQL, al servidor LDAP o al navegador, lo que se denomina XSS. Cuando los datos van al servidor SQL, el incidente se denomina inyección SQL. Cuando va al servidor LDAP, se denomina inyección LDAP.

La principal vulnerabilidad de seguridad del sitio web en este caso es que el atacante o hacker también puede inyectar o enviar comandos a estas entidades, causando una pérdida de datos. Esto hace que los navegadores de los clientes sean secuestrados.

Siempre que tu aplicación reciba algo de fuentes no confiables, tiene que ser filtrado, o de lo contrario se convierte en un problema de seguridad web. Además, nunca se debe utilizar un elemento o dato de la lista negra, ya que se puede eludir fácilmente. Hay muchos programas o aplicaciones antivirus que dan ejemplos de listas negras que fallan.

Sin embargo, la protección contra esta vulnerabilidad de seguridad es posible. Se trata simplemente de tener cuidado con la entrada de datos. Filtrar adecuadamente antes de inyectarla y decidir si es de confianza o no.

2. Autenticación rota

Esta categoría incluye cualquier problema o vulnerabilidad de seguridad que se produce durante un incidente de autenticación rota. Este tipo de vulnerabilidades de seguridad del sitio web pueden tener diferentes causas de origen.

Vulnerabilidades de seguridad
Imagen tomada del blog de Strikingly

La forma más sencilla de evitar este problema de seguridad web es utilizar un framework. Si no prefieres rodar tu propio código, entonces aprende cuáles podrían ser las posibles trampas para prevenir o evitar esta situación.

3. Scripting de sitio cruzado

Este es uno de los más populares. Es un filtro de sanitización de entrada. Lo que sucede para causar esta vulnerabilidad de seguridad es que un hacker proporciona etiquetas de JavaScript a tu aplicación web como entrada. La entrada entonces va al usuario mientras está todavía sin sanear. El navegador en el dispositivo del usuario lo ejecuta. Incluso puede ser algo tan simple como que el hacker cree un enlace y pida al usuario que haga clic en él. Cuando el usuario haga clic en el enlace, la página se cargará en su navegador y enviará las cookies al hacker.

Vulnerabilidades de seguridad
Imagen tomada del producto de Strikingly

La forma de prevenir las vulnerabilidades de seguridad de los sitios web de secuencias de comandos cruzadas, todo lo que necesitas hacer es asegurarse de que no devuelve las etiquetas HTML a tu cliente. Esto te protegerá de todas las inyecciones de HTML, incluido el tipo de ataque por el que el hacker envía una entrada de HTML simple.

Otra forma de evitar este tipo de problema de seguridad web es utilizar expresiones regulares que puedan eliminar todas las etiquetas HTML. Pero este método puede ser un poco arriesgado ya que algunos navegadores podrían interpretar el HTML roto como si estuviera bien. La mejor manera es simplemente convertir todos los caracteres en sus contrapartes.

4. Referencias directas a objetos inseguros

Este es otro tipo entre las vulnerabilidades de seguridad de sitios web más comunes. Esto ocurre cuando confías en la entrada de algún usuario y luego tienes que pagar el precio o afrontar las consecuencias. Una referencia directa a un objeto se refiere a un archivo o una base de datos que se expone a un usuario. El problema se produce si la referencia proviene de un hacker, lo que significa que la autorización no se aplica, o incluso podría romperse. Si esto ocurre, el hacker obtiene acceso a datos que no debería tener, o consigue permiso para realizar acciones que no debería realizar.

Un ejemplo de este problema de seguridad en la web podría ser que alguien te enviará un archivo llamado, por ejemplo, "download.php". Este archivo se supone que permite descargar archivos y utiliza un parámetro CGI para identificar el nombre del archivo (por ejemplo, download.php?file=cualquier cosa.txt). Es posible que, por pereza, descuido o simplemente por error, el desarrollador de la web no haya puesto la autorización en el código. Ahora cualquier hacker puede utilizarlo fácilmente y descargar los archivos del sistema que estés ejecutando o a los que tengas acceso. Incluso podría incluir copias de seguridad, el propio código de la aplicación, o cualquier otro dato que tengas por ahí en tu servidor.

Otro ejemplo de este tipo de vulnerabilidades de seguridad del sitio web podría ser la función para restablecer tu contraseña en un sitio web. Esta función se basa en la entrada del usuario para determinar la contraseña que debe restablecerse. Una vez que se hace clic en la URL válida, un hacker puede simplemente cambiar el campo del nombre de usuario en la página web y sustituir el texto por algo como "admin".

Este tipo de vulnerabilidad del sitio web podría evitarse si realizas la autorización de los usuarios de forma consistente y diligente. Si almacenas tus datos internamente y dejas de depender de los datos que se pasan a través de parámetros CGI, eso también reducirá las posibilidades de entrar en una vulnerabilidad de seguridad de este tipo.

5. Configuración de seguridad

Dado que vivimos en un mundo lleno de vulnerabilidades de seguridad en los sitios web, las aplicaciones y servidores web mal configurados son más comunes que los que están perfectamente configurados. Esto abre espacios y oportunidades para que las cosas se arruinen y surjan problemas de seguridad. Algunos ejemplos de problemas de seguridad derivados de una mala configuración son los siguientes.

  • Ejecución de una aplicación mientras la depuración está habilitada.
  • Fuga de información valiosa debido a que el listado de directorios está activo en el servidor.
  • Usar software que está muy desactualizado, como un plugin de WordPress.
  • Tener muchos servicios innecesarios ejecutándose en el dispositivo.
  • No cambiar las contraseñas o claves que obtienes por defecto al crear por primera vez una cuenta en un sitio web o aplicación.

La forma de prevenir estos problemas de seguridad en la web es construir un mecanismo automatizado de "construcción y despliegue".

6. Exposición de datos sensibles

Algunas de las vulnerabilidades de seguridad de los sitios web son la protección de recursos y la criptografía. Todos sabemos que los datos sensibles deben estar siempre encriptados en todo momento, incluso si los datos están en reposo o en alguna forma de tránsito. Realmente no hay excepciones a esta regla.

Las contraseñas de los usuarios y la información de las tarjetas de crédito son los tipos de datos más sensibles, y nunca deben almacenarse o viajar sin cifrar. Siempre debes mantener tus contraseñas con hash. No debes utilizar algoritmos de cifrado débiles. Mantén siempre la bandera de seguridad sobre las cookies sensibles. Además, los datos protegidos nunca deben almacenarse junto a las claves de cifrado.

Estas acciones no pueden ser exageradas, ya que estas te permitirán estar libre de estas graves vulnerabilidades del sitio web.

7. Fallo de control de acceso a nivel de función

Este es otro fallo de autorización que causa problemas de seguridad. Cuando llamas a una función en un servidor y no realizas la autorización adecuada, surge un problema que se puede denominar como falta de control de acceso a nivel de función. Muchas veces, los desarrolladores de sitios web dependen de la posibilidad de que el lado del servidor genere algún tipo de UI. Asumen que cualquier funcionalidad que no sea proporcionada por el servidor del dispositivo permanecerá inaccesible para el cliente. Pero en realidad, las peticiones siempre pueden ser falsificadas por los hackers y atacantes creando funcionalidades "ocultas".

Por ejemplo, hay un panel de administración, y su botón sólo existe en la interfaz de usuario en el navegador del usuario que es el verdadero administrador. Pero un atacante puede descubrir fácilmente esta funcionalidad y hacer un mal uso de ella si carece de autorización.

La forma simple de evitar entrar en tales vulnerabilidades de seguridad del sitio web es siempre asegurarse de hacer la autorización correctamente.

8. Falsificación de solicitud de sitio cruzado (Cross-Site Request Forgery)

En pocas palabras, esto se denomina CSRF. Esto sucede cuando alguna otra parte intenta acceder a un navegador y el navegador es engañado para permitir que la parte haga mal uso de su autoridad. Esta tercera parte podría estar haciendo algo dentro del navegador para ayudar a un atacante.

La forma en que se hace esto es que el sitio web de terceros envía peticiones al sitio web de tu marca, utilizando tu sesión o tus cookies para engañar al navegador de que eres tú. Digamos que, en un momento dado, has iniciado sesión en tu aplicación bancaria o en el sitio web de la banca en línea, y ese sitio se enfrenta a estas vulnerabilidades de seguridad del sitio web, una segunda pestaña que abres podría hacer un mal uso de las credenciales y dar acceso a ellas al atacante. Esto provocará un error de adjunto confuso. El adjunto en este caso se define como el navegador que hace un mal uso de las cookies de sesión para hacer algo en nombre del atacante.

La forma de estar a salvo de este tipo de vulnerabilidad en un sitio web es almacenar una clave secreta o token en un campo de formulario que esté oculto e inaccesible desde cualquier sitio web de terceros.

9. Usar componentes con vulnerabilidades conocidas

Esto es más bien un problema de mantenimiento del sitio web. Este tipo de vulnerabilidad del sitio web ocurre en los casos en que un sitio es propiedad porque una aplicación de terceros se mantuvo sin parches durante mucho tiempo. Esto sucede con los plugins de WordPress todo el tiempo.

10. Redirecciones y reenvíos no validados

Este es otro problema de filtrado de entrada que causa vulnerabilidades de seguridad en el sitio web. Supongamos que un sitio web tiene un módulo 'redirect.php'. Se supone que toma una URL en forma de parámetro GET. Pero cuando alguien manipula el parámetro, se creará una nueva URL en, por ejemplo, 'targetsite.com'. Este nuevo enlace redirigirá al usuario a 'malwareinstall.com'. Pero cuando este enlace se abre en el navegador del usuario, éste puede pensar que es un sitio seguro y de confianza y hacer clic en él. En realidad, al hacer clic en ese enlace se le enviará a una página de descarga de malware. Este es un ejemplo de redirección o reenvío no validado.

La mejor manera de evitar estos problemas de seguridad es no utilizar redirecciones en absoluto.

Una buena manera de evitar todas las vulnerabilidades de seguridad del sitio web

Una manera efectiva de evitar, o al menos, reducir las posibilidades de enfrentar tales vulnerabilidades del sitio web es utilizar una plataforma de construcción de sitios web de confianza para construir tu sitio.

Vulnerabilidades de seguridad
Imagen tomada del producto de Strikingly

En Strikingly, ayudamos a resolver todos los problemas técnicos a los que se enfrentan nuestros usuarios, para que puedas centrarte en el crecimiento y la expansión de tu negocio mientras no tienes problemas con el diseño, el lanzamiento y el mantenimiento de tu sitio. Proporcionamos soporte de chat en vivo a tiempo completo a todos nuestros usuarios y también estamos disponibles para responder a cualquier pregunta que puedas tener antes de registrar una cuenta con nosotros.

 Vulnerabilidades de seguridad
Imagen tomada del producto de Strikingly

Es muy sencillo empezar a trabajar con nosotros. Puedes registrarte para obtener una cuenta gratuita en Strikingly desde nuestra página web. Una vez que tu sitio web esté en funcionamiento, puedes obtener más información sobre nuestras características y herramientas uniéndote a nuestra comunidad online.