データ パケットがプライベート IP に直接送信されるのを防ぐ方法は何ですか (ハッキング、ウイルス、マルウェア対策)?

データ パケットがプライベート IP に直接送信されるのを防ぐ方法は何ですか (ハッキング、ウイルス、マルウェア対策)?

私はネットワークの初心者で、基本的なことはよく理解していますが、インターネットがローカル エリア ネットワーク上のデバイスと直接接続できない理由がわかりません。

ルーターと NAT により、ネットワークのすべてのデバイスが同じ IP を持つことができ、リクエストが Web にルーティングされ、それを要求したクライアントに返されることは知っていますが、私の質問は次のとおりです。

たとえば、誰かのコンピュータをハッキングしたいと思っていて、その人のホーム ネットワーク (ルーター) の IP を知っているとします。最も一般的なプライベート アドレス (たとえば 192.168.1.1-80) に送信されるようエンコードされたデータをその IP に送信し、実際にデータを「プライベート」デバイスに送信することはできないでしょうか?

IP は通常、リクエストを行ったデバイスとの間で直接データを送受信するため、ルーターの IP を知っていて、プライベート IP を正しく推測できた場合、そのデバイスへのハッキングを阻止できるものは何でしょうか?

ルーター/NAT には、IP だけではなく、データを正しいクライアントにルーティングする別の手段があると思いますが、それがどのように行われるかはわかりません。

それとも、単にこの方法で悪意のあるデータを送信することはできるが、すべてのソフトウェアがデータに対して何もしない(リクエストを送信しない)のであれば、メリットはないということでしょうか。

私が見つけた情報では、通常、プライベート IP によってパブリック IP の使用が全体的に減少する方法についてのみ説明されており、プライベート IP クライアントから外部へのアクセスが遮断される理由についてはまったく触れられていません。

誰か私にこれを説明してくれませんか?

答え1

インターネットがローカル エリア ネットワーク上のデバイスと直接接続できない理由がわかりません。

IPは通常、リクエストを行ったデバイスと直接データをやり取りします。

インターネットの本来の設計は、物事がこのように機能するはずであるということに留意してください。インターネットは「エンドツーエンド」であり、IP アドレスは文字通りグローバルであるはずです。つまり、特定の IP アドレスが世界のどこにあっても、私はそのアドレスと通信でき、そのアドレスも私と通信できるということです。

問題は、IPv4 アドレスが不足したため、NAT などのスキームを使用する必要があったことです。

NAT は本来の動作方法ではなく、副作用としてセキュリティ上の利点がある一方で、インターネットのエンドツーエンドの原則に反し、仲介者としてしか機能しないサービスを促進します。つまり、セキュリティや家賃の徴収には良いのですが、自由や貧困者には良くありません。

ルーターとNATにより、ネットワーク上のすべてのデバイスが同じIPを持つことができることは知っています

これはネットワークの外部でのみこのように表示されます。

ネットワークの背後では、各システムにはプライベート IP 範囲の 1 つからの一意の IP があります。

NAT はルーターでこの錯覚を管理し、ルーターの背後にあるシステムが他の IP にアクセスできるようにし、ポートが適切に転送されていれば IP がルーターの背後にあるシステムと通信できるようにします。

最も一般的なプライベートアドレス(たとえば192.168.1.1-80)に送信されるようエンコードされたデータをそのIPに送信し、実際に「プライベート」デバイスにデータを送信できないでしょうか?

いいえ。

192.168.1.80 はインターネット上には存在しません。NAT ルーターの背後にのみ存在します。まず NAT ルーターの背後に入る必要があります。そのための唯一の方法は、まず NAT ルーターのパブリック IP と通信することです。

実際のところ、IP 192.168.1.80 と自分の IP が同じサブネット内にある場合、トラフィックはネットワークから出ることすらできません。システムはローカル NIC から 192.168.1.80 に到達しようとしますが、ルーターに到達することすらできません。

では、ルーターの IP を知っていて、プライベート IP を正しく推測できた場合、そのデバイスへのハッキングを阻止できるものは何でしょうか?

NAT ルーターは着信接続を監視および追跡します。

新しい TCP 接続が転送されたポートに接続しようとしている場合にのみ、データはルーターの背後にあるシステムに転送されます。

