Ubuntu Weekly Topics

2018年3月2日号Spectre/Meltdown対策さらにさらにその後・3月初旬編

Spectre/Meltdown対策さらにさらにその後・3月初旬編

16.04 LTS用カーネルに、Retpoline+IBPBがバックポートされる予定です。また、ユーザーランドを保護するためにRetpolineでバイナリを再作成する方向の検討が開始されています。

……これだけでは状況がよく分からなくなってくるはずなので、⁠どのような対策が必要なのか」を軸に簡単に整理してみましょう。

Meltdownは、基本的にKPTIによって対処済みです。詳細は次の通りです。

  • カーネルを含めた、他のプロセスのメモリの中身を読み取ることが可能な問題。すでに攻撃コードに転用可能なサンプルが存在しており、攻撃も十分に可能と考えられる。⁠なんらかの信用できないコードが実行されうる環境」では必ず対策が必要。
  • 対策には基本的にカーネルのPTI(KPTI)が必要。KPTIを有効にすることで、ワークロードによっては一定の性能劣化が発生する場合がある。
  • UbuntuにはKPTIが実装済みで、デフォルトで有効(1-2月に提供された新しいカーネルへのアップデートが必要⁠⁠。
  • 外部から信用できないコードが読み込まれうるWebブラウザでは、たいていが攻撃を抑制するための措置を導入済み。
  • 信用できないコードが実行されない(かつ、信用できないユーザーがログインできない)環境で、かつ、パフォーマンスにセンシティブな環境や影響の調査用に、KPTIをオフにすることもできる。
  • Paravirt(PV)で動作している場合はKPTIによる保護では守り切れないので、HVMに移行する必要がある。

Spectreは、⁠カーネルは保護されているが、ユーザーランドの保護についてはハイコストな回避策が複数存在し、どちらを採用するかはまだ確定していない。ただし、性能劣化や手間をかけてまでユーザーランドを全域保護すべきかは検討の余地がある」という複雑な状態にあります(Variant 1/2の区別はここではしません⁠⁠。

  • 他のプロセスのメモリの中身を読み取ることが可能な問題。非常に限定的な条件で攻撃を成立させることが可能だが、現実的な攻撃に転用できるかは議論の余地がある。ただし、将来的に攻撃手法が確立される可能性があるため、対策は必要。
  • 対策の一部として、IBRS(IBRS_ALL)と呼ばれる、新しいCPUマイクロコードと組み合わせて動作する実装をカーネルで適用することで、カーネルとユーザーランドそれぞれを保護できる。ただし、ワークロードによっては、IBRSはパフォーマンスに一定の悪影響を及ぼすことがある。
  • IBRSとは異なる実装として、カーネルとユーザーランドそれぞれのバイナリを、Retpolineと呼ばれるコンパイラオプションを利用してコンパイルすることで影響を回避することもできる。Retpolineによるパフォーマンス影響はIBRSに比べると大きくない。
  • 外部から信用できないコードが読み込まれうるWebブラウザでは、たいていが攻撃を抑制するための措置を導入済み。
  • Ubuntuとしては当初(1月初旬⁠⁠、IBRSを利用して「カーネルとユーザーランドを」保護する対策を導入したが、Intelのマイクロコード問題を起因とする幾つかのトラブルによってIBRSでの対策を取り下げ、Retpolineベースで「カーネルを」保護する路線に切り替えている。ユーザーランドはまだ保護されていない。
  • ユーザーランドをRetpolineで保護する(=各種パッケージをRetpoline有効な状態でリビルドする)対策が検討されている。全ユーザーランドに適用するのは18.04 LTSのみ。16.04 LTSや17.10については一部のみに適用することを検討している今回の動きがこれ・その1⁠。
  • 対策として、STIBPやIBPBと呼ばれる実装も別途必要。当初のRetpolineではIBPBと併用できなかったので、順次対応中今回の動きがこれ・その2⁠。

この問題は非常に複雑なため、単純な説明は困難ですが、さまざまな背景を無視した要約としては、⁠Meltdownは対応済みだが、Spectreはまだ対応は完成ではない。ただし現実的なリスクはコントロールされている」となります。また、状況は随時変化する可能性があります。できるだけ最新の情報に当たるようにしましょう。

最新の情報は、Ubuntu WikiのSpectre And Meltdown記事とFAQを参照してください。

その他のニュース

今週のセキュリティアップデート

usn-3575-1:QEMUのセキュリティアップデート
usn-3576-1:libvirtのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004285.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2016-5008, CVE-2017-1000256, CVE-2018-5748, CVE-2018-6764を修正します。
  • VNCパスワードが設定されていない場合もVNC接続が可能だった問題と、証明書検証が適切に行われていない問題・外部から特定の入力を行うことでクラッシュを誘発できる問題・LXC(libvirt_lxc)利用時にlibnss_dnsの問題により任意のコードの実行が可能な問題がありました。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
usn-3577-1:CUPSのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004286.html
  • Ubuntu 16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2017-18190を修正します。
  • CUPSがHostヘッダが「localhost.localcomadin」で、かつloインターフェースを経由した接続の場合は管理画面に接続できることを利用し、悪意あるWebサイトがDNSリバインディング攻撃を行うことでCUPS管理画面に含まれる秘匿すべき情報やプリンタ管理を行うことが可能でした。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。
usn-3579-1:LibreOfficeのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004287.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2018-6871を修正します。
  • 特定の入力を行うことで、本来権限のないドキュメントを閲覧することが可能でした。
  • 対処方法:アップデータを適用の上、LibreOfficeを再起動してください。
usn-3580-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004288.html
  • Ubuntu 12.04 ESM用のアップデータがリリースされています。CVE-2017-5715, CVE-2017-5753への緩和策を提供します。
  • ⁠Spectre⁠対策のため、IBRS/IBPB機能を提供します。これらの機能が機能するためには、更新されたマイクロコードが利用できる必要があります。仮想化環境の場合はハイパーバイザーがこれらの機能をゲストに提供している必要があります。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
usn-3581-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004289.html
  • Ubuntu 17.10用のアップデータがリリースされています。CVE-2017-15115, CVE-2017-17712, CVE-2017-8824を修正します。また、CVE-2017-5715への緩和策を提供します。
  • ⁠Spectre⁠対策となる⁠Retpoline⁠をカーネルに提供する修正を含め、複数のセキュリティ脆弱性に対応します。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:ABIの変更を伴いますので、カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため、通常はそのままアップデートの適用を行えば対応できます。
usn-3582-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004290.html
  • Ubuntu 16.04 LTS用のアップデータがリリースされています。CVE-2015-8952, CVE-2017-12190, CVE-2017-15115, CVE-2017-17712, CVE-2017-8824を修正します。また、CVE-2017-5715への緩和策を提供します。
  • ⁠Spectre⁠対策となる⁠Retpoline⁠をカーネルに提供する修正を含め、複数のセキュリティ脆弱性に対応します。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:ABIの変更を伴いますので、カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため、通常はそのままアップデートの適用を行えば対応できます。
usn-3581-2:Linux kernel (HWE)のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004291.html
  • Ubuntu 16.04 LTS用のアップデータがリリースされています。CVE-2017-15115, CVE-2017-17712, CVE-2017-8824を修正します。また、CVE-2017-5715への緩和策を提供します。
  • ⁠Spectre⁠対策となる⁠Retpoline⁠をカーネルに提供する修正を含め、複数のセキュリティ脆弱性に対応します。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:ABIの変更を伴いますので、カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため、通常はそのままアップデートの適用を行えば対応できます。
usn-3582-2:Linux kernel (Xenial HWE)のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004292.html
  • Ubuntu 14.04 LTS用のアップデータがリリースされています。CVE-2015-8952, CVE-2017-12190, CVE-2017-15115, CVE-2017-17712, CVE-2017-8824を修正します。また、CVE-2017-5715への緩和策を提供します。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:ABIの変更を伴いますので、カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため、通常はそのままアップデートの適用を行えば対応できます。
usn-3578-1:WavPackのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004293.html
  • Ubuntu 17.10用のアップデータがリリースされています。CVE-2018-7253, CVE-2018-7254を修正します。
  • 悪意ある加工を施したファイルを処理することで、メモリ破壊を伴うクラッシュが生じる場合がありました。悪用により任意のコードの実行が可能と考えられます。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。
usn-3581-3:Linux kernel (Raspberry Pi 2)のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004294.html
  • Ubuntu 17.10用のアップデータがリリースされています。CVE-2017-15115, CVE-2017-17712, CVE-2017-8824を修正します。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:ABIの変更を伴いますので、カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため、通常はそのままアップデートの適用を行えば対応できます。
usn-3583-1:Linux kernelのセキュリティアップデート
usn-3583-2:Linux kernel (Trusty HWE)のセキュリティアップデート
usn-3584-1:sensible-utilsのセキュリティアップデート
  • Ubuntu 17.10・16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2017-17512を修正します。
  • 悪意ある入力文字列(URL)を処理させることで、任意のコードを実行させることが可能でした。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。

おすすめ記事

記事・ニュース一覧