Búsqueda de sitios web

javascript - ¿Cómo puedo contraer un virus solo por ver un sitio o abrir un correo electrónico?


Todo el mundo sabe que algunos sitios pueden dañar tu computadora solo con mirarlos, o algunos correos electrónicos pueden enviar mensajes a todos tus amigos o recopilar información sobre ti solo por leerlos.

¿Cómo es esto posible? Cada sitio es solo HTML, CSS y JS, eso no puede hacer ningún cambio permanente en la computadora (excepto las cookies, pero eso no puede dañarte, ¿verdad?) así que ¿cómo podría contraer un virus?

Si hago clic en un anuncio, ¿cómo puedo infectarme con un virus? ¿Enlace de descarga para el programa autorun?

¿Cómo se hacen estas cosas? ¿Qué lenguaje de programación?

Respuesta #1

En general, la forma en que estos vectores funcionan es explotando fallas en el software utilizado para leer/renderizar el HTML, CSS y JavaScript. En un mundo perfecto con navegadores/programas de correo perfectamente seguros con sandboxes perfectos, entonces tendrías razón al decir que solo ver una página o un correo electrónico no podría cargar un virus en tu computadora. Pero no vivimos en ese mundo perfecto.

Un ejemplo es la vulnerabilidad de "desbordamiento de búfer": El atacante invierte una gran cantidad de tiempo y esfuerzo para descubrir que un programa en particular carga algún recurso (un cursor CSS, por ejemplo) en un búfer sin verificar que el recurso sea lo suficientemente pequeño como para caber en el búfer. Entonces el programa escribe bytes más allá del final del búfer. Los búferes suelen estar en la pila, por lo que sobrescribirlos puede sobrescribir cosas como las direcciones de retorno de las llamadas a funciones. Si se diseña correctamente los datos, se puede hacer que una dirección de retorno salte a instrucciones en los datos del recurso que se está cargando. En ese momento, todo queda fuera de control; el atacante puede ejecutar código máquina arbitrario incrustado en ese recurso.

Otros vectores implican vulnerabilidades en la sandbox en la que se ejecuta el JavaScript en la página.

Respuesta #2

La mayoría de los usuarios instalan complementos como Adobe Acrobat, Shockwave Flash y Java en sus navegadores. Si los complementos están desactualizados y el usuario visita un sitio malicioso con código que apunta a ciertas vulnerabilidades, el atacante puede ser capaz de ejecutar código arbitrario, obtener acceso privilegiado al sistema, instalar virus (unirse a una botnet, por ejemplo), etc.

Afortunadamente, hoy en día los navegadores modernos aíslan los complementos y organizaciones como Google revisan el código malicioso mientras rastrean.