UDP はコネクションレスなので、NAT ルーターは、正常に動作していれば、しばらく受信していない UDP トラフィックを背後のシステムに転送しません。UDP はコネクションレスなので、NAT ルーターを騙すことは可能ですが、それはまず背後のシステムからそのポートに何かを送信させ、着信トラフィックが戻ってくる可能性があると NAT ルーターに納得させる場合に限られます。たとえば、STUN など、このようなものに依存するプロトコルがいくつかあります。

答え2

ルーターのパブリック IP アドレスと内部アドレスを知っているからといって、内部アドレスが自動的にパブリックにアドレス指定可能になるわけではありません。

IP を使用するとパブリック アドレスに接続できますが、そのパブリック アドレスの背後にアドレスが存在することを自動的に意味するわけではなく、また、たとえアドレスが存在したとしても、データを転送する手段が提供されるわけではありません。

アドレスは「このマシンのこのポートに行く」であり、「このマシンのポートに行き、そこから別のマシンのポートに転送し、そこからこの」ではありません。他のアドレスとポート"

誰かがあなたに手紙を送っていると考えてください。郵便局は気にしません誰が住所に郵便物が届いているかどうかは、郵便物が正しい差出人に入れられているかどうかで決まります。差出人から郵便物が差出人を通過した場合は、住所にいる誰かがその手紙を見て、誰に手紙を届けるかを判断しなければなりません。

ネットワークでも同じことが起こりますが、NAT は「Jim」を永続的な内部アドレスとして許可しません。ネットワーク内部の何かがインターネットに接続を要求したときに、内部から外部へのマッピングが発生します。その時点で、メールボックス「jimTmp12345@PublicIP」が効果的に作成され、接続が終了するまで使用されます。接続が終了すると、アドレスは無効になり、そのアドレス宛てのものはすべてローカルの埋め立て地に廃棄されます。

答え3

ほとんどの NAT ルーターは、ルーターとしてだけでなく、ファイアウォールとしても動作するように構成されます。

次のネットワークを考えてみましょう。

ネットワークの例


NAT がない場合、デバイスは直接通信する必要があります。

  • 192.168.1.2話したい192.168.0.2
    • デフォルトルートは192.168.1.1(ルータA)
    • ルータAは (ルータB)192.168.0.0/24経由で到達可能であることを認識している198.51.100.2
    • ルータBは直接接続され192.168.0.0/24、パケットを配信する。
  • 192.168.0.2返信したい192.168.1.2
    • デフォルトルートは192.168.0.1(ルータB)
    • ルータBは192.168.1.0/24198.51.100.1
    • ルータAは直接接続され192.168.1.0/24、パケットを配信する。

ルータAにNATがあるが、ないルータ B では、状況が少し変わります。

  • 192.168.1.2話したい192.168.0.2
    • デフォルトルートは192.168.1.1(ルータA)
    • ルータAは「IPマスカレード「」なので、送信元アドレスを192.51.100.1(外部インターフェース)として書き換えます。
    • ルータAは(ルータB)192.168.0.0/24経由で到達可能であることを認識している198.51.100.2
    • ルータBは直接接続され192.168.0.0/24、パケットを配信する。
  • 192.168.0.1返信したい198.51.100.1
    • デフォルトルートは192.168.0.1(ルータB)
    • ルータBは直接接続され198.51.100.0/24、パケットを配信する。
    • ルータAは変換テーブルを確認し、宛先を次のように書き換えます。192.168.1.1
    • ルータAは直接接続され192.168.1.0/24、パケットを配信する。

この時点で、何もないホストが192.51.100.1ルータとして使用したり、パケットを転送するように要求したりするのを停止します192.168.1.2何もない応答は偽装される可能性が高いため、コミュニケーションが少し難しくなる可能性があります。挑戦的「でも、コミュニケーションはコミュニケーションです。

これを拡張すると「インターネット「私の」を変えるかもしれない止めるものは何もありません...」という声明は、いくぶんか誤解を招く可能性があります。裏付けとなる資料はありませんが、インターネット ルーターが実際にプライベート ネットワーク アドレスをターゲットとしたトラフィックを転送するように設定されているとしたら、非常に驚​​きます。代わりに、そのようなパケットは単にドロップされる可能性があります。結局のところ、ルーターの設定が適切でなかったとしても、インターネットでこれを試してもうまくいかない可能性が高いです。

これに加えて、ルーティングの仕組み(つまり、ホストがローカル ネットワーク上にない場合、MAC アドレスはルーターをターゲットとし、IP アドレスは最終ホストをターゲットとします)により、192.51.100.1A) ルーターに接続しているか、B) 既存のルートがトラフィックをその方向にプッシュしていない限り、ルーターとして利用する方法はありません。


