web-dev-qa-db-ja.com

MITM攻撃を検出できますか?

ここのこの質問に基づいて: 「中間者」攻撃は非常にまれですか?

中間者攻撃を検出することは可能ですか?その場合、どのように対処しますか?

さらに、電話回線などのローカルネットワークへの接続を介して攻撃が行われている場合はどうなりますか?それを検出する方法はありますか?

41
TigerCoding

ブラウジング中に、Webサイトから提示された証明書が正当なCAによって発行されたものか、ブラウザが信頼するCAによって発行された偽の証明書かを毎回確認できます。もちろん、手動で行うことはできません。だから、あなたのためにそれを行うツールがあります。

Cert Patrol および Perspective は、本質的にそれを行うブラウザプラグインです。彼らは、どのドメイン名がどのCA(たとえば、Google => Thwateなど)および証明書に関連する他の多くのパラメーターによって問題であるかを記録し、CAが変更された場合にユーザーに警告しますOR =証明書の公開鍵が変更された場合。

これらは明らかにMITMの検出ではなく、Webサイトによって提示された証明書について何かが奇妙であることを検出することによる防止スキームに似ています。

また、SSHサーバーへの接続時に、サーバーのフィンガープリントを要求します。以前にサーバーに接続した後、sshクライアントから新しい指紋が表示されたら心配です。サーバーのホストキーは、最初の接続後にknown_hostsファイルに保存されます。クライアントが再度フィンガープリントの検証を要求する唯一の理由は、SSHサーバーが再起動/更新されたためですOR私はMITMed。

絶対的な偏執狂は、電話でシステム管理者に電話をかけ、彼に鍵を話して指紋を確認することを要求します。

27
CodeExpress

MitM攻撃を検出できますか?攻撃されるシステムの種類と攻撃の種類によって異なります。

洗練された攻撃者が、一般的にあなたとインターネットの間の上流のルーターの制御を取得し、MitMの制御下にある偽のサーバーにトラフィックをリダイレクトするとします(たとえば、DNS要求をキャプチャし、サーバーに偽の応答を与えるか、ネットワークアドレス変換を使用します) (NAT))。

ここで、http://www.facebook.comにアクセスして、攻撃者の管理下にあるhttpログインページに移動したとします。おそらく攻撃者は、Facebookのログインページを模倣したページを表示し、認証情報を取得し、その情報を使用して実際のFacebookに接続し、コンテンツを実際のFacebookからブラウザに送信する可能性があります。これは、初期ログインページで非表示フォームの投稿アクションがhttpsでないことを除いて、ほぼシームレスに実行できます。代わりに、Facebookで常にhttpsを使用するように設定していて、https://www.facebook.comにアクセスしたとします。攻撃者はfacebook.comの信頼できる証明書を持っていないため、MitM攻撃はブラウザに赤いフラグを送信します。確かに、多くのユーザーはこれらのブラウザの警告を無視します(期限切れのキーや自己署名キーを使用していないイントラネットサイトなどの害のない理由で発生する場合があるため)。これはすべて、攻撃者がFacebookにハッキングして自分のプライベート証明書を取得できなかったことを想定しており、ORほとんどのWebブラウザーで信頼されている偽の証明書を生成できるようにCA(認証局)を侵害していますOR以前にWebブラウザーを変更して、無効な証明書を信頼するか警告しないようにします。

一般にhttpではMitM攻撃を検出することはほぼ不可能ですが、httpsを使用すると、攻撃者が既にシステムまたは他のシステムのセキュリティを侵害していない限り、ブラウザは自動的に検出して警告します。最後(システムとしてのCAを含む)。

