Está en la página 1de 6

La comprensión de las vulnerabilidades de Ajax

Proteger las aplicaciones web que se crean con el Ajax

Jeffrey Orloff 01 de mayo de 2012

Asynchronous JavaScript + XML (Ajax) no es una tecnología web; es una colección de tecnologías creadas específicamente para crear
aplicaciones web dinámicas. Debido a su amplia gama de funciones y facilidad de uso, Ajax es una de las herramientas más utilizadas para la
construcción de aplicaciones web hoy en día. Todas las aplicaciones, incluyendo los construidos usando tecnologías Ajax, son vulnerables a
los ataques que los sitios web de compromiso y las bases de datos que los impulsan. En este artículo, aprender acerca de algunas de las
amenazas a las tecnologías Ajax y cómo protegerse contra ellos.

Introducción

acrónimos usados ​con frecuencia

• Ajax: Asynchronous JavaScript + XML


• CSS: hojas de estilo en cascada
• DOM: Document Object Model
• HTML: Hypertext Markup Language
• JSON: JavaScript Object Notation
• SQL: Structured Query Language
• UI: Interfaz de usuario
• XML: Extensible Markup Language
• XSS: Cross-site scripting

Ajax ha crecido en popularidad entre los desarrolladores web, ya que:

• Tiene la capacidad de crear aplicaciones web robustas que las páginas web basadas en datos dependen
• Tiene la intención de aumentar la velocidad y la facilidad de uso de los sitios web

Sin embargo, la "tecnología" que muchos desarrolladores web se basan en hacer sus aplicaciones basadas en web imitan las aplicaciones de
escritorio tradicionales no es realmente una tecnología en absoluto. Ajax es una colección de tecnologías, con cada tecnología juega un papel
importante en el producto acabado. La Tabla 1 muestra las tecnologías incluidas en el Ajax.

Tabla 1. Las tecnologías utilizadas en el Ajax

Tecnología Utilizar

© Copyright IBM Corporation 2012 Marcas comerciales


La comprensión de las vulnerabilidades de Ajax Página 1 de 6
developerWorks® ibm.com/developerWorks/

JavaScript El lenguaje de programación que permite a todas las tecnologías para trabajar juntos.

XML El lenguaje de marcado que permite que los datos a transmitir, manipular, e
intercambiada entre el servidor y el cliente.

HTML y CSS Las tecnologías que permiten el diseño de la interfaz de usuario y la presentación de la solicitud.

DOM La tecnología que impulsa la visualización dinámica de los contenidos y la interacción con
los datos.

Las cosas que atraen a los desarrolladores web para Ajax también presentan las mayores amenazas a su seguridad. La mayoría de los expertos en seguridad
coinciden en que las aplicaciones web son un gran objetivo para los criminales cibernéticos, pero la seguridad Web supone por lo general sólo una pequeña parte
del presupuesto de seguridad de una organización. Debido a que el Ajax se utiliza para desarrollar muchas de las aplicaciones que aparecen en la web, su
popularidad se convierte en un blanco para los atacantes que buscan vulnerabilidades en el código JavaScript.

El punto de la existencia del Ajax todo es crear sitios web por datos. Sin embargo, los atacantes no se sienten atraídos por el Ajax sólo para su uso como
una herramienta de desarrollo de aplicaciones web. Dado que los datos -ya sea financiera, personal o confidencial, es el vellocino de oro de los productos
en línea, el Ajax de nuevo se encuentra un foco de los delincuentes cibernéticos.

En este artículo, explorar algunas vulnerabilidades y amenazas comunes a la seguridad Ajax, incluyendo ataques basados ​en navegador,
inyecciones SQL, XSS, y puenteo Ajax, y aprender algunas medidas preventivas que puede tomar para protegerse de los ataques.

Conocer los tipos de ataques

la seguridad Ajax: Detrás de los números

Determinar el número de aplicaciones web creadas con Ajax sería imposible. Debido a que el Ajax es una de las opciones
más populares para los desarrolladores de aplicaciones web, sin embargo, voy a la hipótesis de que entre el 73% de las
aplicaciones web que han sido comprometidos cierto que en los últimos 24 meses:

• 2.155 habían conocido vulnerabilidades de las aplicaciones web


• 83% tenía al menos una grave vulnerabilidad

Ajax juega en la ecuación más fuertemente.

Las vulnerabilidades de JavaScript han creado prensa no deseado para muchas empresas. Al atacar las vulnerabilidades de cross-site
scripting (XSS), los hackers han ofuscado código JavaScript, lo que les permite robar las cookies de sesión de los visitantes a los sitios.
Estas galletas, que contienen información de acceso, permite a los atacantes tener acceso a cualquiera de los servicios de las víctimas
atadas en sus diversas cuentas.

El famoso gusano Samy en realidad comenzó como una broma para reunir más amigos en un sitio de redes sociales. El creador
del gusano subido código malicioso, a través de su perfil, que:

