Español | English
rss facebook linkedin Twitter

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.


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

2 comentarios:

Blaxter dijo...

En parte por eso los servicios Web ahora tienen una tendencia a usar una arquitectura REST en vez de basados en WS-* con SOAP. Para usar HTTP para algo más que una mera capa de transporte.

Aunque todavía tenemos muchos aspectos que se usan comúnmente en HTTP que no están estandarizados (headers y códigos de error adicionales que no están en los rfc)

S21sec labs dijo...

Muy interesante e informativo tu comentario blaxter. La arquitectura REST como dices se está imponiendo porque es más ágil escalable y sencilla que SOAP, pero esos beneficios tendran algún costo en la ¿Seguridad?.
Gracias blaxter!


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login