HttpおよびDnsの技術的原則の詳細な説明による汚染のハイジャックと調査および防止

インターネットシステムの構築と品質保証に基本的に責任を持ち、問題が発生します- ハイジャック、いわゆるハイジャックとは技術的な手段を通じて指定されたサーバーエージェントにリクエストを導くことです。一般的には、手渡し、手作り品の通過ですビッグは、あなたができる情報を監視し、コンテンツをキャッシュすることができ、コンテンツを改ざん下心もCDNを加速と呼ばれる法律上のプロキシアプリケーションを持っている違法なものの多くを行うことができれば、でも、ユーザーの着陸権を取得するには、CDNが存在することができますユーザーエクスペリエンスとWebサイトへのアクセス速度は向上しますが、多くの企業は実際にはプロキシに適していないため、プロキシのハイジャックによりシステムが直接使用できなくなったり、さまざまな異常が発生したりする可能性があるため、インターネットサービスプロバイダーはハイジャックを非常に禁じています。基本的な無力に出会うとき、技術的にそれを回避するためのさまざまな計画しか考えられません。

では、なぜ多くのメーカーがリスクに関係なくこれを行うのでしょうか?単語「利益」、ハイジャックした後、ほとんどの従来の方法はお金を稼ぐために方法について簡単に、二つがありますが、一つはされて流れを清掃プラス帯域幅のコスト稼ぐキャッシュ、そして第二に、改ざんを加えた広告の内容お金に関する情報を取得するために、他のユーザーの権限を明らかに違法なので、それはまれです。トラフィックのクリーンアップとは、一般に、ビデオや画像などの静的リソースをネットワーク上の指定されたエクスポートサーバーに格納して、送信帯域幅を減らして違いを生むことを指します。一部の大、中、小規模のオペレーターがそれを行っています。このことは、もともとユーザーには見えませんが、多くのキャッシュメーカーは技術的ではなく、ハイジャックすべきではないメーカーもハイジャックされているため、ハイジャック後に応答できないリクエストが多くなり、ユーザーAPPまたはさまざまな使用例外が発生します。一部のブラウザーは、実際にはクラウドアクセラレーションのバナーの下でキャッシュハイジャックを行っています。広告を追加すると、通常、ハイジャック後にコンテンツが改ざんされ、広告コードが追加されます。単純なHTMLページの場合、nginxの設定が可能です。この方法で広告を追加することは、さらに違法であり、違法ですらあります。現在ハイジャックされているものの多くは盗まれています。もちろん、オペレーターにとっては、ユーザーを高速化する目的がまだあることは否定しません。結局のところ、多くのリソースはUnicomと通信にあります。他のオペレーターのネットワークのユーザーは、要求するたびにネットワークを通過する必要があります。速度が遅すぎます。失われる。

5つの以下のクラスは、多くの導くための方法およびハイジャックが、あります1がされて直接LocalDnsプライベートネットワークの自己アドレスは、ユーザに割り当てられたDNSは、定義されたルート・ドメインから離れて行かないが、2がある方forwordによってガイドに特定のドメイン名は、プライベートの自己構築DNS分析、ルートドメインを使用してカスタマイズしない、3は cnameブート、通常はcdnのアクセス方法として、4は透過プロキシ、デバイスはルーターのホップとして直列にネットワーク伝送に接続、5は汚染のハイジャック、そしてHttpのハイジャックとDNSのハイジャック(汚染)に分かれています。運用中のハイジャックと汚染は、通常、分光デバイスを使用して、上りリンクのトラフィックのコピーをコピーします。ドメイン名または要求は、トラフィックをリダイレクトする目的を達成するために処理されます。

1、2、および3の方法は基本的に、4、5に焦点を合わせて、技術的な説明なしに通常の方法で構成およびガイドされます。

1. DNSハイジャック(汚染)

DNSは通常、ポートudp53を使用します。udpの特徴の1つは、偽装が非常に簡単な検証メカニズムがないことです。システムがDNSクエリリクエストを送信すると、システムは最初に返された結果を使用として受け入れ、それ以降の結果は使用されます汚染を放棄してハイジャックするには、udpのこの機能を使用します。

運用中、ハイジャックされたデバイスは、ネットワーク(オペレーター内部)のネチズンの近くに配置され、同時に、要件を満たすドメイン名(通常は事前設定されたホワイトリスト)を分析した後、分光トラフィックのDNSクエリ要求をリッスンします。 DNSクエリの結果を事前に偽装してユーザーに返信します。遅延またはリンク品質のため、ネットワークはネットワークよりもはるかに高速であり、ユーザーはハイジャックされたデバイスから確実にDNS応答を最初に受信します。その後のインターネットからのクエリの結果は破棄されるため、ハイジャックの目的は達成され、現時点では、指定されたデバイスにリクエストが正常に送信されます。