• Añadido cualquier persona que visitó a su perfil a su lista de amigos


• Escribió "Samy es mi héroe" en la parte inferior de los perfiles de las víctimas

La comprensión de las vulnerabilidades de Ajax Página 2 de 6


ibm.com/developerWorks/ developerWorks®

• Replicado en sí a cada uno en las listas de amigos de las víctimas

Menos de 24 horas después de la primera persona fue víctima, Samy tenía 1.000.000 de amigos y el sitio estrellado.

Usando Ajax no pone su sitio web en cualquier riesgo mayor que si se utiliza cualquier otro web tecnologías, especialmente si usted sabe lo
que son las amenazas. El resto de este artículo se describen algunas de las vulnerabilidades de seguridad que se pueden anticipar y
planificar en sus actividades de desarrollo.

ataques basados ​en el navegador

JavaScript, que es una base de Ajax, no es ajeno a código malicioso. Durante un ataque basado en navegador funcione, el código malicioso
debe ser capaz de explotar la tecnología web (en este caso, JavaScript) y hacer que el propio navegador para ejecutar el código de los
deseos atacante.

Ejemplos sencillos de un ataque basado en el navegador se producen cuando las víctimas a encontrar su página de inicio ha cambiado, o
se les redirige a un sitio diferente cuando entran en una URL en la barra de direcciones del navegador. Aunque molesto y problemático,
estos ejemplos no son los peores escenarios.

Muchos de los ataques basados ​en el navegador están diseñados para evitar que los equipos infectados de notar o para mitigar los otros
ataques. A menudo, un ataque en el navegador de la víctima les impide el acceso a un sitio de eliminación o archivo de firmas de malware
utilizando la web. Otras amenazas incluyen proxy del navegador y registro de pulsaciones.

Medidas preventivas
Cómo protegerse contra los ataques basados ​en el navegador puede ser tan fácil como deshabilitar la tecnología Java ™, JavaScript y controles
Microsoft® ActiveX®. Si lo hace, sin embargo, impide que un gran número de aplicaciones web que se ejecute. En su lugar, se debe mantener el
software del sistema operativo, software de navegación y el software antimalware actualizada. También utilice una aplicación de servidor de
seguridad y precaución ejercicio de confianza al descargar archivos y visitar sitios web.

inyecciones SQL
¿Cómo puede una inyección SQL ser una amenaza para el Ajax? Después de todo, no hay "S" en el Ajax. En pocas palabras, la inyección de SQL es
una amenaza porque el Ajax se ejecuta en el lado del cliente. El lado del servidor de la aplicación web todavía requiere una base de datos, y eso
significa que SQL.

se producen las inyecciones SQL cuando las entradas atacante códigos maliciosos en una zona poco desarrollada de un sitio web, como una forma.
Si el sitio bajo el ataque es vulnerable, todo el contenido de la base de datos pueden estar expuestos. Se utilizó este método de ataque cuando una
base de datos de la contraseña fue expuesto y datos de tarjetas de crédito fue robada de un sistema de pago en línea. Más recientemente, se ha
utilizado el método para robar direcciones de correo electrónico de los aficionados desde el sitio de un artista popular. Aunque no hay dinero fue
robado, los spammers que buscan propagar malware bajo la apariencia de las ofertas de mercancías de este artista hicieron uso de las direcciones.

La mitigación contra las inyecciones SQL en una aplicación desarrollada utilizando Ajax es el mismo que para cualquier otra tecnología web. Sin
embargo, el simple uso de técnicas de saneamiento basadas en JavaScript no está

La comprensión de las vulnerabilidades de Ajax Página 3 de 6


developerWorks® ibm.com/developerWorks/

lo suficiente para proteger contra este tipo de explotación. JavaScript se ejecuta en el lado del cliente en lugar del lado del servidor, donde se
llevaría a cabo una inyección de SQL.

Medidas preventivas

Para proteger su base de datos cuando se utiliza Ajax, debe validar la entrada del usuario con la validación que ocurre en el servidor lado.
instrucciones con parámetros, o declaraciones preparadas, el trabajo para evitar inyecciones SQL porque los valores no se ponen directamente en
la cuenta de base de datos o SQL. En su lugar, un marcador de posición (también llamado una variable bind) se utiliza y los valores para el
marcador de posición se proporcionan a través de una llamada de API.

Cross-site scripting
XSS es otro ejemplo de un ataque de inyección donde se inserta código malicioso en la aplicación. aplicaciones web vulnerables a los ataques XSS
incluyen secuencias de comandos del navegador, como las que son comunes a Ajax. Por lo general, este tipo de vulnerabilidad es explotada para
pasar scripts maliciosos a los visitantes desprevenidos a la página web. Estos scripts son responsables de robo de identidad, cookies robadas, espiar
el uso de Internet de los visitantes, acceder a información confidencial, y los ataques, incluso de denegación de servicio.

