質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

PPPoEグローバルIP偽装について教えて下さい。

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 4,888

zatsudayo

score 4

PPPoEグローバルIP偽装について教えて下さい。

勉強目的で、
グローバルIPを偽装してHTTPリクエストを送信し、かつ、
HTTPレスポンスを受信する方法を調べています。

現時点で、以下の方法で可能かなと思っています。
・送信TCPパケットの送信元IPを任意のグローバルIPにする
・送信TCPパケットのソースルーティングに自ルータのグローバルIPを指定する
・自ルータのDMZ機能等を使用してWANからの受信TCPパケットをLANへ流す

そこで、以下①②③をご教授下さい。
いずれか一つだけでも構いません。

現在以下の構成です。
「クライアントPC←→自ルータ←→終端装置←→雲←→サーバ」

③パケット生成
どのように任意に送信元IPとソースルーティングを指定したパケットを発行すればいいのでしょうか?
開発言語は.netFranworkです。
HttpWebRequest^ req;
HttpWebResponse^ res;
上記あたりで可能でしょうか?
それとも、row-socketのような低いレイアが必要でしょうか?

①グローバルIPを偽装する方法
クライアントPCで発行する送信TCPパケットの送信元IPを任意のグローバルIPにすれば良いのでは?

と考えたのですが、よくよく考えるとこれは多分ダメで、

これはLAN内の話になってしまい、
いくらLAN内で偽装しても、WANから出ていく送信TCPパケットの送信元IPはPPPoEで割り当てられたグローバルIPになってしまって、
任意グローバルIPの偽装が出来ないのでは?と考えました。
※こちら合っていますか?

なので、クライアントPCで発行する送信TCPパケットではなく、
自ルータ君が何かしらの方法で任意のグローバルIPに偽装する必要があるのでは?と考えました。
※こちら合っていますか?

合っている場合、どのようにして任意のグローバルIPに偽装すればいいのでしょうか?
合っていない場合、何が合っていないかを教えて下さい。

②PPPoEに縛られずに送受信を行う方法

NTTの光フレッツでプロバイダを使用してます。
要はPPPoEです。

ここで以下サイトに「PPPoEなどを用いずにEthernetをそのままインターネットなどに接続することも技術的には可能」
とあります。
http://e-words.jp/w/PPPoE.html

PPPoEを使わずにインターネットに繋ぐってどういう方法でしょうか?
この方法を教えて下さい。
若者世代でPPPoEが当たり前なので、このPPPoE以外でインターネットに繋ぐ方法を知りません。

PPPoEだと、どうしてもプロバイダが発行するグローバルIPに縛られてしまい、
仮に偽装が出来てもプロバイダでブロックされてしまうので、
偽装が出来ないとでは?と考えている為です。

プロバイダに縛られない自由な環境があれば、
自由に偽装が可能なのでは?と考えているのです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/12/29 00:57

    こちらの質問が他のユーザから「プログラミングに関係がない質問」という指摘を受けました
    teratailでは、プログラミングに関して困っていることがないと思われる質問を推奨していません。
    「質問を編集する」ボタンから編集を行い、具体的に困っている理由や解決したいことを明確に記入していただくと、回答が得られやすくなります。

  • zatsudayo

    2016/12/29 01:04

    勿論プログラミングも関係してますが、その前にネットワーク理論が大切なので。実際に必要なパケット生成の為のプログラミングに関する質問を追記しました。

    キャンセル

回答 2

+7

まず、TCP/IP等のネットワーク通信について理解していますでしょうか?Ethernetフレームはどういうもので、どういう構造で、どうやって伝わるのか?IPパケットはどういうもので、どういう構造で、どうやって伝わるのか?

