web-dev-qa-db-ja.com

sslstripは、HTTPとHTTPSの両方を使用するWebサイトでのみ機能しますか?

Sslstrip攻撃はHTTPとHTTPSの両方を使用するWebサイトでのみ機能しますか? Quora のコメント投稿者は次のように述べています:

SSLストリップは、HTTPとHTTPSの両方を使用するWebサイトでのみ機能することに注意してください。たとえば、メインページがHTTP経由であるが、ログイン、購入などのためにHTTPSに転送するEbayです。これらの攻撃を防ぐには、サイト全体でSSLを使用すること、つまりHTTPSではなくHTTPのみを使用することをお勧めします。別の方法はHSTS(Strict Transport Security)を使用することで、これはブラウザにHTTPSのみを介して接続し、HTTPを介して接続しないように命令します。

しかし、私はGoogleがHTTPとHTTPSの両方を使用していないことを知っています。彼らはHTTPSを使用し、sslstrip攻撃に対してHSTSヘッダーも使用しています。それは上のコメントが間違っているということですか?つまり、HTTPSのみを使用しているWebサイトに対してSSLStrip攻撃はまだ可能ですか?

7
Hasan

答え:

被害者のマシン(A)、攻撃者のマシン(B)、サーバー(C)があるシナリオを考えてみましょう。 SSLストリップは、プロキシサーバーである攻撃者のマシンで実行されています。したがって、被害者とサーバーの間には直接接続はありません。

被害者Aは、オンラインバンキングサービスを使用して自分の口座から送金したいと考えており、ブラウザーのアドレスバーに次のURLを入力します。

www.foobank.com/online_banking

バックグラウンドで、攻撃者のマシンに接続されている被害者のブラウザは、サーバーからの応答を待ちます。攻撃者Bは被害者Aの要求を転送し、銀行サーバーからの応答を待ちます。 BとCの間の接続は安全です。つまり、それらの間で転送されるすべてのトラフィック(BとC)はSSLトンネルを経由します。

Bankサーバーは、次のURLを持つログインページで応答します。

https://www.foobank.com/online_banking

この段階で、攻撃者はログインページにアクセスできます。次に、攻撃者(B)はサーバーからの応答をhttpsからhttpに変更し、それを被害者(A)に送信します。これにより、ブラウザは次のアドレスに送信されます http://www.foobank.com/online_banking

この時点で、被害者は攻撃者との安全でない接続でインターネットバンキングのログインページにアクセスできます。この時点から、被害者の要求はすべてプレーンテキスト形式で送信され、攻撃者はデータを傍受して資格情報を収集できます。

サーバーは、接続が正常に確立されたと見なします。このシナリオでは、攻撃者とサーバーの間(つまり、BとCの間)ですが、被害者(A)は、正当なサーバー(C)であると見なします。

そう

SSLStripはサーバーの動作に依存せず、クライアントに依存します。クライアントがHTTPSではなくHTTPを介して要求を行うことができる場合は、サーバーがHTTPSのみをサポートしている場合でも、攻撃を実行できます。 HSTSは、ブラウザーがそもそも(後続の要求に対して)プレーンHTTP要求を実行するのを防ぎます。

結論:

GoogleはHTTPSのみを使用し、SSLStrip攻撃に対してHSTSヘッダーを使用しています。 WebサーバーがHTTPSのみを使用している場合でも、SSLStrip攻撃が発生する可能性があるためです。

リソース: https://avicoder.me/2016/02/22/SSLstrip-for-newbies/

0
Hasan

SSLストリップは、HTTPとHTTPSの両方を使用するWebサイトでのみ機能します。

これは、HTTPサポートをオフにして攻撃から保護することを意味するため、正確ではありません。

重要なのは、ユーザーが最初にプレーンHTTP経由でサイトを要求すると、sslstripがステップインすることです。これは、ブラウザがサーバーに接続しようとする方法に関するものであり、サーバーがサポートするものではありません。ブラウザがプレーンなHTTP接続をまったく試みない場合にのみ安全です(以前に見られたHSTSディレクティブのため、またはWebサイトがブラウザの HSTSプリロードリスト にあるため)。

つまり、HTTPSのみを使用しているWebサイトに対してSSLStrip攻撃はまだ可能ですか?

はい。 https://yourbank.example/がプレーンHTTPでは何も提供しないとしましょう。とにかく、私はあなたにhttp://yourbank.example/へのリンクを送ります。ブラウザーがプレーンリクエストを試行すると、sslstripを使用してそれをインターセプトし、フィッシングサイトで応答します。ご覧のように、要求を転送しないので、元のサイトがプレーンHTTP経由でコンテンツを提供したかどうかは関係ありません。

23
Arminius

Sslstripでは、クライアントとsslstripインスタンス間の接続がプレーンHTTPを介して行われる必要があります。 sslstripからサーバーへの接続は、HTTPまたはHTTPSのいずれかです。

これは、クライアントが最初にプレーンHTTPでサイトを要求した場合、sslstripが機能することを意味します。代わりに、サイトがHTTPSでのみアクセス可能であることを知っているため、またはHSTSポリシー(プリロードされているか以前のアクセスから)のためにブラウザーがHTTPSを実施しているため、クライアントがHTTPSで既に開始している場合、sslstripは機能しません。

4
Steffen Ullrich