198.51.100.1他のホストが単純なルーターとして使用することを防ぐには、ファイアウォール ルールが必要です。

1 つの方法は、ルータ A の外部インターフェイス ( 198.51.100.1) で、そのアドレスを明示的に対象としていない着信パケットを拒否 (またはドロップ) することです。

これにより、弱宿主モデルLinuxが実装しているもの(例:ルータBはルータAと通信できる)外部のインターフェースに割り当てられたアドレスを使用して内部インターフェース)。

答え4

[NAT]はリクエストをWebにルーティングし、リクエストしたクライアントに返します。

そうですが、その仕組みを明確にしておくと、NAT は、通常、トラフィックがネットワークを離れる前に、プライベート IP アドレスをパブリック IP アドレスのように見せます。そのため、Web はトラフィックをプライベート IP アドレスにルーティングしません。Web は、トラフィックを、ユーザーが表示されるパブリック IP アドレスに返します。

問題番号1:

NAT の仕組みを詳しく理解していれば、いくつかの疑問に答えられると思います。私が見た中で最も典型的な実装は、NAPT (「ネットワーク アドレス ポート」ベースの変換) です。プライベート アドレスからデータを送信すると、ルーターはそのプライベート アドレスを取得し、その情報をルーターのメモリ内のチャート/テーブルに追加します。ルーターは TCP または UDP ポート番号も選択し (おそらくランダムに選択されます)、同じチャート/テーブルでその情報を追跡します。次に、ルーターはパブリック IP アドレスを使用して情報をインターネットに送信し、「送信元ポート」番号を選択した番号として識別します。 (TCP と UDP はどちらも、「送信元」番号と「送信先」番号の 2 つのポート番号を使用します。) 送信先 (たとえば、TCP ポート 443 でリッスンしている Web サーバー) が、TCP ポート 443 に送られるトラフィックが別の TCP ポート (たとえば、TCP ポート 53874) から送られてくることに気付いた場合、そのサーバーは、同じ TCP ポート (たとえば、TCP ポート 53874) 上の発信元ルーターのパブリック IP アドレスにトラフィックを返信することで応答する場合があります。次に、ルーターはテーブル/チャートの情報を検索し、どのプライベート IP アドレスに情報を送信するかを判断します。

プライベート IP アドレスをランダムに選択した場合、ルーターのテーブル/チャートにそのプライベート IP アドレスは表示されないため、機能しません。

ルーター/NAT には、IP だけではなく、データを正しいクライアントにルーティングする別の手段があると思いますが、それがどのように行われるかはわかりません。

いいえ。

そうですね、あります。他にもルーティングは発生する可能性がありますので、簡単にその点について触れておきます。802.1q「VLAN」タグの使用や、一部のデータ/シグナリング クラウドで使用できるその他のテクノロジがあり、トラフィックがネットワークを移動する方法に影響を与える可能性があります。ただし、これらの追加のルーティング方法は、通常、速度、セキュリティ、または互換性 (主に非 IP ネットワーク、たとえば電話会社内の古いネットワーク) を目的として導入されます。これらの高度なプロフェッショナル レベルのネットワーク テクニックによって、基本的なルーティングの仕組みを理解するための新しい必要な部分が導入されると考える必要はありません。基本的な単純な IP ルーティングを使用して、質問の内容を説明することができるからです。

問題2: ルーターの内部防御

ここで、ルータが NAPT を実行していないと仮定して、パブリック TCP/UDP ポート番号とプライベート アドレスを対応付ける表/チャート全体を無視します。顧客の ISP にいて、ルータ経由でパケットを顧客のプライベート IP アドレスに悪意を持って送信したいと仮定します。

ほとんどのルーターは、非常に基本的なファイアウォールのような動作を実行して、着信トラフィックが「WAN」(「Wide-Area Network」の略) というラベルの付いたポートに到着していることに気付きます。保護を提供するために、ルーターは、そのネットワーク ポートの着信トラフィックがルーターのパブリック IP アドレスを使用する必要があり、一般的な「プライベート」 IP アドレス範囲は使用すべきではないことを認識します。

したがって、ルータはパケットをドロップすることでネットワークを防御します。

問題3: ISPは私たちをより良く保護する