次の例:ssh。ここでも、プライベートサーバーとパブリックサーバーのキーペアを使用してコンピューターを認証します。したがって、自宅のコンピューターから頻繁に仕事用マシンにSSHでログインする場合、自宅のコンピューターは仕事用マシンの公開鍵(~/.ssh/known_hostsファイルに保存されています)を記録して信頼しています。自分のホームマシンから接続しているときにMitM攻撃が試みられた場合、sshはMitMマシンに私の仕事用マシンの秘密鍵がないことにすぐに気づき、ログインを許可しません(特に私が私のknown_hostsリストからの公開鍵;これは、新しいマシンにアップグレードしたか、サーバーの鍵を変更したと言った場合にのみ行います)。繰り返しになりますが、sshに対するMitM攻撃は、攻撃者がすでにrootとして私の仕事用マシンに侵入し、秘密鍵を自分のホストにコピーしていない限り、非常に簡単に検出できますOR自宅のマシンに侵入しました~/.ssh/known_hosts ORに記録されている私の作業用マシンの公開鍵を変更しました。これは初めてサーバーに接続したときです(known_hostsにサーバーがないか、ホストを認識していません指紋)。

11
dr jimbob

MitMスキームの検出は、あらゆる認証プロトコルの基本的な目標です。そのためには、次のものが必要です。

  • 認証情報を取得する安全な方法(サーバー証明書、共有キーなど)
  • サーバーと交換されるメッセージの信頼性を確認します。

サーバーもクライアントと同じようにする必要があります。対称スキームを使用すると、簡単に実行できます。 SSLなどの非対称プロトコルを使用する場合は、次のことを行う必要があります。

  • サーバー証明書を取得し、適切に認証できるようにする
  • 証明書に埋め込まれた公開鍵を使用してサーバーと通信し、誰もメッセージを復号化できないようにする
  • サーバーとユーザーは、将来の接続に対称暗号化を使用するための共有の一意のシークレットに同意します。
4
M'vy

No、できません。これを行う方法はたくさんあります。

ここで多くの答えが特定のMITM攻撃をチェックするの方法を教えてくれますそれがポイントではありませんと思います。

MITMは、攻撃者がデータストリームを解読して別のキー/指紋を提示しようとすることを意味するものではありません。彼はあなたとあなたの目的地ホストの間の単なるノードです。

MITMの状況に入るには多くの方法があります。それぞれ適切なネットワーク管理によって防止できますあなたと宛先ホスト間のすべてのノードを保護する必要があります。各ネットワークは、ルーティングプロトコルの悪用、ARPスプーフィング、DNSスプーフィング、単純な物理ブリッジのインストールなど、可能なあらゆるMITMに耐えるように設計する必要があります。

セキュリティを達成するためには、MITM攻撃に巻き込まれることは問題にならず、信頼と運に頼ることはできず、インターネットを制御することもできません。適切な監査によって安全であることが証明されない限り、悪意のある環境にいると想定する必要があります。 TLS、SSH、場合によってはIPSecなどの安全なプロトコルを使用すると、ネットワークをより安全に、認証し、データを暗号化できます。ただし、いつの時点でも常に脆弱であり、ほとんどの場合、プロトコル/実装自体の設定ミスまたは欠陥が原因です。

要するに、MITMを検出せず、代わりに:

  • LANを保護するか、誰かに依頼してください
  • 安全なトンネリングプロトコルを設定して、安全な遠隔ネットワークおよびシステムにアクセスする

MITMの検出は可能ですが、使用しているもの、Ciscoのポートセキュリティに関連していますIOSまたは任意のUnixボックスでSNORTを使用するだけです。完全なリストを取得することはできません。状況に加えて、攻撃者は常にあなたが考えていなかったものを見つけるのに十分なほど創造的であるため、上記の2つのアドバイスを参照してください。

3
Aki

ARPテーブルを確認できます。または、良いウェブサイトを見ることができます MITM TUTORIALs [ https://toschprod.wordpress.com/2012/03/04/mitm-8-countermeasures/] 説明真ん中の男とは何であり、どのようにそれらを回避するかについての詳細です。そのチュートリアルを読むと、何が起こっているのか、それを防ぐ方法、およびそれらを検出する方法についての優れたアイデアが得られると思います。

0
noktec