Saltar al contenido principal

Cross Site Scripting




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 además llamado XSS o inclusive las inyecciones generales de HTML, constituye la técnica de ataque más utilizada en apps y sitios web.[1]

Información general

Los ataques de Cross Site Scripting presuponen que

a) un hacker o atacante envía un hipervínculo modificado a un destinatario (usuario o servidor).

b) El destinatario lo abre haciendo clic en él o lo procesa porque no está verificado.

c) El navegador del destinatario tiene JavaScript activado (otros lenguajes de scripting además son utilizables).

d) O bien, el servidor en el que el destinatario quería navegar usa apps 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 portal web, si los datos son correctos. Un ataque de cross site scripting tiene lugar precisamente entre estas dos webs y éstas no disponen porqué ser distintos sitios con URLs distintos. Más bien, la técnica XXS se usa 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 usan 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. Puesto que millones de sitios usan estos lenguajes, los ataques XSS son medios eficaces para ingresar 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, dado que estas webs usualmente 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 disponen un gran riesgo potencial.

2.) No persistente: Aquí, el usuario recibe un link manipulado. Una vez que se hace clic en el link, el código malicioso se iniciará y ejecutará un script. Muchas veces, 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, dado que requieren un alto grado de interacción con el usuario. Siempre están del lado del cliente y normalmente se usan junto con sitios web dinámicos.

3.) Local: En esta circunstancia, el código malicioso se enviará de forma directa a un cliente para ejecutarlo, por ejemplo, en el navegador. Un ataque XSS local es siempre código malicioso de forma directa 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 principios fundamentales de URL o etiquetas de script. Luego de la interrogación, el código malicioso se ejecuta en segundo plano sin el conocimiento del usuario. Los ataques XSS locales disponen como objetivo atacar páginas HTML estáticas, pero además dependen de un usuario que hace clic en un link malicioso.

Contramedidas al Cross Site Scripting

Tanto los usuarios como los webmasters pueden adoptar medidas de protección. Los usuarios pueden usar, por ejemplo, el complemento NoScript, que prohíbe la ejecución de scripts. Inclusive es factible desactivar JavaScript. No obstante, se utilizarán otros lenguajes de programación, como VBScript, PHP y Pearl. Es sobre todo importante que los usuarios sean escépticos al hallar 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, sobre todo 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 además acumulan muchos datos. De esta manera, 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 factible 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 apps web están diseñados para proteger las apps web especiales contra el acceso no autorizado de un cortafuegos.

Importancia para el SEO

El Cross Site Scripting además se usa en el campo del SEO. Un portal 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 portal 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 usualmente no pueden hallar 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.

Enlaces Web

R Marketing Digital