¿Por qué puedo obtener un virus o un troyano al visitar un sitio web?

16

Los he visto mucho últimamente. Hace clic en el enlace, y el troyano instantáneo. No es necesario descargar ni nada.

¿Cómo es esto posible? ¿Hay alguna forma de escanear los enlaces antes de visitar para asegurarme de que no me infectarán?

Robar
fuente
Posible duplicado: superuser.com/questions/13507/...
Hello71
Es posible porque los navegadores web (como Internet Explorer) son piezas de software extremadamente complejas y, a pesar de estar bien escritas. Los hackers descubren defectos que pueden utilizarse para ejecutar un programa de su elección en su máquina, como un troyano.
unixman83

Respuestas:

14

Para responder cómo es posible:

El sitio tiene algún script que se ejecuta a medida que carga la página. Esto es lo que infecta su PC con Windows: sin embargo, no estoy 100% seguro de los detalles, ya sea que descargue el código o simplemente lo ejecute. Esta página tiene un ejemplo de cómo se hizo en un caso. También se requiere un navegador vulnerable, y prácticamente cualquier navegador popular es vulnerable ya que vale la pena apuntar a algo que se ejecuta en muchas computadoras.

En su mayor parte, las PC con Windows se infectarán a medida que las personas se ejecuten como administradores en lugar de usuarios restringidos. Las razones para esto son muchas y variadas. Como Roger señala en su comentario, su popularidad en lugar de cualquier debilidad intrínseca es el factor principal aquí:

Windows está más orientado porque es más popular. Algunos dicen que Windows es menos seguro que las alternativas también, pero tengo que decir que en la forma en que lo resaltas, no lo es. Ejecuto Linux en casa y si un troyano podría ejecutarse en mi cuenta de usuario, aún podría causar mucho daño a los archivos que me importan bastante, simplemente no podría hacerse cargo del sistema.

Aunque al ejecutar con un usuario con derechos restringidos puede limitar el daño, pero no necesariamente eliminarlo.

Con Vista y ahora 7 teniendo un control más estricto sobre lo que se ejecuta como administrador, es posible que comience a ver una caída en este tipo de sitios, aunque solo será cuando la mayoría esté ejecutando los sistemas operativos más nuevos.

ChrisF
fuente
Gracias. Sin embargo, me resulta difícil creer que pueda descargar y ejecutar automáticamente su navegador. ¿Qué tipo de guión sería ese? JavaScript?
Rob
@Rob: Sí, será JavaScript, y requiere un navegador vulnerable y que el usuario sea administrador.
ChrisF
Se las arregló para instalarse a través de Firefox. Demasiado para el navegador web más seguro. fml
Rob
@Rob: Firefox no ha sido el navegador más seguro por un tiempo. Tan pronto como alcanzó una cuota de mercado decente, los escritores de virus y troyanos comenzaron a buscar exploits a medida que valía la pena. Si desea una navegación "segura", elija el navegador con la cuota de mercado más baja;)
ChrisF
1
Lamentablemente tengo miedo al cambio. Me quedaré con Firefox, ya que tiene un montón de complementos que uso a diario. FML de nuevo. Ahora solo necesito saber si es posible aceptar dos respuestas en una pregunta.
Rob
8

Bueno, cuando abre un sitio web, el sitio web puede indicarle al navegador que haga todo tipo de cosas en su nombre. En el caso más simple, solo enviará texto e imágenes para mostrar, pero también puede enviar pequeños programas que el navegador ejecutará (en JavaScript, qué navegadores tienen incorporado, o usando un complemento de navegador como Java o Flash) .

En principio, infectarse solo por visitar un sitio web debería ser imposible:

Si bien los navegadores ejecutarán programas en nombre de los sitios web que visita, estos programas están cuidadosamente restringidos para que solo puedan hacer cosas "inofensivas". Desde JavaScript, por ejemplo, puede alterar la página a la que pertenece JavaScript (dado que ambos provienen del mismo sitio web, no puede haber daño), pero JavaScript no puede cambiar una página de un sitio web diferente (por lo que un sitio de mala calidad no puede alterar su pantalla de banca en casa), y es posible que no acceda directamente a los archivos en su computadora.

Existen restricciones similares para la mayoría de los complementos (al menos para Java y Flash). Esto se conoce comúnmente como sandboxing , ya que el código está esencialmente en una caja propia, aislado de la computadora en la que se ejecuta. En particular, no puede leer archivos en su disco duro o iniciar programas por usted, como pueden hacerlo los programas "normales" que se ejecutan en su computadora.

