¿Cuáles son los riesgos prácticos de http (no https) en las comunicaciones de servidor a servidor?

2

¿Cuáles son algunos de los riesgos prácticos que conlleva una conexión de servidor a servidor a través de http (no está protegido con https / SSL)? No hay usuarios involucrados, solo una conexión de servidor a servidor de una compañía a otra.

Business A llamará a un punto final del servicio web en Business B. Se incluirá una clave de API en la llamada que se usará para acceder a la puerta de acceso (por ejemplo, la clave debe ser válida y estar en buen estado).

Sé que es posible detener el tráfico. No estoy seguro de que esto sea probable , solo posible. ¿Cómo se explica uno por el riesgo asociado?

¿Cuáles son otros riesgos prácticos?

EDITAR: para un contexto adicional, algunas API web públicas admiten llamadas basadas en http con clave pasada en carga o URL. Por ejemplo: Posterous, Tumblr (la nueva API admite OAuth sobre http), Bing, GoodGuide y Flickr.

EDIT 2 17-Mar-2014: Hace dos años planteé esta pregunta. Se debió principalmente a mi curiosidad sobre los vectores de ataque reales en situaciones de servidor a servidor, ya que la mayor parte de la visibilidad se relaciona con los ataques del usuario final o la piratería en los servidores. Pero rara vez he escuchado "¡si solo hubiéramos usado SSL de servidor a servidor!" (aunque sí recuerdo una excepción, la violación TJX 2006 - donde las tarjetas de crédito fueron robadas de un canal wifi sin garantía, supongo http dentro de él (aunque wifi es su escenario no típico de servidor a servidor).

No es que no entienda o sepa cómo usar SSL (lo hago, lo uso y entiendo el criptográfico que hay detrás), por lo que esto no es ignorancia del conjunto de herramientas. Hasta ahora, nadie ha considerado que las API web que enumero más arriba puedan usarse para comprometer datos confidenciales (una foto privada en Flickr, publicando contenido malicioso en mi cuenta en Tumlbr (¡Posterous ya no está!), Accediendo a mi personal ( podría ser muy privado) consultas de búsqueda en Bing y GoodGuide).

Dado que la complejidad de ofrecer APIs a través de HTTPS cae completamente en el servicio, es fácil elegir HTTPS como cliente (aunque, en el escenario de interés aquí, el "cliente" es otro servidor) - Supuse que el Los proveedores que produjeron las API enumeradas anteriormente evaluaron cuidadosamente los pros y los contras y decidieron que permitir HTTP era correcto.

Estoy de acuerdo en que en cualquier momento en que estemos a cargo de los datos confidenciales o confidenciales de los usuarios finales o de la compañía, tenemos el deber fiduciario implícito de tratarlo de manera responsable (ya sea producción, desarrollo o prueba, si merece protección) . Pero esto no es todo escenario (de nuevo, es por eso que planteé esta pregunta).

Aquí hay algunas ventajas y desventajas que pueden venir a la mente en el caso general.

Google Maps tiene una clave de API que debe exponer en público (reside en JavaScript) y el acceso al servicio se puede bloquear con el nombre de dominio de alojamiento (encabezado REFERER), por lo que no es necesario (y no requiere) SSL. (Esto se usa más comúnmente en un modelo de usuario final a servidor, pero al menos es posible pensar esto en un escenario de servidor a servidor. Todos podemos entender la lógica al menos).

Además, las instancias de desarrollo y prueba de muchos servicios que ofrecen están mejor sin SSL. Son más fáciles de depurar en el cable cuando el tráfico no está cifrado. Además, es muy doloroso configurar certificados SSL para la mayoría de los entornos, ya que a menudo tendrán ad hoc nombres de dominio siempre cambiantes en los puntos finales a medida que los entornos van y vienen, tal vez ni siquiera son lo suficientemente consistentes para un certificado de comodín.

También hay escenarios de servidor a servidor que son menos vulnerables que otros, incluso si se están transmitiendo datos confidenciales. Por ejemplo, considere los servidores que pertenecen a diferentes divisiones dentro de la misma compañía, y los datos no viajan a través de la Internet pública (por ejemplo, rango de direcciones 192.168).

Como otro ejemplo, considere los servidores que se ejecutan en una plataforma de nube pública (por ejemplo, Amazon o Azure). No creo que pueda tener problemas con otros servidores que se ejecutan en la misma región del centro de datos porque no hay código (aparte de la plataforma del host) tendrá la capacidad de elevar los permisos en el hipervisor para configurar la tarjeta NIC en modo promiscuo para interceptar el tráfico (e incluso si pudiera, no podría verlo a través del hipervisor (creo), e incluso si pudiera solo podía detener el tráfico dentro de su propia red VNET).

    
pregunta codingoutloud 24.02.2012 - 19:40
fuente

5 respuestas

5

"Sé que es posible interceptar el tráfico. No estoy seguro de que esto sea posible, solo posible. ¿Cómo puede uno razonar sobre el riesgo asociado?"

Pensar así les cuesta millones a las empresas: si hubieran asegurado la información en primer lugar, no sería un problema.

Simple: cuánto le costará si alguien le roba datos a la compañía a o a la compañía b - si es más que el costo de comprar un certificado SSL barato, entonces está justificado. Ya no es una cuestión de "si" sucederá, es una cuestión de "cuándo".

    
respondido por el Colette Chamberland 24.02.2012 - 23:37
fuente
5

La elección de lo que debe usar depende de qué información se compartirá entre los servidores.

Si va a compartir información sensible / confidencial como datos bancarios (tarjetas de crédito / débito, etc.), información médica o algo así, debe USAR DEFINITIVAMENTE SSL. También debe asegurarse de que sus servidores tengan un firewall y sean visibles solo entre sí (Compañía A- > Compañía B y Compañía B- > Compañía A).

Por otra parte, si las compañías compartirán solo información no confidencial, entonces PROBABLEMENTE puede usar solo http.

En cuanto al sniff, es posible y muchos atacantes lo usan. Las posibilidades son infinitas. Un atacante puede oler sus paquetes, luego tratar de enviar paquetes similares para confundir a ambos servidores. Eventualmente, el atacante puede ganar el control en ambos servidores.

La razón por la que Posterous, Tumblr, Bing, GoodGuide y Flickr (y otros) permiten que http sea probablemente porque no están compartiendo información sobre usuarios que aún no son públicos. Seguramente dudo que compartan las contraseñas de sus usuarios a través de la API :)

