¿Cómo funciona el software fraudulento?
¿Por qué están tan extendidos los "secuestradores de navegador"? Al mirar las publicaciones de ayuda en muchos foros, podemos ver de vez en cuando algo como "Mi página de inicio de IE ha sido cambiada. La escaneé con una herramienta antivirus y no encontré virus. Cambié la página de inicio a mi propia dirección". pero volvió cuando lo reinicié." "!", "Aparece un anuncio tan pronto como enciendo mi sistema. ¡Obviamente uso la última versión del software antivirus!" El 80% de los encuestados pidieron ayuda al respecto. Problemas anormales de IE, ya lo han instalado, el software antivirus, pero IE todavía está "pirateado", ¿por qué?
De hecho, estos son fenómenos típicos de "secuestro de navegador", pero ¿acaso las víctimas no han instalado ya un software antivirus? ¿Por qué los navegadores no pueden evitar esta mano malvada? Muchos usuarios tienen un malentendido en este campo: ¿Secuestro del navegador? ¡Tengo el último software antivirus y no tengo miedo!
Así que se sorprendieron cuando se encontraron con un "secuestro de navegador".
Debe saber que el software antivirus en sí es sólo una herramienta auxiliar que no puede proteger completamente la seguridad del sistema. Es más, los usuarios de software antivirus deben conocer el hecho de que puede atacar el "secuestro del navegador". Los métodos pueden ¡Se realiza a través de "medios legales" reconocidos por el sistema! El software antivirus sólo puede juzgar si un programa es legal mediante "códigos de firma", pero esto se basa en la definición humana, y puede haber muchos programas que implementen el "secuestro del navegador", lo que dificulta la protección.
¿Por qué se considera legal el "secuestro de navegador"? Porque la mayoría de los iniciadores del secuestro del navegador se implantan en el sistema a través de un medio técnico llamado "BHO" (Browser Helper Object).
BHO es un estándar industrial lanzado por Microsoft ya en 1999 como una interfaz interactiva abierta para navegadores para programadores de terceros. Es una "interfaz interactiva" que permite a los programadores utilizar código simple para ingresar al navegador. campo "(INTERFAZ INTERACTIVA). A través de la interfaz de BHO, los programadores de terceros pueden escribir su propio código para obtener algunas acciones (Acciones) y notificaciones de eventos (Eventos) del navegador, como "Atrás", "Adelante", "Página actual", etc., y incluso obtener diversas acciones del navegador información de componentes, como menús, barras de herramientas, coordenadas, etc. Debido a la naturaleza interactiva de BHO, los programadores también pueden usar código para controlar el comportamiento del navegador, como operaciones comunes como modificar y reemplazar las barras de herramientas del navegador, agregar sus propios botones de programa a la interfaz del navegador, etc., y estas operaciones se consideran " " Legal" es el comienzo de todo mal.
La aparición de BHO ayuda a los programadores a crear mejor navegadores personalizados o implementar funciones interactivas convenientes y concisas para sus propios programas. Se puede decir que sin el nacimiento de la interfaz BHO, no podríamos utilizar algunos. de ellos hoy en día. La herramienta realiza la función de IE personalizado. Desde cierto punto de vista, BHO es de hecho el héroe detrás de varias coloridas funciones interactivas de red, pero todo tiene dos lados. Esta eterna verdad también es válida para BHO, por lo que hoy en día es un dolor de cabeza para la industria de la seguridad. Nació el método de ataque.
Mira las características de la interfaz de BHO que mencioné anteriormente. ¿Qué te parece? BHO puede aprender e implementar la mayoría de los eventos y funciones del navegador, es decir, puede controlar el comportamiento del navegador con una pequeña cantidad de código. El programador puede diseñar un botón BHO para notificar al navegador que salte a una determinada página cuando el usuario hace clic en ella para completar la función interactiva. Por supuesto, puede escribir además para controlar que el navegador salte a la página a la que quiere que vaya el usuario. a Este es el original La causa del "secuestro del navegador": secuestro de BHO.
Antes de describir el secuestro de BHO, primero debemos dar una breve introducción al inicio de la interfaz BHO: el código del programa que cumple con el estándar de la interfaz BHO se escribe como una biblioteca de enlaces dinámicos DLL y se registra como un objeto COM en el registro También debe registrar el componente en la entrada del registro de la interfaz BHO. Cada vez que se inicie IE en el futuro, este archivo DLL se llamará y se cargará a través de la información de registro descrita aquí, y esta DLL. Por lo tanto, el archivo se convertirá en un módulo (componente BHO) de IE, e IE*** comparte un ciclo de ejecución hasta que se cierre IE.
Cuando se inicia IE, se cargarán todos los componentes de BHO. Estos componentes ingresan directamente al campo de IE, e IE se convierte en su proceso principal y portador. A partir de ese momento, todos los eventos de IE se pasarán a BHO a través de. Interfaz IUnknown para En la interfaz IObjectWithSite que proporciona interacción, esta es la función de entrada para que BHO interactúe con IE.
Después de recibir los parámetros pasados por la interfaz de IE, BHO comienza a determinar qué está haciendo IE. En teoría, BHO puede obtener la mayoría de los eventos de IE y luego, de acuerdo con el código escrito por el programador. BHO tiene la responsabilidad de realizar eventos específicos y el poder de toma de decisiones para responder. Por ejemplo, un BHO que puede implementar una "URL china" es obtener la URL del sitio actualmente abierto por IE a través del método GetSite (u obtenerla a través de). la interfaz IURLSearchHook). Si el BHO encuentra la URL obtenida y las condiciones de juicio integradas si coinciden, el BHO habilitará el método SetSite para forzar a IE a saltar a la página establecida por el programador. Este proceso es uno de los "navegadores". "Secuestro" que utiliza about:blank para alterar la página de inicio. Su principio de implementación es en realidad muy simple. El programa El autor escribió un componente BHO malicioso. Cuando obtuvo el sitio actual de la ventana de IE como "about:blank", Obligó a IE a saltar internamente a la página de publicidad especificada, lo que provocó el "Incidente de secuestro de página en blanco de IE" que fue muy popular no hace mucho.
Después de comprender este método parecido a una broma para cometer delitos, es fácil resolverlo. Todo lo que necesitas hacer es encontrar y eliminar el programa BHO oculto en el sistema.
Además de este tipo de BHO "adware", existe otro tipo de BHO más encubierto implementado mediante la interfaz IURLSearchHook. Este BHO probablemente no sea un BHO en algunos aspectos, porque no responde a. IUnknown, pero espera a que IE cree un IURLSearchHook para comenzar. El navegador utiliza IURLSearchHook para convertir una dirección de protocolo URL desconocida. Cuando el navegador intenta abrir una dirección URL con un protocolo desconocido, el navegador primero intenta obtener el protocolo actual de esta dirección. Si no tiene éxito, el navegador buscará todos. las direcciones URL en el sistema se registran como un objeto de "Gancho de búsqueda de URL" (Gancho de búsqueda de recursos, USH) y envían la dirección que IE no puede comprender. Si un objeto USH "reconoce" esta dirección, devuelve un identificador específico para indicarlo. IE sabe cómo abrir esta dirección, luego IE la llama según el método acordado y finalmente abre esta dirección. De hecho, los objetos USH no son desconocidos. Algunos de nuestros usuarios perezosos a menudo no ingresan "http://" para evitar problemas. Sin embargo, IE aún puede reconocer y abrir una dirección, lo cual es mérito de USH. , esto ha sido explotado maliciosamente. Los programadores lo usan para afilar sus cuchillos. Al crear sus propios objetos USH, los programadores maliciosos pueden ordenar a IE que salte automáticamente a un sitio preestablecido cuando no puede encontrar algunos sitios web. un caballo de Troya, el usuario está acabado.
La solución a este tipo de BHO es la misma que antes, excepto que está relativamente oculta, a menos que el usuario sea perezoso, es posible que no sepa que ha sido infectado hasta que el sistema falle.
Tal vez diga que siempre que IE nunca deje de reconocer la entrada del usuario, ¿no sería en vano este tipo de penetración? Pero los hechos no son optimistas. No tenemos forma de saber si el autor de BHO utilizará otros métodos para interceptar IE. ¿Quizás IE mostrará un anuncio de vez en cuando?
Los muchos ejemplos mencionados anteriormente de que BHO e IE colaboran para causar daños pueden dar a los lectores el malentendido de que "BHO debe pasar datos de IE antes de que pueda actuar". en sí También es un programa ejecutable estándar, y BHO simplemente toma prestada la DLL iniciada por el proceso del programa. No es una DLL en forma esclava como la API que le permite venir y trabajar cuando necesita usarla y descartarla cuando la necesita. ya está. Como se mencionó anteriormente, BHO es una rutina que se inicia cuando se carga el navegador. Es equivalente a un subproceso cuya propia lógica de ejecución no está clara (contiene respuestas a eventos de IE y códigos de operación). causas BHO La diferencia esencial entre DLL y API DLL es que BHO no necesita depender de este gran tipo para todos los eventos. Siempre que se modifique adecuadamente, BHO puede tener derecho a tomar sus propias decisiones. lograr funciones similares a los troyanos DLL Por supuesto, esto no se dice que podemos hacer descaradamente cosas malas bajo las narices de IE. Dado que BHO se inicia como un subproceso de IE, debe estar sujeto a algunas restricciones. Por ejemplo, los programadores no pueden crear conexiones de red en él, lo que provocará que IE informe un error y se bloquee y proporcione la DLL que usted escribió. Los usuarios que temen que BHO se convierta en otra puerta trasera pueden respirar aliviados. La implementación de Winsock en BHO solo puede ser. ¿Se hace cuando IE está en reposo, pero qué usuario lo abrirá? ¿Vacío IE no hace nada?
Pero esto no significa que BHO sea definitivamente inofensivo. Aunque no se puede utilizar para control remoto, no olvide que BHO puede ver todo en IE y acceder a los archivos del usuario y al registro. Si se cumple esta condición, el intruso puede escribir código para buscar la privacidad del usuario y luego enviarlo a través de SetSite en el momento adecuado. ¿Quién dijo que Webmail es tan popular ahora? Es por eso que muchos fabricantes lanzan BHO con funciones como "URL china", "Búsqueda web", "Personalización de IE" y "Monitoreo de IE" al tiempo que garantizan "no recopilar la privacidad del usuario. Mientras lo desee, BHO lo hará". Puede conseguirlo todo.
Algunas personas pueden pensar que dado que BHO es propiedad del navegador de Microsoft, entonces no necesito IE. ¿Puedo usar Opera o Firefox? No hay nada de malo en esto, pero ¿usas Windows? ¿Utiliza software compartido? Si usa Windows, es posible que todavía esté en el mundo expuesto a BHO, porque el propio Windows está estrechamente integrado con IE, lo que amplía el alcance del "proceso de IE". Los usuarios cuidadosos probablemente encontrarán que puede hacerlo directamente en IE. Acceda a "Mi PC", y la ventana "Mi PC" también puede convertirse rápidamente en IE, porque esencialmente dependen del kernel de IE. Por esta razón, BHO puede iniciarse en secreto cuando abre una carpeta. Al mismo tiempo, la red actual se encuentra en una era en la que la "estrategia de paquete de software libre" se implementa ampliamente. No importa cuán cuidadoso sea, no puede evitar el comportamiento de algunos paquetes de software gratuito que solo encontrará. los archivos después de la instalación. Hay un "asistente" y una "búsqueda" agregados a la carpeta. Si quieres escapar por completo del asedio del BHO, es posible que tengas que dejar de usar Windows.
Enganche, has enganchado el navegador
Al igual que esta frase de "Enano", los intrusos buscan constantemente su nueva salida, aunque lo dije anteriormente Hay muchos ejemplos negativos del BHO, pero la verdadera crisis no se limita al BHO. En algunas situaciones en las que utilizar BHO no funciona, los intrusos empiezan a lanzar sus anzuelos.
¿Qué es un anzuelo? Primero echemos un vistazo a su definición oficial:
Hook es una plataforma para el mecanismo de procesamiento de mensajes de Windows. Las aplicaciones pueden configurar subrutinas para monitorear ciertos mensajes en la ventana especificada, y todas las ventanas monitoreadas pueden ser monitoreadas. creado por otros procesos. Cuando llega un mensaje, se procesa antes de la función del controlador de ventana de destino. El mecanismo de enlace permite que las aplicaciones intercepten y procesen mensajes de ventana o eventos específicos.
Un gancho es en realidad un segmento de programa que procesa mensajes y se conecta al sistema a través de llamadas al sistema. Siempre que se envía un mensaje específico, el programa de enlace captura el mensaje antes de llegar a la ventana de destino, es decir, la función de enlace primero obtiene el control. En este momento, la función de enlace puede procesar (cambiar) el mensaje, continuar entregándolo sin procesarlo o forzar la finalización de la entrega del mensaje.
Quizás la definición oficial anterior sea un poco difícil de entender para algunos lectores. De hecho, los ganchos son como el "profeta" de todos los programas. Aunque un programa que implementa un gancho también es un programa normal. siempre se puede utilizar en otros programas. El programa ya sabe todo antes de obtener los datos. Los lectores que tengan cierto conocimiento del sistema Windows deben saber que el sistema Windows es un sistema que opera a través de un "mecanismo de procesamiento de información". Los datos transmitidos en este sistema se envían en forma de "Mensajes" y cada mensaje sigue lo contrario. , el sistema no puede responder. Además, este paso de entrega se invierte. Por ejemplo, si cerramos un programa, podemos pensar que el programa notifica al sistema después de cerrarse. De hecho, este no es el caso. Cuando el usuario hace clic en el botón de cerrar, Windows lo entregará. un mensaje llamado WM_CLOSE Para este programa, después de recibir el mensaje, el programa realiza la operación de descargar su propia rutina. Después de comprender esto, podrá conocer el principio de los ganchos. El llamado programa de gancho utiliza la API de gancho proporcionada por el sistema para recibir mensajes del sistema antes que cada programa y luego los maneja si un gancho intercepta el mensaje WM_CLOSE del sistema. programa, entonces el programa no podrá cerrarse porque no puede recibir el mensaje de cierre. Además de los mensajes, los enlaces también pueden interceptar API. Por ejemplo, el software de traducción de pantalla que todos conocemos logra su propósito conectando algunas funciones de salida de texto como TextOutA.
La tecnología permite a los programadores obtener fácilmente algunos datos útiles de otros programas o transferir datos relacionados. Por ejemplo, algunos complementos de juegos comunes ahora usan la tecnología Hook para conectar el formulario del juego y luego se puede identificar el juego. El comportamiento y la simulación internos envían mensajes del botón y del mouse y, en última instancia, realizan la función de la computadora que juega por sí sola. Aplicar esta tecnología a los navegadores se convierte en otra forma de controlar el comportamiento de los navegadores.
Hay dos tipos de ganchos, ganchos locales y ganchos globales. Los ganchos locales solo funcionan en este proceso, por lo que no están incluidos en el alcance de la discusión. Los códigos de gancho global deben escribirse en formato DLL. para que otros procesos puedan cargarlo y llamarlo cuando el gancho entre en vigor, por lo que la mayoría de los programas Hook que vemos tienen el formato de DLL.
De hecho, el BHO mencionado anteriormente también puede considerarse como un gancho para IE. Engancha los eventos de IE. Este es el punto de partida para la interacción entre IE y BHO, pero para operaciones más complejas. como BHO no puede determinar si IE descarga una imagen GIF o una imagen JPEG, porque solo sabe que los eventos de IE son DownloadBegin y DownloadComplete por sí solo no le indicará el contenido específico; de lo contrario, ¿IE no estaría muy ocupado? Al menos no he visto a ningún líder necesitar informar a la secretaria si almorzó pollo o pato. BHO no es la esposa de IE, o si IE no tiene traqueítis.
Entonces, para obtener más datos de IE, los programadores comenzaron a conectar IE.
A diferencia de BHO, el gancho no necesita esperar pasivamente los eventos de IE. Forma directamente una relación supervisor-subordinada con IE. Todo lo que IE debe hacer en este momento debe ser aprobado por él. El control del formulario Hook no requiere que el archivo DLL tenga una relación de componente con la entrada del registro de IE. Puede ser un DLL independiente, iniciado por Rundll32.exe o el Loader EXE integrado, y debido a que pertenece al formulario Hook. es efectivo en el gancho. En algunos casos, el sistema lo insertará automáticamente en el proceso de otros programas. ¿Es un poco como un troyano DLL?
Después de que el programa de enlace de IE se carga en el proceso, puede aprender todos los tipos de mensajes, API y contenidos una vez que se encuentra un mensaje que cumple con los requisitos, como que IE ejecute un evento o que el usuario ingrese. contenido específico, el código de procesamiento del gancho comienza a funcionar. Primero intercepta el mensaje enviado por el sistema a IE, luego analiza el contenido del mensaje, realiza modificaciones de acuerdo con los diferentes contenidos del mensaje y luego lo envía a IE, completando así un proceso de manipulación del gancho. Tomando como ejemplo la famosa búsqueda de nombre real 3721, algunas personas pensarán que usa BHO o IURLSearchHook para completar la identificación y salto de nombres de dominio chinos. De hecho, usa la tecnología Hook, que puede ser la primera en recibir mensajes de Windows. De esta manera, evite ser adelantado por otros competidores en la resolución de nombres de dominio: el programa principal de 3721 es un Hook DLL, que monitorea los mensajes en la barra de direcciones de IE. Una vez que el usuario ingresa chino, intercepta el mensaje antes que otros complementos de BHO. ins funciona, y llama a su propio código para completar la conversión del nombre de dominio chino a la URL en inglés, y luego devuelve (también puede cooperar con su propia DLL BHO) un mensaje para que IE salte a la URL en inglés para completar el nombre de dominio. tarea de traducción.
Los ganchos de IE pueden ayudar a los programadores a completar más trabajo interactivo de IE con una pequeña cantidad de código, pero una vez que este gancho se usa para cometer delitos, las consecuencias son graves. para robar contraseñas, de modo que no importa si usa el protocolo de texto sin formato HTTP o el protocolo de cifrado SecurityHTTP, no puede escapar de las consecuencias del robo de contraseñas, porque captura su entrada en IE y la transmisión de datos posterior ya no es importante.
Winsock LSP
El nombre completo es "Windows Socket Layered Service Provider" (proveedor de servicios en capas). Esta es una función que solo está disponible en Winsock 2.0. Requiere que Winsock admita el servicio. La interfaz del proveedor (Service Provider Interface, SPI) se puede implementar. SPI es una tecnología que no puede funcionar de forma independiente. Se basa en los proveedores de protocolos básicos existentes del proveedor del sistema, como el protocolo TCP/IP, etc. Los protocolos en estos protocolos son "protocolos en capas", como SSL, etc. Deben llamarse a través de ciertas funciones de interfaz, y LSP es la interfaz de estos protocolos.
A través de LSP, podemos obtener el contenido de datos que queremos más fácilmente que analizando el protocolo básico, como obtener directamente la dirección y el contenido que actualmente transmite el navegador que se ejecuta en el sistema, independientemente de si el navegador es IE, Opera o Firefox, porque LSP obtiene información directamente de Winsock. Incluso si no utiliza un automóvil producido por Microsoft, al menos su automóvil ha estado circulando por una carretera construida por Microsoft.
El uso de LSP puede facilitar a los programadores escribir rastreadores que monitoreen las comunicaciones de la red del sistema. Sin embargo, ahora se utilizan LSP comunes para secuestrar navegadores, lo que supone otra pesadilla para los usuarios.