Netflix報告: Linux Kernel又はFreeBSDのリモートから攻撃可能な脆弱性(TCP SACK PANIC) (CVE-2019-11477, CVE-2019-11478, CVE-2019-11479, CVE-2019-5599)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

06/17/2019にNetflixからFreeBSDとLinux Kernelに対して、幾つかのTCPの脆弱性に関するアドバイザリーが出されました(CVE-2019-11477, CVE-2019-11478, CVE-2019-11479, CVE-2019-5599)。アドバイザリーは最小セグメントサイズ(MSS)とTCP SACKに関するものになります。最も深刻な「SACK Panic」と呼ばれるものは、最近のLinux KernelにリモートからKernel Panicを引き起こすことができます。Netflixの方でPatchも提供されています。今の所PoCや攻撃コードは出回っていません。今後も情報が出てくると思われますので、こちらで取り上げます。

逐次情報は更新していく予定です。

2019/06/18 14:00更新:タイトルのミススペルの修正、AWSの情報の追加、Red Hatの日本語の情報を追加しました。

2019/06/18 18:30更新:SUSE、Ubuntu、Oracleの情報を追加しました。

2019/06/19 0:30更新:Debian, Arch Linux, Linux Kernel(Linux Kernel CVEs)の情報を追加しました。HW情報にCheckpointを追加しました。関連ニュースにZDNet(英語)を追加しました。

2019/06/19 05:30更新:Sophosの情報を追加しました。関連ニュースにHackerNews, Tenableを追加しました。

2019/06/19 19:30更新:F5(BIG-IP)の情報を追加しました。

2019/06/20 07:30更新:Ciscoの情報を追加しました。

2019/06/21 05:00更新:関連ニュースにSecurityIntelligence, NakedSecurity, infosecurity MAGAZINEの情報を追加しました。

2019/06/22 08:00更新:関連ニュースにJVN(Japan Vulnerability Notes)の情報を追加しました。

2019/06/24 16:30更新:Paloalto Networksの情報を追加しました。

2019/06/24 17:00更新:関連ニュースにCERTの情報、マイナビニュースを追加しました。




Priority/CVSS

  • CVE-2019-11477

    Important

    • SuSE
    • Red Hat Customer Potal
      • CVSS v3 Base Score: 7.5
      • Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
    • NVD
  • CVE-2019-5599

    • SuSE
    • Red Hat Customer Potal
    • NVD
  • CVE-2019-11478

    Moderate

    • SuSE
    • Red Hat Customer Potal
      • CVSS v3 Base Score: 5.3
      • Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
    • NVD
  • CVE-2019-11479

    Moderate

    • SuSE
    • Red Hat Customer Potal
      • CVSS v3 Base Score: 5.3
      • Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
    • NVD

関連ニュース/関連情報


修正方法

各ディストリビューションの情報を確認してください。

