¿Cómo evitar que el navegador genere contenido malicioso si se piratea una solicitud o respuesta?

2

Actualmente estamos trabajando en las correcciones de seguridad de OWASP e identificamos un escenario de ataque para el que estamos tratando de encontrar una posible solución:

  1. El usuario ingresa una solicitud HTTP válida a nuestra aplicación. La URL en el navegador del usuario está configurada para nuestra aplicación url, por ejemplo. %código%
  2. Cualquiera de estos:

    • A: El atacante intercepta la solicitud y la reenvía a un sitio malicioso en lugar de a nuestra aplicación. La URL en el navegador del usuario se establece en la URL de la aplicación, p. Ej. https//www.abc.com/request pero el contenido será el del sitio malicioso.
    • B: la aplicación procesa la solicitud y envía la respuesta a través de Apache. Mientras la respuesta está en ruta, un atacante intercepta la respuesta y reemplaza el contenido de la respuesta completa con algún sitio o mensaje malintencionado como "¡Estás hackeado!"
  3. En cualquier caso, la respuesta se procesa en el navegador del usuario, con la URL aún apuntando a https://www.abc.com/request en el navegador pero el contenido es malicioso. Esto hace que el usuario crea que aún está en nuestra aplicación.

Podríamos replicar este escenario a través de nuestra herramienta proxy. Al ser https, puede ser que el atacante no pueda descifrar la respuesta, pero ciertamente puede cambiar el contenido de la respuesta o redirigir a algún sitio malicioso. ¿Hay alguna forma de identificar y evitar la representación de dichas respuestas en el navegador a través de Apache o encabezados HTTP personalizados?

¿Qué sucede si en el escenario (2A), el usuario se enruta desde un sitio HTTPS válido a un sitio HTTP malicioso?

    
pregunta user36009 10.02.2015 - 12:08
fuente

1 respuesta

3

Si la solicitud a su dominio es HTTPS (por ejemplo, https://example.com ), esto es efectivamente inmune a un atacante MITM (aparte de los problemas del proxy corporativo). Si un atacante redirigiera example.com a la IP de su propio sitio, entonces su propio sitio no tendría un certificado de confianza instalado para example.com , por lo que el usuario recibiría advertencias del navegador y se desaconsejaría encarecidamente que acepte el certificado y navegue al sitio .

La única forma de evitar esto para el atacante sería obtener una copia de su certificado con la clave privada, o de alguna manera tener su propio certificado de confianza para el dominio que sería muy difícil de hacer. Y si pueden hacer esto entrando a su servidor, ganan de todos modos. En pocas palabras, confíe en la Infraestructura de clave pública de X.509 . Lee hasta allí para obtener más información sobre cómo funciona esto.

    
respondido por el SilverlightFox 10.02.2015 - 12:24
fuente

Lea otras preguntas en las etiquetas