Aunque intenté explicarlo de la manera más fácil, por su propio bien, lea un par de artículos / libros sobre cómo funciona el cifrado, por qué y cuándo es necesario. Es realmente grande y no se puede explicar en 5-10 oraciones.

Aquí hay un par de enlaces que pueden ayudarte a entender:

  1. enlace
  2. enlace
  3. enlace
respondido por el tftd 25.02.2012 - 01:35
fuente
5

Supongamos que eres un negocio. El negocio no es un país para los débiles. Hagas lo que hagas, estás obligado a tener ese tipo especial de enemigo conocido como competidores .

Sus competidores no son buenas personas. Nada les complacería más que, metafóricamente, entrar en su casa, vaciar su refrigerador, beber todo su vino, molestar a su perro y salir con su televisor y su hija. Pueden expresarlo como "ganar cuotas de mercado", pero eso es solo un eufemismo.

Ahora suponga que envía a sus competidores una bonita carta con una copia de las llaves de la puerta delantera y trasera, información detallada sobre cuándo se irá de vacaciones y el número de teléfono móvil de su hija. Aún metafóricamente, eso es lo que hace al usar HTTP simple para sus conexiones B2B.

¿Cómo razona los riesgos que implica HTTP simple? Al recordar que es una cosa estúpida y sangrienta que hacer . Los análisis de riesgo vs costo están bien en principio, pero cuando el riesgo es tan alto y el costo tan bajo, se vuelven totalmente ridículos. HTTP simple es vulnerable a todo . HTTPS es barato.

    
respondido por el Thomas Pornin 04.12.2012 - 04:20
fuente
1

Los riesgos prácticos incluyen: eres vulnerable a las escuchas ilegales, el secuestro de DNS y los ataques de BGP.

Además, si tiene mala suerte / no es cuidadoso, las claves criptográficas y otros secretos en la URL o los parámetros de consulta se pueden registrar en los registros o, posiblemente, se pueden filtrar a terceros en los encabezados del Referer:

Por estas razones, te recomiendo que uses HTTPS. Por lo general, es fácil de encender y elimina una clase de riesgos de seguridad. Incluso si esos riesgos no son los más probables para usted, el costo de eliminarlos suele ser muy bajo, por lo que la compensación de costo-beneficio probablemente valga la pena.

    
respondido por el D.W. 25.02.2012 - 16:22
fuente
0

Tanto si se trata de dos servidores que se comunican (servicios web) como si realiza solicitudes desde un navegador, el protocolo que transporta sus datos sigue siendo HTTP. HTTP por defecto no proporciona seguridad y envía todos los datos en texto sin formato a través del cable. Siempre que haya datos críticos involucrados (detalles de la tarjeta de crédito, información de identidad, etc.), se recomienda utilizar HTTPS.

El uso de HTTP simple hace que la comunicación sea vulnerable a ataques como MITM. La simple captura de paquetes llevará a la pérdida de información crítica.

Si hay alguna API pública que involucre el intercambio de claves sobre las claves http, entonces se supone que esas claves son públicas.

    
respondido por el Shurmajee 22.04.2013 - 13:45
fuente

Lea otras preguntas en las etiquetas