Cross Site Scripting

En la categoria:

El Cross Site Scripting (XXS) es una técnica de ataque popular en Internet en la que el código malicioso se ejecuta tanto en el lado del servidor como en el del cliente, con el fin de robar datos sensibles o identidades digitales. Junto con las inyecciones SQL, el cross-site scripting también llamado XSS o incluso las inyecciones generales de HTML, constituye la técnica de ataque más utilizada en aplicaciones y sitios web.[1]

Información general

Los ataques de Cross Site Scripting presuponen que

  1. un hacker o atacante envía un hipervínculo modificado a un destinatario (usuario o servidor).
  2. El destinatario lo abre haciendo clic en él o lo procesa porque no está verificado.
  3. El navegador del destinatario tiene JavaScript activado (otros lenguajes de scripting también son utilizables).
  4. O bien, el servidor en el que el destinatario quería navegar utiliza aplicaciones web que emiten sitios web dinámicos y los datos no se comprueban.

Un ataque de Cross Site Scriptings tiene lugar cuando se accede a una web. Si un usuario visita una web para introducir información de inicio de sesión, el navegador envía un formulario con datos al servidor. El servidor concede el acceso al sitio web, si los datos son correctos. Un ataque de cross site scripting tiene lugar exactamente entre estas dos webs y éstas no tienen porqué ser diferentes sitios con URLs diferentes. Más bien, la técnica XXS se utiliza para que los sitios generados dinámicamente se interpongan entre el cliente y el servidor mientras se introducen los datos. Las respuestas del servidor son imitadas para enviar los datos introducidos por el usuario a una dirección, que el atacante determina.

Esto se hace ejecutando scripts que el atacante ha interpuesto. Estos scripts utilizan parámetros como GET, POST y (document.cookie) para subvertir la comunicación entre el cliente y el servidor. Tanto en el lenguaje de marcas HTML como en el lenguaje de programación PHP se soportan estos métodos. Dado que millones de sitios utilizan estos lenguajes, los ataques XSS son medios eficaces para acceder a los datos de los usuarios.

Características

El Cross Site Scripting se divide en tres tipos de ataques:[2]

  1. Persistente: Con ataques XSS persistentes, el código malicioso permanece en la pantalla y el usuario no es necesariamente identificable. En foros, comunidades o libros de visitas webs, el código malicioso no se filtra y se presenta en forma de enlaces, ya que estas webs a menudo comprueban sus entradas. Un ataque XSS persistente puede tener lugar en el caché de una aplicación web o en una base de datos conectada de dichos sitios web. Los ataques persistentes siempre están en el lado del servidor y tienen un gran riesgo potencial.
  2. No persistente: Aquí, el usuario recibe un enlace manipulado. Una vez que se hace clic en el enlace, el código malicioso se iniciará y ejecutará un script. A menudo, los correos electrónicos falsos de los atacantes se envían para incitar a los usuarios a interactuar. Los atacantes imitan formularios y sitios web e insertan un script para llegar a las cookies de sesión con los datos del usuario. El potencial de riesgo asociado a los ataques XSS no persistentes es relativamente bajo, ya que requieren un alto grado de interacción con el usuario. Siempre están del lado del cliente y normalmente se utilizan junto con sitios web dinámicos.
  3. Local: En este caso, el código malicioso se enviará directamente a un cliente para ejecutarlo, por ejemplo, en el navegador. Un ataque XSS local es siempre código malicioso directamente ejecutable que no depende de una vulnerabilidad en la comunicación servidor-cliente. Más bien, es un ataque directo en forma de un script que pide cierta información, como argumentos de URL o etiquetas de script. Después de la interrogación, el código malicioso se ejecuta en segundo plano sin el conocimiento del usuario. Los ataques XSS locales tienen como objetivo atacar páginas HTML estáticas, pero también dependen de un usuario que hace clic en un enlace malicioso.

Contramedidas al Cross Site Scripting

Tanto los usuarios como los webmasters pueden adoptar medidas de protección. Los usuarios pueden utilizar, por ejemplo, el complemento NoScript, que prohíbe la ejecución de scripts. Incluso es posible desactivar JavaScript. Sin embargo, se utilizarán otros lenguajes de programación, como VBScript, PHP y Pearl. Es especialmente importante que los usuarios sean escépticos al encontrar hipervínculos en correos electrónicos, mensajes o foros, porque los ataques XSS pretenden ser una web oficial. Con la cantidad adecuada de escepticismo, tales riesgos pueden ser excluidos desde el principio. Para los webmasters y los hosts, es crucial que la programación del código fuente, especialmente del formato de los datos, se haga correctamente y de forma segura. Todos los datos del formulario deben ser verificados para verificar su exactitud en términos de caracteres, codificación e integridad. Las listas blancas que definen qué datos están permitidos se consideran la mejor práctica. Los grandes proyectos también acumulan muchos datos. Por lo tanto, se recomiendan acciones que conviertan ciertos caracteres de scripts. Esto evita que los meta scripts ejecutables sean leídos por el servidor o cliente. La reescritura de caracteres es posible en cualquier lenguaje de programación sustituyéndolos o enmascarándolos. Una acción final, pero insegura, es el uso de los WAF: Los cortafuegos de aplicaciones web están diseñados para proteger las aplicaciones web especiales contra el acceso no autorizado de un cortafuegos.

Importancia para el SEO

El Cross Site Scripting también se utiliza en el campo del SEO. Un sitio web es hackeado para colocar backlinks en él que apuntan a un dominio para ser fortalecido. El cross site scripting es un conocido método de “black-hat”, que explota las vulnerabilidades de servidores y clientes para incrustar enlaces que el webmaster del sitio web afectado no debe conocer. Google y otros motores de búsqueda castigan estos enlaces porque se consideran medidas manuales y antinaturales. Los motores de búsqueda a menudo no pueden encontrar de dónde se originaron estos enlaces o cómo llegaron al sitio.[3] Para prevenir eficazmente el cross-site scripting, el webmaster tiene que tomar las medidas que se han descrito anteriormente.

Referencias

[1] [2] [3]