特性: DNS汚染の典型的な特性は、解決されたIPアドレスがインターネットシステムによって提供されたアドレスではないことです。

2. HTTPリクエストのハイジャック

HTTPリクエストハイジャックはHTTPリクエストフェーズで実行されます。この方法ではDNS分析は変更されませんが、302/301リダイレクトを介して指定されたデバイスにリクエストがリダイレクトされます。これは、効率がDNSよりも低く、技術的なクロスドメインの問題があるためです。通常、遅延の影響を受けにくいファイルのダウンロードに使用されます。技術的には、ネットワークとネットワークの遅延の差を使用して記事を作成します。このプロセスを詳しく説明するために図を見てみましょう。

222.png

上の図に従って、プロセス全体を見てみましょう。まず、クライアントとソースステーションがhttpリクエストを送信するためのリンクを確立します。同時に、トラフィック分析デバイスがこのリクエストを分析し、リクエストヘッダーを読み取ります。2番目のステップは、httpリクエストを読み取り、ハイジャックルールが満たされていると判断した後、偽装クライアントはリセットマークをソースステーションに送信し、クライアントとソースステーション間の対話を切断します。3番目のステップは、元のステーションがリダイレクト302をクライアントに送信して、指定されたデバイスにリクエストを正常に送信したこと偽装することです。4番目のステップは、ハイジャックプロキシサーバーへのクライアントアクセスです。

URLはリダイレクト中にドメイン間で変化するため、ここで一連のルールを設定する必要があります。たとえば、クライアントはwww.aaa.com/123.mp4をダウンロードする必要があり、指定されたキャッシュデバイスは1.1.1.1です。ハイジャックされた後、http://1.1.1.1/www.aaa.com/123.mp4の302リダイレクトをクライアントに送信し、クライアントはこのURLを受信した後にプロキシを逆アセンブルします。

機能:典型的な機能はリダイレクトです。curlを使用して、リクエストがリダイレクトされるかどうかを確認します。

3.透過プロキシ

透過プロキシとは、プロキシデバイスを中間ゲートウェイとしてリンクに接続することです。実際には、ゲートウェイとしてルーティングおよび転送を有効にし、ルーターの役割を担う必要もあります。トラフィックを節約するために、プロキシデバイスがキャッシュ、多くの大企業および機関であると仮定すると、そのようなデバイスを出口にインストールします。たとえば、最初は2 Gの帯域幅を購入する必要があります。透過プロキシを作成した後は、1.5 Gを購入するだけで済みます。ユーザーが操作するものは何もないため、透過プロキシと呼ばれます。 、そして分析するのがより難しい。

透明代理也有两种方式,都是基于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看头信息是否被重定向了就可以,如果被重定向那就是被劫了;

  • [透過プロキシ]解析を見て、URLはすべて正常ですが、特定のネットワーク環境では異常です。これは、おそらくこの理由が原因であると考えられます。製造元のプロキシ技術はそれほど難しくなく、すべての要求を正常に処理できません。現時点では、問題を解決して、ヘッド情報などのさまざまな方法で通常の環境の情報を比較し、問題のある環境と通常の環境でヘッダーのフィールド情報をcurl -Iと比較します。

  • 【おすすめツール】ユーザー情報の取得に役立つオンラインツールがいくつかありますが、小梅のユーザーに会ったら直接利用できますTencent HuatuoとAli Kunlunをおすすめします。

2)予防

予防の理由は、根絶するのが難しく、技術的な手段によってのみ回避できるためです。いくつかの予防方法は次のとおりです。

  • クライアント側アプリケーションはhttpdns使用できます。これにより、ハイジャックをある程度防ぐことができますが、ドメイン証明書を含むhttpsサービスの場合、解決策を見つける必要があります。

  • メインドメイン名は、大きな工場のビジネスで可能な限り使用されます。ハイジャックの目的は、ユーザー機能の使用に影響を与えずに利益を上げることです。大きな工場が提供するメインドメイン名サービスは多数のユーザーであり、メーカーは一般に、確信がない場合、ハイジャックする可能性が低くなります。

  • 収益性の高い方法は、ハイジャック後にリソースをキャッシュまたは改ざんすることです。キャッシュまたは改ざんができない場合、ハイジャックの意味はありません。したがって、企業は可能な限りhttps証明書を使用する必要があります。証明書はハイジャック自体の価値をなくし、ハイジャックの製造元の責任者は入っていません。 httpsビジネスを乗っ取るためにお金を費やすことはありません。


おすすめ

転載: blog.51cto.com/benpaozhe/2488754
おすすめ