web-dev-qa-db-ja.com

HTTPSは、オープンネットワークでのセッションハイジャックに対する唯一の防御策ですか?

Firesheep を使用すると、パブリックWi-Fiのすべてのユーザーがワンクリックセッションのハイジャックツールを利用できるようになります。

それが機能する方法-私の理解によれば-すべてのトラフィックをキャプチャし、セッションCookieを取得するだけです(そのため、パスワードを盗みません)。

私の理解では、これは、HTTPSで保護されたログインがこれを単独で解決しないことも意味します。これは、HTTPトラフィックがさらにクリアテキストでセッションCookieを再び含むためです。

NATのおかげで、セッションを特定のIPアドレスに結び付けることは無意味であり、ユーザーエージェントに結び付けることは簡単になりすますことができます。

では、このタイプのセッションハイジャックを防ぐ唯一の方法は、常に100%HTTPSですか?ハンドシェイクを含むHTTPSトラフィック全体を単純にスニッフィングすることはできませんか、それともこれは安全ですか? (私はリプレイ攻撃を考えていますが、その領域に関する知識がありません。)

もちろん、パブリック/オープンWi-Fiネットワークを使用しない方が良い選択ですが、Webサイト開発者がユーザーを保護するために何ができるのか興味があります。

38
Michael Stum

Firesheepは何も新しいではありません。 WebアプリケーションがセッションIDを使用している限り、セッションハイジャックは存在していました。通常、ハッカーはアドレスバーに次のように入力して独自のCookieを設定します。javascript:document.cookie='SOME_COOKIE'。このツールは、JavaScriptの1行を恐れるスクリプトキディ向けです。

セッションの全期間にわたってHTTPSを使用せず、これが OWASP A9-Insufficient Transport Layer Protection の一部である場合、Cookieがハイジャックされる可能性があります。ただし、XSSを使用してセッションをハイジャックすることもできます。

1) httponlycookies を使用します。

2)「 安全なCookie 」を使用します(ひどい名前ですが、ブラウザにCookieをHTTPSのみにするように強制するフラグです。)

3)XSSのWebアプリケーションをスキャンします。

また、 [〜#〜] csrf [〜#〜] も忘れないでください! (どのFiresheepが対応していません。)

41
rook

ルークはそれのいくつかに答えました、あなたの質問の他の部分に答えます。

このタイプのセッションハイジャックを防ぐ唯一の方法は、常に100%HTTPSですか?

そのとおり。 100%HTTPSが唯一の方法です。そして100%が鍵です。

ハンドシェイクを含むHTTPSトラフィック全体を単純にスニッフィングすることはできませんか、それともこれは安全ですか? (私はリプレイ攻撃を考えていますが、その分野の知識はありません)

HTTPSには、リプレイ攻撃に対する保護機能が組み込まれています。正しく実装されていれば、HTTPSは本当に安全です。

HTTPSが正しく実装されていても、それを回避する方法はいくつかあります。 SSL Strip はそのようなツールの1つです。このツールはSSLを利用せず、人々が https://mybank.com の代わりに常にmybank.comをURLに入力するという事実を利用しています。

13

私はSSLが安価で完全なソリューションであると信じています。しかし、それがないか、ここで追加のレイヤーを探すまでは、SESSIOnデータを保護する方法です。

いつものように、部門での防御が進むべき道です。 1番目にセッションを使用してユーザーのログインデータを保存する2番目にログインした管理者がDBも確認すると、少し遅くなる可能性がありますが、管理者の数が少なく、残りはユーザーであるため、これは実行可能なセキュリティプラスです。 3番目のセッションを保護する<=!

セッション保護:セッション開始をオブジェクトファイルに入れ、自己構築で「is_session_valid()」関数を呼び出します。この関数は、$ _ SERVERスーパーグローバルの(IP/TIME/Browser)をチェックし、それらをセッションに保存します。次のロードで、リソースのログアウトユーザーを無駄にせず、インデックスページを表示するだけでなく、値が同じかどうかを確認します。

同じネットワーク上の同じブラウザである可能性があるため、これは完全なソリューションではありません。多くのユーザーとセッションハイジャックのあるWifiも最近(時間内に)発生する可能性があります。しかし、SSLが使用されなくなるまで、これははるかに優れています。とにかく、被害者とハイジャッカーが同じものをすべて使用することはめったにありません....したがって、SSLがなくても攻撃が成功する可能性を効果的に軽減します!

APPのセキュリティ保護に精通していない場合のKevin Skoglundによるオリジナルのアイデアは、彼のセキュリティ保護されたPHP tutorial。 https://www.lynda.com/PHP-tutorials/Creating-Secure-PHP-ウェブサイト/133321-2.html

P.S.ある程度安全なAPを使用するには、他のいくつかの防御策(CSRFは最小限)を使用する必要があります

さようなら:-)

1
user3649978