28 may 2008

Transmitir sobre HTTP y sus riesgos

La implementación del protocolo HTTP utiliza el protocolo de control de transmisión (TCP) el cual fue estandarizado en 1980, 10 años antes de la aparición de la web. Los primeros protocolos de la capa de aplicación se diferencian considerablemente de HTTP. Por ejemplo, telnet, es una aplicación interactiva que utiliza una única conexión TCP para la transferencia de datos entre el cliente y el servidor en un periodo de tiempo. FTP mantiene una conexión de control entre el cliente y el servidor y transmite los datos en conexiones separadas. En contraste, HTTP utiliza una única conexión para la transferencia de control y datos. En comparación con los archivos transferidos por ftp, la mayoría de las peticiones y respuestas HTTP son relativamente cortas y ágiles. Estas características de HTTP unidas a que los puertos sobre los que opera (80 y 443) se intuyen siempre abiertos en todos los firewall, le han hecho convertirse en una capa de transporte de aplicaciones.La implementación del protocolo HTTP utiliza el protocolo de control de transmisión (TCP) el cual fue estandarizado en 1980, 10 años antes de la aparición de la web. Los primeros protocolos de la capa de aplicación se diferencian considerablemente de HTTP. Por ejemplo, telnet, es una aplicación interactiva que utiliza una única conexión TCP para la transferencia de datos entre el cliente y el servidor en un periodo de tiempo. FTP mantiene una conexión de control entre el cliente y el servidor y transmite los datos en conexiones separadas. En contraste, HTTP utiliza una única conexión para la transferencia de control y datos. En comparación con los archivos transferidos por ftp, la mayoría de las peticiones y respuestas HTTP son relativamente cortas y ágiles. Estas características de HTTP unidas a que los puertos sobre los que opera (80 y 443) se intuyen siempre abiertos en todos los firewall, le han hecho convertirse en una capa de transporte de aplicaciones.La implementación del protocolo HTTP utiliza el protocolo de control de transmisión (TCP) el cual fue estandarizado en 1980, 10 años antes de la aparición de la web. Los primeros protocolos de la capa de aplicación se diferencian considerablemente de HTTP. Por ejemplo, telnet, es una aplicación interactiva que utiliza una única conexión TCP para la transferencia de datos entre el cliente y el servidor en un periodo de tiempo. FTP mantiene una conexión de control entre el cliente y el servidor y transmite los datos en conexiones separadas. En contraste, HTTP utiliza una única conexión para la transferencia de control y datos. En comparación con los archivos transferidos por ftp, la mayoría de las peticiones y respuestas HTTP son relativamente cortas y ágiles. Estas características de HTTP unidas a que los puertos sobre los que opera (80 y 443) se intuyen siempre abiertos en todos los firewall, le han hecho convertirse en una capa de transporte de aplicaciones.La implementación del protocolo HTTP utiliza el protocolo de control de transmisión (TCP) el cual fue estandarizado en 1980, 10 años antes de la aparición de la web. Los primeros protocolos de la capa de aplicación se diferencian considerablemente de HTTP. Por ejemplo, telnet, es una aplicación interactiva que utiliza una única conexión TCP para la transferencia de datos entre el cliente y el servidor en un periodo de tiempo. FTP mantiene una conexión de control entre el cliente y el servidor y transmite los datos en conexiones separadas. En contraste, HTTP utiliza una única conexión para la transferencia de control y datos. En comparación con los archivos transferidos por ftp, la mayoría de las peticiones y respuestas HTTP son relativamente cortas y ágiles. Estas características de HTTP unidas a que los puertos sobre los que opera (80 y 443) se intuyen siempre abiertos en todos los firewall, le han hecho convertirse en una capa de transporte de aplicaciones.

Muchas de las aplicaciones web actuales, utilizan HTTP para transportar otros protocolos de aplicación como, JSON, SOAP o RSS.

La interacción de HTTP con su mecanismo de transporte TCP, lleva asociados conceptos de manejo de conexiones, e interpretación de estados (TIME_WAIT, RST, FIN..). Esto no difiere mucho del uso que hacen protocolos como SOAP que utilizan el envoltorio de HTTP para el manejo de sesiones y parámetros de estado para que el servidor web los interprete y posteriormente otra aplicación maneje los datos que contiene. HTTP es el protocolo de transporte de otras aplicaciones.

Esta nueva situación del protocolo HTTP puede conllevar 2 serios problemas:

  • La falta de estándares. Ya no hay aplicaciones HTTP, ahora lo que existe son aplicaciones a medida que utilizan HTTP como medio de transporte, pero que no tienen definiciones formales. Sin estándares perdemos fiabilidad, y escalabilidad,

  • La seguridad a nivel de aplicación. Si no existen RFCs que definan formatos de datos ni codificaciones de carácteres, ¿que WAF protegera nuestras aplicaciones?. En este aspecto, la WASC, está preparando la versión 2 de Threat Classification, el proyecto de la clasificación de amenazas web que estará disponible en breve, donde se expondran nuevas amenazas de estos pseudo-protocolos de aplicación.

Para hacernos una idea del uso actual de HTTP, basta con ver como una simple búsqueda “over http” muestra más resultados que “over tcp”.

Ayer se utilizaba HTTP para encapsular las conexiones, hoy HTTP es el protocolo de transporte de la capa de aplicación. Se avecinan interesantes retos para la seguridad web.

Emilio Casbas
S21sec labs

Fuente: http://blog.s21sec.com/2008/05/transmitir-sobre-http-y-sus-riesgos.html

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!