web-dev-qa-db-ja.com

TCP「オフパス」攻撃(CVE-2016-5696)

今日私は、最近のTCP=仕様の欠陥が2つの通信当事者間の悪意のあるコンテンツの注入につながることを読み取りました。攻撃ベクトルはどのように機能しますか?

私はまた、[/proc/sys/net/ipv4/tcp_challenge_ack_limit]の値をランダム化して書いている人が攻撃を緩和するのに役立つ記事を読んだことがあります。本当ですか?

攻撃を説明する論文へのリンク: 'Off-Path TCP Exploits:Global Rate Limit考慮されたDangerous' 。これはnotオフパスについてTCPシーケンス推論攻撃。論文を読む。

10
ashish

...注射につながります

この欠陥はインジェクションを引き起こしませんが、攻撃者がデータをインジェクトすることを可能にします。つまり、不注意によるデータ破損はありませんが、攻撃者による対象を絞った変更です。

攻撃ベクトルはどのように機能しますか?

あなたはその論文を参照したので、あなたはそれを読んだと思います。正確に理解できなかった部分はどこですか?しかし、少し要約すると:

  • TCP接続を引き継ぐことの難しい部分は、クライアントのソースポートと現在のシーケンス番号を推測することです
  • チャレンジACK(RFC5961)とともに導入されたチャレンジACK(Linuxでは100/s)を送信するためのグローバルレート制限により、最初のステップでクライアント接続で使用されるソースポートを推測し、次のステップでシーケンス番号を推測できます。 。主なアイデアは、サーバーへの接続を開き、いくつかのスプーフィングされたパケットと混合された間違ったシーケンスを持つ多くのRSTパケットを攻撃者のソースで送信することです。攻撃者に返されるチャレンジACKの数を数え、レート制限を知ることで、スプーフィングされたパケットのどれだけがスプーフィングされたクライアントにチャレンジACKをもたらしたかを推測できます。この方法により、正しいポートとシーケンスの値をすばやく絞り込むことができます。この攻撃は数秒以内に実行できます。
  • そしてもちろん、攻撃者はクライアントのIPアドレスを偽装できる必要がありますが、これはすべての環境に当てはまるわけではありません。 (セキュリティ対策によっては)ローカルネットワークで可能である場合がありますが、ISPは通常のDSL /ケーブル/モバイルアカウントからIPスプーフィングをブロックすることがよくあります。

しかし、攻撃を実際に理解するには、使用されるチャレンジACK(オフパスTCP RSTに対して防御))とそれらがどのように機能するかを理解する必要があります。したがって、RFC 5961を読むことも役立つでしょう。

/ proc/sys/net/ipv4/tcp_challenge_ack_limit ..の値をランダム化します。それは本当ですか?

これをランダムな値に設定してそれを維持することは、攻撃が新しい静的制限を理解できるため、おそらく役に立たないでしょう。数秒ごとに値を変更すると、攻撃を混乱させるのに役立ちます。値を非常に大きな値に設定すると、攻撃も不可能になります。

10
Steffen Ullrich