¿Cómo puede un observador de la red identificar las computadoras que ejecutan versiones antiguas de Java?

10

Recibí un correo electrónico el día anterior de mi ISP (una universidad). El correo electrónico dice (en parte):

  

Su conexión de red se ha deshabilitado porque su versión de Java no está parcheada para las vulnerabilidades de seguridad más recientes. Esto deja tu computadora abierta para atacar. Si estas vulnerabilidades no son parcheadas, su computadora podría estar bajo el control de un pirata informático.

No tengo Java instalado en mi máquina, por lo que me pareció un falso positivo obvio. Me puse en contacto con ellos y recibí una respuesta indicando que:

  

Nuestro sistema detecta automáticamente estas vulnerabilidades, y los falsos positivos son   raro.

Parece que están ejecutando exploraciones automatizadas contra hosts en la red para intentar identificar versiones antiguas de Java (y probablemente otro software). Parece extraño que me identificaran ya que:

  • Bloqueo todo el tráfico entrante excepto ICMP y el puerto 22 (SSH); las pruebas realizadas después del incidente confirman que el cortafuegos funciona correctamente tanto en LAN como en WAN

  • Todo mi tráfico vinculado a Internet se enruta a través de un túnel OpenVPN cifrado a un servidor remoto. Confirmé después del incidente que todo el tráfico, incluido el DNS, se está enrutando a través de este túnel (según lo previsto).

Con el fin de evitar futuros falsos positivos, ¿qué tipo de métodos se utilizan normalmente para este tipo de análisis de vulnerabilidad automatizados? Mi interés se refiere específicamente a software como Java que no se ejecuta en segundo plano ni actúa como un servidor.

Algunos antecedentes:

  • Mi sistema ejecuta Debian estable. Ningún JDK o incluso JRE está (o ha estado) instalado en el sistema.

  • El ISP está en una posición para monitorear todo el tráfico o ejecutar escaneos, pero no para acceder a mi computadora de ninguna manera. Nunca instalé ningún software del ISP ni me lo pidieron.

pregunta Tom Marthenal 23.09.2013 - 21:44
fuente

2 respuestas

10

Bueno, obviamente, cualquier heurística que emplee el ISP es incorrecta en su caso, ya que no tiene Java en absoluto. Podemos imaginar algunos escenarios:

  • La detección del ISP se basa en el seguimiento de las descargas desde el sitio de Oracle: su sistema no pudo detectar ninguna descarga de una actualización de su máquina y, por lo tanto, concluyó que su Java "debe ser antiguo". (Sería un sistema de detección bastante estúpido y poco confiable).

  • Hay una página web de la Universidad que ha visitado, fuera de su VPN, y esa página incluye algún mecanismo de detección de complemento de Java (como éste ). Algunos métodos de detección implican solo un poco de Javascript que analiza las propiedades del navegador, y que Javascript puede haberse confundido bastante con respecto a su navegador, que no es Internet Explorer y no se ejecuta en Windows en absoluto.

  • El ISP usa direcciones IP dinámicas, y el sistema de detección de Java no lo sabe. La computadora de otra persona tiene un Java antiguo, y estaba usando una dirección IP que le fue asignada, y el sistema de detección decidió que usted era el culpable.

  • Debido a malicia o (más a menudo) mala configuración, otro usuario con un Java antiguo usó temporalmente su dirección IP como propia. El mismo resultado que el escenario anterior: el informe sobre Java no parcheado va a la persona incorrecta (usted).

Para detectar qué versión del complemento de Java está instalada en el navegador de un usuario, algo debe suceder con ese navegador: el navegador debe estar activo y ejecutar un applet de Java, o algún Javascript que escanee el Propiedades del navegador. Además de hacer que su navegador se conecte a un sitio que controlan, su único método no estúpido es buscar pasivamente las solicitudes HTTP; cuando algún código Java realiza una conexión HTTP con algún servidor (muchos applets se comunican con su servidor de origen como parte de su operación), la solicitud HTTP incluirá una línea de encabezado User-Agent con la versión de Java VM incluida al final (por ejemplo, "Java / 1.5.0_19"). Puedo imaginar un "sistema de detección de Java" que solo espera que una cadena de este tipo aparezca como parte de un encabezado User-Agent en el tráfico de la red.

    
respondido por el Tom Leek 23.09.2013 - 22:11
fuente
0

Esto suena como una especie de ataque de phishing para mí. No hay forma de que su ISP pueda determinar qué versión de Java podría estar ejecutando.

Y, obviamente, si recibió esto en un correo electrónico, la declaración "su conexión de red ha sido desactivada" es falsa.

    
respondido por el ddyer 26.09.2013 - 22:15
fuente

Lea otras preguntas en las etiquetas