何が可能で何が不可能でどういう風にすれば良いのか説明しても良いのですが、上で言ったTCP/IPの知識が無いと理解することは不可能です。ですので、注意事項だけ言います。

  • 任意の送信元IPアドレスに偽装することが簡単にできるなら、犯罪者は全員そうしています。しかし、実際は不正アクセスや名誉毀損などの犯罪において警察が調べるのは送信元IPアドレスですし、裁判で証拠として認められるのも送信元IPアドレスです。また、サービスを国内のIPアドレス限定にする(オンラインゲームに多い)、一部の組織からのIPアドレス限定にする(企業向けサービスに多い)などの設定を行う場合があります。こういった方法が有効なのは、原理上、送信元IPアドレスを偽装して、完全な通信を行うことはほぼ不可能だからです。なぜ、不可能であるかは、IPアドレスのルーティングの仕組みを理解し、インターネット上でのルーティング決定がどのように行われているかを知れば自ずとわかります。逆に、ルーティングの仕組みをきちんと理解していなければ、説明を聞いても理由はわからないでしょう。

  • もし、偽装ができたとしても、そのような行為を行った場合、不正アクセス禁止法違反で逮捕・起訴され、有罪判決を受ける場合があります。
    特定のIPアドレスからしかアクセスできないようにしているサービスに対して、IPアドレスを偽装することでアクセスした場合、不正アクセス禁止法が禁止する不正アクセスと見なされる場合があります。ACCSの裁判を見る限り、不正アクセスとは単なるパスワード認証の迂回だけでなく、管理者が想定しているあらゆる制限に対する、想定外の迂回を意味します。IPアドレス偽装に関する判例は見つかりませんでしたが、あなたがその判例の第一号になっても私は知りません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/30 21:08

    大昔 (つまり10年前とか) なら、複数のプロバイダの回線を引き込んでマルチホームホストで「上り下りそれぞれ負荷分散」なんていうことができたりしたんですが、今は無理でしょうね。

    キャンセル

  • 2016/12/30 21:41

    raccy様ご回答ありがとうございます。
    ikedas様ご回答ありがとうございます。

    >>raccy様
    聞きたいのではそこではないのです。
    「仮に」破棄されない場合、サーバが受け取る場合、


    SSRRやLSRRを送信者が指定した場合、
    1.それが適用されるのは送信経路においてでしょうか?

    2.それとも返って来る途中の受信経路においてでしょうか?

    3.それとも両方の経路でしょうか?

    もし1.送信経路のみの場合、
    偽装したIP当てに返信がいってしまうため、自分に返ってこないという認識で正しいでしょうか?

    もしそうなら、偽装したIPを自分に返す方法は他にございますでしょうか?

    質問に答えて頂きますようお願い申し上げます。

    キャンセル

  • 2016/12/30 22:15

    zatsudayoさんはインターネットでの話をしたいのですか?ローカル内であればいくらでも実験はできますよ。私が言っているのはインターネットでのグローバルIP偽装の話ですよ。

    SSRRやLSRRが破棄されなかったとして、送信はうまくいきます。しかし、返信パケットもわざわざ逆ルートにしたSSRRやLSRRをセットしてくれないと戻ってくることはありません。では、サーバがそのように返信パケットを設定してくれるかどうかについては、わかりません。わざわざセキュリティホールになる機能を有効にするような人はほとんどいないので、情報は見つかりませんでした。ご自分で検証したらいいかと思います。サーバと業務用のルータやL3スイッチがあればできますので。

    偽装をどうしてもしたかったら、ISPのルータが置いてあるデータセンターに忍び込むなり、ISPに就職して業務には関係無い設定をルータにするしかありません。もちろん、犯罪なので、そのあとは捕まりますが、そこまでの責任は私は取れません。

    キャンセル

0

①グローバルIPを偽装する方法

Information Security Stack Exchangeのとある質問「Is it possible to pass TCP handshake with spoofed IP address?」のベストアンサーが端的で分かりやすいです。条件つきながら、偽装IPでのルータ越えの通信は可能です。条件とは

  • 送信先の近くにあるルータで、本物のソースIPと送信先の間の経路上かつ偽装したIPと送信先の間の経路上にあるものを、制御できること (制御できるルータは1個でいいと思われます)。
  • 送信先がソースルーティングパケットを受け入れること。

一つ目の条件によりman-in-the-middleとしてのルータを必要とするため、二つ目の条件が満たされたとしても、質問者さんの環境では偽装は不可能です。

②PPPoEに縛られずに送受信を行う方法

これはご自分で勉強して下さい。その上で、わからないことがあればまたご質問下さい。


余談。

現状のインターネットの運用ではソースルーティングパケットの利用が厳しく制限されていることは事実ですし、安全管理上当然のことです。しかし、制限をなんらかの形ですりぬける行為が不正アクセス禁止法違反などの刑法犯罪を構成するかどうかは裁判所が決めることであり、技術的に決定できることではありません。

要するに。ソースルーティングパケットを受け入れるホストや、偽パケットを中継するルータを作ってみたければ、作って実験してみればいいと思いますよ (普通のLinux boxで作れます)。それを、お金を盗んだり人の計算機に侵入したりするようなことに使わなければ、犯罪ではありません。


コメントをいただいても応答が間遠になるかもしれません。皆様よいお年を

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る