脆弱性概要(詳細は一次情報源のサイトをご確認ください)

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11477
    • リモートからのDoSの可能性(SACK Panic)
    • 重要度 – High/Important
    • 対象バージョン:(Linux >= 2.6.29)
    • 2.6.29以降のLinux Kernelに問題が見つかりました。細工されたSACKシーケンスにより整数オーバーフローを引き起こし、Kernel Panicを引き起こすことが可能です。
      1. 以下の何れかの回避方法で暫定対応が出来ます(どちらか一つの適用です)。

      2. Netflixの提供するフィルターによって、低いMSSの接続をブロックすることで回避できます。低いMSSに依存した正規の接続もブロックされてしまうため気をつけて下さい。
      3. SACKを無効にします(/proc/sys/net/ipv4/tcp_sackを0にします)。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11478
    • SACK Slowness(遅延)またはリソース使用率の増大
    • 重要度 – Moderate/Medium
    • 対象バージョン:(SACK Slowness: Linux < 4.15 , リソース使用率の増大: 全てのLinux Kernel)
    • 攻撃者は細工されたSACKシーケンスを送ることによりTCP retransmission(再送)キューにフラグメントを引き起こすことが可能です。4.15より前のLinux Kernelでは、攻撃者はフラグメント化されたキューを用いて、その同じTCP接続で受信された後続のSACKに対して、高価なリンクリストウォークを引き起こす事が出来る可能性が有ります。
    • Netflixの方でPATCH_net_2_4.patchを提供しています。
      1. 以下の何れかの回避方法で暫定対応が出来ます(どちらか一つの適用です)。

      2. Netflixの提供するフィルターによって、低いMSSの接続をブロックすることで回避できます。低いMSSに依存した正規の接続もブロックされてしまうため気をつけて下さい。また、TCP probing(net.ipv4.tcp_mtu_probing)が0に設定されている際に有効な回避方法です(デフォルトでは0に設定されています)。
      3. SACKを無効にします(/proc/sys/net/ipv4/tcp_sackを0にします)。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11479
    • 低いMSS値によるリソース使用率の増大
    • 重要度 – Moderate/Medium
    • 対象バージョン:全てのLinux Kernel
    • 攻撃者はLinux Kernelに対して、その応答を複数のTCPセグメント(各セグメントは8バイトのデータしか入ってない)にさせることが出来ます。これにより、同じデータ量を届けるための帯域を劇的に増加させることが出来ます。更に、その他のリソース(CPUやNICプロセッサー)も消費させることが出来ます。この攻撃には攻撃者が連続して攻撃を行う必要が有り、攻撃者がトラフィックを送るのを止めるとすぐに影響は減少します。
    • NetflixがPATCH_net_3_4.patchPATCH_net_4_4.patchを提供しています。
      1. 以下の何れかの回避方法で暫定対応が出来ます(どちらか一つの適用です)。

      2. Netflixの提供するフィルターによって、低いMSSの接続をブロックすることで回避できます。低いMSSに依存した正規の接続もブロックされてしまうため気をつけて下さい。また、TCP probing(net.ipv4.tcp_mtu_probing)が0に設定されている際に有効な回避方法です(デフォルトでは0に設定されています)。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5599
    • SACK Slowness(遅延)
    • 対象バージョン:RACK TCP Stackを使っているFreeBSD 12
    • 攻撃者は細工されたSACKシーケンスを送ることによりRACK send mapにフラグメントを引き起こすことが可能です。攻撃者はフラグメント化されたsend mapを用いて、その同じTCP接続で受信された後続のSACKに対して、高価なリンクリストウォークを引き起こす事が出来る可能性が有ります。
      1. 以下の何れかの回避方法で暫定対応が出来ます(どちらか一つの適用です)。

      2. Netflixが提供するsplit_limit.patchを適用し、net.inet.tcp.rack.split_limitをSACKテーブルを制限するのに適切な値にセットします。
      3. RACK TCP Stackを無効にします。

主なディストリビューション/Linux Kernelの対応状況

詳細は、各ディストリビューションの提供元にご確認ください



対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。

また、OSの再起動が発生しますので、peacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。


セキュリティ系連載案内


セミナー情報1

2019/07/31 10:00-17:00で開催される、一般社団法人 日本情報システム・ユーザ協会(JUAS)様による有料ハンズオンセミナー「ハンズオンで学ぶ!クラウド時代の運用管理とセキュリティ対策 」にて当ブログの筆者「面 和毅」が講師を努めます。

本セミナーでは、大手ベンダーや外資系企業、ユーザー企業などでセキュリティの専門家として20年以上の経験を持ち、現在、セキュリティエバンジェリストとして活躍する講師が実体験を交えながら、クラウド上のサーバーを安価に守る方法を、演習をまじえ、具体的にお伝えします。

https://juasseminar.jp/seminars/view/4119290にて申し込みを行っております。奮ってご参加ください。

セミナー情報2

2019/07/23 18:30-20:30で、「再演「やってはイケナイ」をやってみよう」セミナーを行います。

このセミナーは前回の「「やってはイケナイ」をやってみよう」セミナーの再演で、実際に色々な「やってはイケナイ」をデモを交えて行い、実際にどのような問題が発生するのかを確認し、その様な万が一の場合を防ぐために行っておくべき対策を紹介していきます。

https://sios.connpass.com/event/134622/がプログラム内容と申し込みの詳細になります。奮ってご参加下さい。


タイトルとURLをコピーしました