Explicación detallada de los principios técnicos de Http y Dns secuestrando la contaminación e investigación y prevención.

Básicamente responsable de la construcción del sistema de Internet y la garantía de calidad se encontrará con un problema de secuestro , el llamado secuestro es guiar la solicitud al agente del servidor designado a través de medios técnicos , en general, es pasar la mano, pasar el artículo hecho a mano grande, se puede controlar la información, el almacenamiento en caché de contenido puede alterar el contenido , incluso para obtener derechos de aterrizaje de los usuarios, si segundas intenciones pueden hacer muchas cosas ilegales, que también tiene una aplicación llamada apoderado legal acelerada CDN, CDN puede existir Mejore la experiencia del usuario y la velocidad de acceso al sitio web, pero muchas empresas en realidad no son adecuadas para el proxy, por lo que un secuestro duro del proxy puede hacer que el sistema no esté disponible directamente o que ocurran varias anomalías, por lo que los proveedores de servicios de Internet son muy tabú para el secuestro, una vez Cuando encuentro impotencia básica, solo puedo pensar en varios planes para evitarlo técnicamente.

Entonces, ¿por qué muchos fabricantes hacen esto independientemente del riesgo? La palabra "lucro", brevemente sobre el método para hacer dinero después del secuestro, la forma más convencional, hay dos, uno está limpiando flujo más caché ganan los costos de ancho de banda , y en segundo lugar, el contenido de la manipulación, más publicidad , otros derechos de los usuarios para obtener información sobre el dinero Obviamente ilegal, por lo que es raro. La limpieza del tráfico generalmente se refiere al almacenamiento de un recurso estático como videos e imágenes en un servidor de exportación designado en la red para reducir el ancho de banda saliente para marcar la diferencia. Algunos operadores grandes, medianos y pequeños lo están haciendo. Esto originalmente era transparente para los usuarios, pero debido a Muchos fabricantes de caché no son técnicos, y aquellos que no deberían ser secuestrados también son secuestrados, lo que resulta en muchas solicitudes que no pueden ser respondidas después de ser secuestradas, lo que resulta en una aplicación de usuario o varias excepciones de uso. Agregar anuncios generalmente significa que el contenido ha sido alterado después del secuestro y se ha agregado el código del anuncio. Si se trata de una página html simple, se puede lograr la configuración de nginx. Agregar anuncios de esta manera es más ilegal e incluso ilegal. Muchas de las cosas secuestradas ahora están robando. Por supuesto, no niego que para los operadores, todavía hay un propósito de acelerar a los usuarios. Después de todo, muchos recursos están en Unicom y telecomunicaciones. Los usuarios de las redes de otros operadores deben cruzar la red cada vez que lo soliciten. La velocidad es demasiado lenta. Estar perdido

Hay muchas maneras de secuestrar y guiar, pero solo hay 5 categorías: 1 es asignar directamente a los usuarios para construir una dirección local de LocalDns en la red, la resolución de nombre de dominio no va al dominio raíz y personalizar, 2 es guiar nombres de dominio específicos a Análisis privado de Dns autoconstruido, tampoco use el dominio raíz para personalizar, 3 es el arranque de cname, generalmente como método de acceso de cdn, 4 es un proxy transparente, el dispositivo está conectado a la transmisión de red como un salto del enrutador en serie, 5 está secuestrando la contaminación , Y se divide en secuestro Http y secuestro DNS (contaminación). En operación, el secuestro y la contaminación generalmente usan un dispositivo espectroscópico para copiar una copia del tráfico en el enlace de entrada. El tráfico copiado se analiza utilizando un dispositivo de análisis de tráfico, que cumplirá con las condiciones. El nombre de dominio o solicitud se procesa para lograr el propósito de redirigir el tráfico.

Las formas de 1, 2 y 3 están básicamente configuradas y guiadas de la manera normal, sin explicación técnica, centrándose en 4, 5.

1. Secuestro de DNS (contaminación)

DNS generalmente usa el puerto udp53. Una de las características de udp es que no existe un mecanismo de verificación, lo cual es muy fácil de ocultar. Cuando el sistema envía una solicitud de consulta DNS, el sistema aceptará el primer resultado devuelto como uso, y se usarán los siguientes. Abandonar, secuestrar la contaminación es utilizar esta función de udp.

En funcionamiento, el dispositivo secuestrado se coloca en la red (dentro del operador), más cerca de los internautas, y al mismo tiempo escucha la solicitud de consulta DNS del tráfico espectroscópico, después de analizar el nombre de dominio que cumple los requisitos (generalmente una lista blanca preestablecida) Disfraza de forma preventiva el resultado de una consulta DNS y responde al usuario. Debido a la demora o la calidad del enlace, la red es mucho más rápida y mucho más rápida que la red, por lo que el usuario definitivamente recibirá la respuesta DNS del dispositivo secuestrado primero. Los resultados de consultas posteriores de Internet se descartan, por lo que se logra el propósito del secuestro. En este momento, la solicitud se dirige con éxito al dispositivo designado.

Características: La característica típica de la contaminación de DNS es que la dirección IP resuelta no es la dirección proporcionada por el sistema de Internet.

2. Secuestro de solicitud HTTP

El secuestro de solicitudes HTTP se lleva a cabo en la fase de solicitud http. Este método no cambia el análisis Dns, pero redirige la solicitud al dispositivo designado a través de una redirección 302/301, porque la eficiencia es menor que Dns y existen problemas técnicos entre dominios. Generalmente se usa para descargar archivos que no son sensibles al retraso. Técnicamente, también usa la diferencia de retraso entre la red y la red para hacer un artículo. Veamos la figura para explicar este proceso en detalle.