ISPの標準では、プライベートIPアドレス範囲(インターネットで識別されるネットワークアドレス範囲)との間のトラフィックを許可しないことになっています。IETF RFC 1918 セクション 3IPv4 の場合は「fd」で始まるアドレス、IPv6 の場合は「fd」で始まるアドレス)。

したがって、自宅から ISP を経由してトラフィックを送信し、その後 ISP の残りのメイン インターネット バックボーンを経由して、被害者の ISP を経由して、被害者のルーターを経由して、最終的に選択した「プライベート IP」アドレスに送信しようとすると、失敗するはずです。これは、ISP が通常、プライベート IP アドレスを含むトラフィックをブロックするという慣例に従うためです (ISP がこれを行わないのはおかしいことです)。

上記のシナリオでは、標的の被害者の ISP によって保護は提供されません。確かに、標的の被害者の ISP はパケットをドロップするように設定されており、それによって標的の被害者のルーターが保護される可能性があります。ただし、あなたの ISP もパケットをドロップする可能性が高いため、パケットは標的の被害者の ISP にさえ届きません。

問題4: ISPの動機

なぜ ISP はプライベート IP を含むトラフィックを許可するのでしょうか?

そうですね、すべての組織は、独自の内部ネットワークにプライベート IP アドレスを使用することが許可されていることに留意してください。これには ISP も含まれます。ISP は、ISP のローカル機器の一部にプライベート アドレスを使用している可能性があります。ISP がそれを実行しているかどうかに気付いたり検出したりすることはできません。

ISP がトラフィックをルーティングする方法は、トラフィックが次にどこに行くべきかを決定する「ルーティング テーブル」に依存しています。これらの「ルーティング テーブル」は、プライベート アドレスを宛先とするトラフィックをどの他の ISP が喜んで受信するかを指定しません。ISP は、自身の内部機器の一部を除いて、トラフィックを送信する場所がありません。プライベート IP アドレスを含むトラフィックの多くは悪意のあるものか、その他の問題 (誤って設定されたデバイスからのトラフィックを含むなど) である可能性が高いため、ISP はそのようなトラフィックが自身の内部機器に送信されること (ISP に問題を引き起こす可能性) を絶対に望んでいません。したがって、ISP はプライベート アドレスに送信されるパケットをブロックする必要があります。すぐに、トラフィックが ISP ネットワークを通過する前に、これを許可します。

ISP がこれらのルールに違反した場合、ISP は悪意のあるトラフィックを招き入れる可能性が高く、そのトラフィックはおそらく (帯域幅の使用以外) 影響を及ぼさないでしょうが、何らかの影響があった場合、それは ISP にとって悪影響となるでしょう。

問題5: 実際に何が起こるのか

これまで、インターネットがトラフィックをブロックする理由について説明してきました。しかし、実際に何が起こるのかを見てみましょう。

コンピューターの前に座って、悪意のあるパケットをプライベート IP アドレスに送信しようとした場合、何が起こるでしょうか?

すでに説明したように、トラフィックがローカル ISP まで到達した場合、そのローカル ISP はトラフィックを直ちにブロックします。

しかし、実際に起こりそうなのは、トラフィックがローカル ISP まで到達しないことです。その代わりに、ローカル ルーターがそのトラフィックをどう処理するかを判断します。

自分自身で同じ「プライベート」 IP アドレスを使用していない場合、自分のルーターはトラフィックをどのように処理すればよいか分からず、トラフィックは破棄されます。

そうでない場合、同じ「プライベート IP」アドレスを自分で使用している場合は、自分が接続しているネットワーク上のデバイスを攻撃している可能性があります。そのネットワークの管理者である場合は、自分のネットワークを攻撃していることになります。

いずれにしても、一般的なデフォルト設定を使用している場合、ルータがトラフィックをインターネット経由で渡す可能性は低くなります。

レビュー:

これらすべての問題は、インターネットがプライベート IP アドレスへの攻撃を許可しない理由に関するものです。実際にターゲットと同じローカル ネットワーク上にいる場合は、ルーターを経由する必要すらない可能性があるため、これらの防御はどれも邪魔になりません。ただし、インターネット上の別の場所にいる場合は、これらの防御がそのような攻撃の試みを邪魔する可能性があります。

制御可能なルーター (少なくとも一部のタイプ) では特定の標準ルールに違反する可能性がありますが、他の組織もプライベート IP アドレスをブロックする可能性があり、それによってリモート システムへの攻撃を効果的に防止できます。

関連情報