リモートのサービス拒否につながるLinuxTCPスタックに見られるXNUMXつの脆弱性

Linuxのクラッシュ

最近 LinuxTCPスタックのいくつかの重大な脆弱性の特定に関するニュースをリリースしました そしてFreeBSDは 攻撃者がリモートでカーネル障害を開始できるようにします または、特別に細工されたTCPパケット(死のパケット)を処理することにより、過剰なリソース消費を引き起こします。

問題は、データブロックの最大サイズのハンドルのエラーが原因で発生します TCPパケット(MSS、最大セグメントサイズ)および選択的接続認識のメカニズム(SACK、選択的TCP認識)。

選択的認識とは何ですか?

選択的TCP認識(SACK) これは、データ受信者が送信者に、正常に受け入れられたすべてのセグメントについて通知できるメカニズムです。

この 送信者が欠落しているストリームセグメントを再送信できるようにします 彼の「よく知られている」セットから。 TCP SACKが無効になっている場合、シーケンス全体を再送信するには、はるかに多くの再送信のセットが必要です。

Linuxカーネルでは、問題はバージョン4.4.182、4.9.182、4.14.127、4.19.52、および5.1.11で修正されています。 FreeBSDのソリューションは、パッチとして入手できます。

カーネルパッケージの更新は、Debian、RHEL、SUSE / openSUSE、ALT、Ubuntu、Fedora、およびArchLinux向けにリリースされています。

CVE-2019-11477(SACKパニック)

問題 2.6.29の時点でLinuxカーネルに現れ、カーネルをクラッシュさせることができます (パニック)コントローラーの整数オーバーフローが原因で一連のSACKパケットを送信する場合。

攻撃の場合、TCP接続のMSS値を48バイトに設定するだけで十分です。 配置されたSACKパケットのシーケンスを特定の方法で送信します。

問題の本質は、構造が tcp_skb_cb(ソケットバッファ) 17個のフラグメントを保存するように設計されています ( "MAX_SKB_FRAGS(65536 / PAGE_SIZE + 1)=> 17を定義する")。

パケットの送信プロセスでは、パケットは送信キューに配置され、tcp_skb_cbは、シーケンス番号、フラグ、送信に使用される「tcp_gso_segs」フィールドと「tcp_gso_size」フィールドなど、パケットに関する詳細を格納します。ネットワークカード側のセグメントを処理するためのコントローラーへのセグメンテーション情報(TSO、セグメントセグメントダウンロード)。

SACKが有効で、TSOがドライバーによってサポートされている場合、パケット損失または選択的なパケット再送信の必要性が発生したときにフラグメントが保存されます。

保護の回避策として、SACK処理を無効にするか、小さいMSSで接続をブロックできます(sysctl net.ipv4.tcp_mtu_probingを0に設定した場合にのみ機能し、MSSが小さいと正常に動作しない場合があります)。

CVE-2019-11478(SACK Slowness)

この失敗 SACKメカニズムの中断を引き起こします (4.15でLinuxカーネルを使用している場合)または過剰なリソース消費。

この問題は、再送信キューのフラグメント化(TCP再送信)に使用できる特別に細工されたSACKパケットを処理するときに発生します。 保護のためのソリューションは、以前の脆弱性と同様です

CVE-2019-5599(SACK Slowness)

SACKシーケンスの処理時に送信されるパケットマップの断片化を引き起こすことができます 単一のTCP接続内で、リソースを大量に消費するリストルックアップ操作を実行します。

この問題は、RACKパケット損失検出メカニズムを備えたFreeBSD12で明らかになります。 回避策として、RACKモジュールを無効にすることができます(デフォルトではロードされません。sysctlnet.inet.tcp.functions_default= freebsdを指定すると無効になります)

CVE-2019-11479

この欠陥により、攻撃者はLinuxカーネルに応答を複数のTCPセグメントに分割させることができます。 それぞれに8バイトのデータしか含まれていないため、トラフィックが大幅に増加し、CPU負荷が増加し、通信チャネルが詰まる可能性があります。

さらに、追加のリソースを消費します (プロセッサパワーとネットワークカード)。

この攻撃には攻撃者の継続的な努力が必要であり、攻撃者がトラフィックの送信を停止した直後にヒットは終了します。

この攻撃の進行中は、システムの容量が減少し、一部のユーザーのサービスが拒否されます。

リモートユーザーは、最大セグメントサイズを設定することにより、この問題を引き起こすことができます (MSS)TCP接続の下限(48バイト)で、特別に細工されたSACKパケットのシーケンスを送信します。

回避策として、MSSが低い接続をブロックすることをお勧めします。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。