Ahora, la cuestión es: si bien en principio estás a salvo, en la práctica puede que no lo estés . La razón es que el sistema sandbox, como todos los programas, tiene errores. A veces, estos errores permiten que un programa "rompa" la caja de arena y engañe al navegador o los complementos para hacer cosas que no debería permitirse. Estos trucos pueden ser bastante elaborados.

Ejemplos:

  • Al igual que los programas normales, la implementación del navegador o complemento puede tener desbordamientos de búfer, lo que puede permitir que un sitio web ejecute código especialmente diseñado enviándolo al navegador como entrada.
  • Hubo una vulnerabilidad en las versiones anteriores del complemento Java de Sun con respecto al sandbox. El sandbox no permitió (y aún no permite) el acceso a todas las funciones de Java que podrían permitir que un programa haga daño, como leer o eliminar archivos locales. Sin embargo, si bien el entorno limitado bloqueó correctamente el acceso a estas funciones desde un applet de Java, los navegadores también permitieron el acceso indirecto a estas funciones desde JavaScript (a través de una técnica llamada "reflexión"). Esta "puerta trasera" no había sido suficientemente considerada por los desarrolladores, y se les permitió eludir las restricciones de la caja de arena, rompiendo la caja de arena. Consulte https://klikki.fi/adv/javaplugin.html para más detalles.

Desafortunadamente, ha habido varias vulnerabilidades en los sandboxes de JavaScript, Java y Flash, solo por nombrar algunas. Todavía es una especie de carrera entre hackers maliciosos que detectan estas vulnerabilidades para explotarlos, y buenos hackers y desarrolladores que los detectan y reparan. Por lo general, se solucionan rápidamente, pero a veces hay una ventana de vulnerabilidad.

Por cierto: el sandbox es la razón por la cual algunos applets de Java muestran una advertencia "¿Confías en este applet" al iniciar: estos applets te piden que los dejes salir de su sandbox y les des acceso a tu computadora. Esto a veces es necesario, pero solo debe otorgarse con buenas razones.

PD: La razón por la que ActiveX (al menos las primeras versiones) eran tan terriblemente inseguras es que ActiveX no usó un sandbox. Cualquier código ActiveX de una página web tenía acceso completo a su sistema. Para ser justos, esto fue (parcialmente) rectificado en versiones posteriores.

sleske
fuente
2

Menciono esto para responder a su última pregunta sobre acciones preventivas. Una opción no tan común es usar una máquina virtual (bueno, es común entre los círculos de seguridad). Hay algunos gratuitos disponibles. Instale su sistema operativo, navegador y complementos en la máquina virtual y guarde el estado. Luego puede navegar a cualquier sitio. Cuando termine, volverá a ese estado guardado y todo lo que sucedió en la máquina virtual después de ese punto se descarta. Es muy simple una vez que ingresa, pero puede presentar una ligera curva de aprendizaje.

Nota: El estado de reversión literalmente descartará cualquier cambio en la máquina virtual; incluidos el historial del navegador, las cookies, las actualizaciones, etc. En este caso, puede volver a ese estado, aplicar actualizaciones y guardar un nuevo estado. Lo mismo puede hacerse para cualquier otra cosa que desee conservar. Nada de esto afecta su computadora real, solo la máquina virtual.

Ioan
fuente
Esto no es realmente práctico. Noscript con Firefox es MUCHO mejor.
unixman83
1
En realidad, es muy práctico desde el punto de vista de la seguridad, que es lo que se pidió. NoScript simplemente deshabilita la carga de JavaScript de forma predeterminada, excepto los sitios que permite; Hay otros vectores de ataque. Sin ayuda, puede ser tedioso y frustrante hacerlo bien. La VM actúa como una caja de arena, permite una navegación regular / completa y proporciona un medio de recuperación fácil / rápida. No es necesario usar la VM para sitios confiables / conocidos si su escritorio está bloqueado, solo para sitios nuevos / cuestionables. Este hilo también tiene 2 años ...
Ioan
Solo el 5% de los vectores de ataque del mundo real tienen éxito con los scripts desactivados y los complementos desactivados. es decir, con NoScript. muchos sitios funcionan sin scripts activados.
unixman83
1
Está bien, mencioné que no se usaba comúnmente y que se acostumbra. Votar abajo porque le gusta otra solución es incorrecto. La respuesta no está mal. Sería mejor agregar su propia respuesta o votar por otra que prefiera. Al menos, así es como entiendo el funcionamiento del sistema de votación.
Ioan