222.png

De acuerdo con la imagen anterior, veamos todo el proceso. Primero , el cliente y la estación fuente establecen un enlace para enviar una solicitud http. Al mismo tiempo, el dispositivo de análisis de tráfico analiza esta solicitud y lee el encabezado de la solicitud. El segundo paso es leer la solicitud http y Después de juzgar que se cumplen las reglas de secuestro, el cliente simulado envía una marca de reinicio a la estación fuente, que desconecta la interacción entre el cliente y la estación fuente. El tercer paso es pretender que la estación original envió una redirección 302 al cliente, guiando con éxito la solicitud al dispositivo designado. El cuarto paso es el acceso del cliente al servidor proxy de secuestro.

Debido a que la URL cambia a través de los dominios durante la redirección, se debe establecer un conjunto de reglas aquí. Por ejemplo, por ejemplo, el cliente desea descargar www.aaa.com/123.mp4, y el dispositivo de caché especificado es 1.1.1.1. Después de ser secuestrado, enviará una redirección 302 de http://1.1.1.1/www.aaa.com/123.mp4 al cliente, y el cliente desmontará el proxy después de recibir esta url.

Características: La característica típica es la redirección. Use curl para ver si la solicitud se redirige.

3. Proxy transparente

El proxy transparente es conectar el dispositivo proxy como una puerta de enlace intermedia al enlace. De hecho, como puerta de enlace, el dispositivo proxy también debe habilitar el enrutamiento y el reenvío, y asumir el rol de enrutador. Suponiendo que el dispositivo proxy es un caché, muchas grandes empresas e instituciones para ahorrar tráfico, Instalaré dicho dispositivo a su salida. Por ejemplo, originalmente necesito comprar dos anchos de banda G. Después de hacer un proxy transparente, solo necesito comprar 1.5 G. No hay nada para que el usuario opere, por lo que se llama proxy transparente. Y más difícil de analizar.

透明代理也有两种方式,都是基于iptable,一种是基于端口转发,将目的地址是80的请求,转发到本地启用的比如说8080的cache应用上,由cache应用处理后为客户提供服务,这种方式的弊端是有可能影响一些服务,因为80端口过来不一定全是http请求。另外一种是采用tcp旁路监听代理的方式tproxy,此种方式是非常好的,配置iptable的mangle表的PREROUTING链,对tcp的socket的连接打上mark标记,然后新建路由表让打过标记的tcp通过,监听目的端口是80的tcp通过tproxy代理至8080的cache应用上,由cache应用处理后为客户提供服务。

操作上,服务器要开启路由转发、开启iptable,要安装代理软件,然后进行相应的配置,当然在高可用性上要做到对路由的心跳,一旦代理服务器故障,直接跳过代理服务器到下一跳,保证业务的持续性。

特征:这种方式基本上无法排查,从外部很难找到证据。

4、排查和预防

1)排查

排查的目的是找到证据,说明请求被劫持代理了,常用的方式如下:

  • 【dns篡改】在问题网络环境dig域名查找A记录,对比是否是互联网系统提供的ip地址,如果不是说明Dns解析被篡改了,具体是哪种方式改的,需要继续排查;

  • 【dns篡改】Dns劫持是基于udp的特性来实现的,所以不使用udp测试就可以绕过劫持,公共的dns服务都是支持tcp的,所以可以用tcp的方式进行验证,具体命令是 dig  +tcp ,两个结果做对比;

  • 【dns篡改】如果分析后确定解析被篡改了,dig里面有个trace的参数,可以详细查询到dns的解析过程,帮助我们分析是哪个dns篡改了我们的解析,具体命令是 dig +trace ,很好用;

  • 【http劫持】这个在排查很简单,只要在问题网络环境里curl -I看头信息是否被重定向了就可以,如果被重定向那就是被劫了;

  • [Proxy transparente] Observe que el análisis y la URL están bien, pero es anormal en un determinado entorno de red, probablemente por esta razón, la tecnología de proxy del fabricante no es demasiado difícil y no puede procesar todas las solicitudes normalmente. En este momento, puede resolver el problema y Compare la información en el entorno normal de muchas maneras, como la información del encabezado, y compare la información del campo en el encabezado con el rizo -I en el problema y el entorno normal. Si son inconsistentes, entonces deben haber sido manipulados en un enlace intermedio;

  • [Recomendación de herramienta] Hay algunas herramientas en línea que pueden ayudarnos a obtener la información del usuario. Una vez que nos encontramos con los usuarios de Xiaobai, podemos usarla directamente. Recomendamos Tencent Huatuo y Ali Kunlun.

2) Prevención

La razón de la prevención es porque es difícil de erradicar y solo se puede evitar por medios técnicos. Algunos métodos de prevención son los siguientes:

  • Las aplicaciones del lado del cliente pueden usar httpdns , lo que puede evitar el secuestro en cierta medida, pero para los servicios https que involucran certificados de dominio, se deben encontrar soluciones;

  • El nombre de dominio principal se usa tanto como sea posible en el negocio de la gran fábrica. El objetivo del secuestro es obtener ganancias sin afectar el uso de las funciones del usuario. El servicio de nombre de dominio principal provisto por la gran fábrica es un gran número de usuarios, y el fabricante generalmente tiene menos probabilidades de secuestrarlo si no está seguro;

  • La forma rentable es almacenar en caché o alterar el recurso después del secuestro. Si no se puede almacenar en caché o manipular, no tiene sentido secuestrar. Por lo tanto, la empresa debe usar certificados https tanto como sea posible . No gastará dinero para secuestrar negocios https.


Supongo que te gusta

Origin blog.51cto.com/benpaozhe/2488754
Recomendado
Clasificación