Un ataque XSS bien conocido que fue noticia en 2010 implicó un sitio social de mensajería. Iniciado por un usuario llamado @Matsta, el ataque causó
que aparezcan las ventanas emergentes de JavaScript cuando los espectadores moused sobre el mensaje malicioso. Otros ataques XSS contra este
sitio provocaba que los usuarios sean redirigidos a un sitio de la encuesta o sitios de alojamiento de contenido inapropiado.

Medidas preventivas

Cuando se desarrolla con el Ajax, tome las siguientes medidas para proteger contra las vulnerabilidades XSS.

• Asegúrese de que las variables JavaScript se citan.


• Emplear JavaScript codificación hexadecimal.
• Emplear JavaScript codificación Unicode.
• Evitar la barra invertida codificación ( \" , \' o \\ ).
• Utilizar la biblioteca JSON.parse o json2.js para analizar JSON.
• Evitar que sea interpretado con el JSON eval () método, que ejecuta cualquier secuencia de comandos que se incluye con el JSON.

puente Ajax
aplicaciones Ajax están diseñados para conectarse a la página web en la que se alojan. Como medida de seguridad, una aplicación desde el sitio
A no se puede conectar al sitio B. Sin embargo, muchos sitios se basan en sitios web de terceros partidos y fuentes de datos para crear
mash-ups. El puente de servicio Ajax fue creado para proporcionar un servicio web, a través de un anfitrión, que actúa como un proxy que
reenvía el tráfico entre el código JavaScript que se ejecuta en el navegador y el sitio de terceros. Usando Ajax puente, el sitio A puede ahora
proporcionar datos o contenido a sus visitantes que vienen desde el sitio B.

Al igual que el Ajax no es una tecnología específica, sino una colección de tecnologías, puente no es una vulnerabilidad específica. Ajax
puente aumenta el panorama de las amenazas al proporcionar una vía adicional de

La comprensión de las vulnerabilidades de Ajax Página 4 de 6


ibm.com/developerWorks/ developerWorks®

ataque de los hackers maliciosos. Ataques como XSS y SQL inyecciones se pueden pasar a través del servicio de puente de Ajax. Aunque el
sitio B podría haber hecho todo lo posible para proteger su aplicación web desde amenazas accesibles a sus visitantes, el sitio A se puede
utilizar para atacar el sitio B usando el puente Ajax que se pasa por alto.

Medidas preventivas

Evitando la vulnerabilidad requiere la reducción de la confianza entre los sitios que proporcionan acceso a terceros utilizando un puente.
También debería auditar los sitios de terceros acceder a su sitio web y escanear en busca de vulnerabilidades que pueden ser explotadas por
el puente.

Conclusión

Ajax sí no presenta vulnerabilidades de seguridad nuevos o únicos. Ni debe ser considerado como menos seguro que cualquier otro método
de desarrollo de aplicaciones web. En este artículo, usted aprendió sobre algunas vulnerabilidades y amenazas a la seguridad Ajax, así
como la forma de tomar las correspondientes medidas preventivas en sus actividades de desarrollo.

La protección contra vulnerabilidades debe ser una prioridad en las primeras fases de desarrollo, cuando se intenta por primera vez la planificación de su
aplicación. Las pruebas frecuentes y escaneo deben ser parte de la estrategia de seguridad de Internet de cualquier organización.

La comprensión de las vulnerabilidades de Ajax Página 5 de 6


developerWorks® ibm.com/developerWorks/

Temas relacionados

• Las pruebas para detectar vulnerabilidades AJAX : Lea esta sección de la guía de pruebas en Abrir Web Application Security Project
(OWASP) para obtener más información sobre temas de seguridad en el Ajax.
• SQL declaración preparada : Leer este artículo en la Wikipedia para una explicación de una declaración preparada.

• parámetros se unen en SQL : Más información acerca de cómo se unen los parámetros se crean.
• vulnerabilidades XSS : Obtener una comprensión profunda de los matices en el fraude filtro.
• ataques XSS : Leer unos 20 sitios de alto perfil vulnerables a los ataques XSS.
• firewall de aplicaciones Web : Más información sobre el uso de esta contramedida.
• zona de desarrollo Web developerWorks Encuentre cientos de artículos sobre procedimientos y tutoriales, así como descargas, foros de
discusión, y una gran cantidad de otros recursos para los desarrolladores web.
• developerWorks en Twitter : Únete hoy para seguir los tweets de developerWorks.
• ModSecurity : Esta aplicación proporciona un buen firewall de aplicaciones web sin costo alguno.
• versiones de evaluación de productos IBM : Descargar o explore las pruebas online en el IBM SOA Sandbox y obtener
acceso a herramientas de desarrollo de aplicaciones y productos de middleware de DB2®, Lotus®, Rational, Tivoli y
WebSphere.

© Copyright IBM Corporation 2012


(Www.ibm.com/legal/copytrade.shtml)
Marcas comerciales

(Www.ibm.com/developerworks/ibm/trademarks/)

La comprensión de las vulnerabilidades de Ajax Página 6 de 6

También podría gustarte