web-dev-qa-db-ja.com

LinuxシステムのSpectreおよびMeltdownの脆弱性を緩和するにはどうすればよいですか?

セキュリティ研究者が Project Zero で公開したSpectreおよびMeltdownと呼ばれる新しい脆弱性により、プログラムは他のプログラムのメモリから情報を盗むことができます。 Intel、AMD、およびARM=アーキテクチャに影響します。

この欠陥は、JavaScriptのWebサイトにアクセスすることにより、リモートで悪用される可能性があります。技術的な詳細は redhat Webサイトbuntuセキュリティチーム にあります。

投機的実行サイドチャネル攻撃による情報漏えい(CVE-2017-5715、CVE-2017-5753、CVE-2017-5754別名SpectreおよびMeltdown)

新しいクラスのサイドチャネル攻撃が、Intel、AMD、およびARMのプロセッサを含むほとんどのプロセッサに影響を与えることが発見されました。攻撃により、悪意のあるユーザースペースプロセスがカーネルメモリを読み取り、ゲストの悪意のあるコードがハイパーバイザーメモリを読み取ることができます。この問題に対処するには、Ubuntuカーネルとプロセッサマイクロコードのアップデートが必要になります。これらのアップデートは、利用可能になり次第、Ubuntu Security Noticesで発表されます。

JavaScriptでの実装例

概念実証として、Google Chromeブラウザで実行すると、JavaScriptが実行されているプロセスからプライベートメモリを読み取ることができるようにするJavaScriptコードが記述されました。

私のシステムは妖怪の脆弱性の影響を受けているようです。この概念実証( spectre.c )をコンパイルして実行しました。

システムインフォメーション:

$ uname -a
4.13.0-0.bpo.1-AMD64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux

$ cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516

LinuxシステムのSpectreおよびMeldownの脆弱性を緩和するにはどうすればよいですか?

さらに読む: Meltdownを使用してリアルタイムでパスワードを盗む

更新

@Carlos Pasqualiniの回答に続いてSpectre & Meltdown Checkerカーネルバージョンに切り替えた後に 4.9.0-5 を使用すると、debian Stretchのcve-2017-5754を軽減するセキュリティアップデートが利用可能になります。

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 31 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

2018年1月25日更新

spectre-meltdown-checkerスクリプトはdebianによって正式にパッケージ化されており、Debian Stretchで backports repository、BusterおよびSidを介して]利用できます。

更新05/22/2018

投機的ストアバイパス(SSB)–バリアント4とも呼ばれます

以前のすべてのメモリ書き込みのアドレスがわかる前に、メモリ読み取りの投機的実行および投機的実行を利用するマイクロプロセッサを備えたシステムは、サイドチャネル分析を介したローカルユーザーアクセスを持つ攻撃者への情報の不正開示を可能にする可能性があります。

Rogue System Register Read(RSRE)–別名Variant 3a

投機的実行を利用し、システムレジスタの投機的読み取りを実行するマイクロプロセッサを備えたシステムは、サイドチャネル分析を介したローカルユーザーアクセスを持つ攻撃者へのシステムパラメータの不正な開示を可能にする可能性があります。

2018年7月27日を編集

NetSpectre:ネットワークを介した任意のメモリの読み取り

このホワイトペーパーでは、ターゲットデバイスで攻撃者が制御するコードを必要としないため、数十億のデバイスに影響を与える、Spectreバリアント1に基づく新しい攻撃であるNetSpectreを紹介します。ローカルのSpectre攻撃と同様に、リモートの攻撃では、ターゲットのコードにSpectreガジェットが存在する必要があります。公開されたネットワークインターフェイスまたはAPIに必要なSpectreガジェットを含むシステムが、一般的なリモートSpectre攻撃で攻撃され、ネットワーク上の任意のメモリを読み取ることができることを示しています。攻撃者は巧妙に細工された一連のリクエストを被害者に送信し、被害者のメモリから秘密の値を漏らすための応答時間を測定するだけです。

35
GAD3R

2018年1月27日Intel Microcodeが一部のシステムを破壊する

Intel Microcode Update 2018-01-08 投機的実行分岐のセキュリティホールに対処するために、一部のシステムが壊れました。これは1月8日から1月21日まで多くのUbuntuシステムに影響を与えました。 2018年1月22日、Ubuntuは2017-07-07から古いマイクロコードを戻すアップデートをリリースしました。

更新で問題が発生し、Ubuntuを再インストールし、2018-01-08から2018-01-22の間に更新をオフにした場合は、Ubuntu自動更新をもう一度試すことをお勧めします。

2018年1月16日、Spectreを4.14.14および4.9.77で更新

すでにカーネルバージョン4.14.13または4.9.76を実行している場合、私が4.14.144.9.77をインストールして、数日でSpectreのセキュリティホールを緩和するのは簡単です。 。この修正の名前は Retpoline であり、以前に推測された深刻なパフォーマンスヒットはありません。

Greg Kroah-HartmanがLinux 4.9および4.14ポイントリリースの最新パッチを送信しました。これには、Retpolineサポートが含まれています。

このX86_FEATURE_RETPOLINEは、すべてのAMD/Intel CPUで有効です。完全なサポートを得るには、-mindirect-branch = thunk-externサポートを含む新しいGCCコンパイラでカーネルを構築する必要もあります。 GCCの変更は昨日GCC 8.0に導入され、GCC 7.3にバックポートされる可能性がある過程にあります。

Retpolineのサポートを無効にしたい人は、パッチを当てたカーネルをnoretpolineでブートできます。

ここでJavaScriptの詳細に触れずに、メルトダウンホールを即座に回避する方法を示します(2018年1月10日現在、スペクター保護)。

2018年1月12日更新

Spectreからの初期保護がここにあり、今後数週間および数か月で改善されます。

Linuxカーネル4.14.13、4.9.76 LTS、および4.4.111 LTS

これから Softpediaの記事

Linuxカーネル4.14.13、4.9.76 LTS、および4.4.111 LTSがkernel.orgからダウンロードできるようになりました。これらには、Spectreのセキュリティの脆弱性に対する修正のほか、Linux 4.14.12、4.9からのいくつかのリグレッションが含まれています。先週リリースされた0.75 LTSと4.4.110 LTSカーネル。いくつかのマイナーな問題が報告されています。

これらの問題は現在修正されているようですので、Linuxベースのオペレーティングシステムを本日リリースされた新しいカーネルバージョンに更新しても安全です。これには、より多くのx86更新、一部のPA-RISC、s390、PowerPC(PPC)修正、さまざまな改善が含まれます。ドライバー(Intel i915、crypto、IOMMU、MTD)、および通常のmmおよびコアカーネルの変更。

2018年1月4日と2018年1月10日に、多くのユーザーがUbuntu LTSの更新で問題を抱えていました。しかし、私は4.14.13を数日間問題なく使用しています[〜# 〜] ymmv [〜#〜]


2018年1月7日更新

Greg Kroah-Hartmanが昨日MeltdownとSpectre Linuxカーネルのセキュリティホールに status update を書きました。 Linuxの世界でLinusに次いで2番目に強力な人物と彼を呼ぶ人もいるかもしれません。この記事では、Ubuntuユーザーの大多数が使用している安定したカーネル(以下で説明)とLTSカーネルを扱います。


Linuxカーネル4.14.11、4.9.74、4.4.109、3.16.52、および3.2.97パッチのメルトダウンの問題

この記事 から:

ユーザーはシステムをすぐに更新するように求められます

2018年1月4日01:42 GMT・作成者:Marius Nestor

LinuxカーネルのメンテナーであるGreg Kroah-HartmanとBen Hutchingsが、最新バージョンのLinuxに影響を与える2つの重大なセキュリティ欠陥の1つにパッチを当てるLinux 4.14、4.9、4.4、3.16、3.18、3.12 LTS(長期サポート)カーネルシリーズの新しいバージョンをリリースしました。プロセッサ。

Linux 4.14.11、4.9.74、4.4.109、3.16.52、3.18.91、および3.2.97カーネルがkernel.org Webサイトからダウンロードできるようになりました。ユーザーはGNU/Linuxディストリビューションを更新することをお勧めしますそれらのカーネルシリーズのいずれかをすぐに実行する場合、これらの新しいバージョンに更新する理由彼らは明らかにメルトダウンと呼ばれる重要な脆弱性にパッチを当てているからです。

前述のように、メルトダウンとスペクターは、過去25年間にリリースされた最新のプロセッサー(CPU)を搭載したほぼすべてのデバイスに影響を与える2つのエクスプロイトです。はい、それはほとんどすべての携帯電話とパソコンを意味します。権限のない攻撃者がMeltdownを悪用して、カーネルメモリに格納されている機密情報を悪意を持って取得する可能性があります。

スペクター脆弱性のパッチはまだ作業中です

Meltdownは深刻な脆弱性であり、パスワードや暗号化キーなどの秘密データを公開する可能性がありますが、Spectreはさらに悪いため、簡単に修正できません。セキュリティの研究者たちは、それがかなりの期間私たちを悩ませると言っています。 Spectreは、最新のCPUでパフォーマンスを最適化するために使用される投機的実行手法を利用することが知られています。

Spectreのバグにもパッチが適用されるまでは、少なくともGNU/Linuxディストリビューションを新しくリリースされたLinuxカーネルバージョンのいずれかに更新することを強くお勧めします。したがって、お気に入りのディストリビューションのソフトウェアリポジトリで新しいカーネルアップデートを検索し、できるだけ早くインストールしてください。手遅れになるまで待たずに、今すぐやってください!


私はカーネル4.14.10を1週間使用していたので、Ubuntuメインラインカーネルのバージョンをダウンロードして起動する 4.14.11 はあまり気になりませんでした。

Ubuntu 16.04ユーザーは、4.14.11と同時にリリースされた4.4.109または4.9.74カーネルバージョンの方が快適な場合があります。

定期的な更新で必要なバージョンのカーネルがインストールされない場合は、このAsk Ubuntuの回答に従って手動で実行できます: https://askubuntu.com/questions/879888/how-do-i-update-kernel-to -the-latest-mainline-version/879920#87992


4.14.12-1日の違い

最初の回答から24時間以内に、4.14.11カーネルバージョンを修正するパッチがリリースされました。 4.14.12 へのアップグレードは、すべての4.14.11ユーザーに推奨されます。 Greg-KHさんのコメント

4.14.12カーネルのリリースを発表します。

4.14カーネルシリーズのすべてのユーザーはアップグレードする必要があります。

このリリースでまだ知られているいくつかの小さな問題があり、人々が遭遇しました。パッチがLinusのツリーに到達していないため、うまくいけば、今週末は解決されるでしょう。

今のところ、いつものように、環境でテストしてください。

このアップデートを見ると、ソースコードの多くの行が変更されていません。

11

この欠陥は、JavaScriptのWebサイトにアクセスすることにより、リモートで悪用される可能性があります。

確かに。したがって、適切な緩和策の1つは、WebブラウザーでJavaScriptを無効にするか、JavaScriptをサポートしていないWebブラウザーを使用することです。

JavaScriptをサポートするほとんどのブラウザには、JavaScriptを無効にする設定があります。または、JavaScriptを許可するサイトまたはドメインのホワイトリストを維持したい場合は、 uBlock Origin や/などのさまざまなアドオンが役立ちます。 NoScript

N.B.言うまでもなく、JavaScriptの無効化/制限はonlyの緩和策であってはなりません。さらに、関連するカーネル修正やその他のセキュリティ更新が作成、テスト、公開されたら、それらを確認(そしておそらく適用)する必要があります。 Debian派生のディストリビューションでは、コマンド /Sudo apt updateSudo apt list-upgradable、およびSudo apt upgradeを使用します。

更新:私のWordをそれに取らないでください。 Alan Cox はほとんど同じことを言っています:

big timeに注意する必要があるのはjavascriptです。これは、Webページ上のjavascriptがエクスプロイトをリモートで使用して、システムメモリからデータを盗むためです。 ... Adblockersやnoscriptのような拡張機能のようなものを検討してください。そもそも、多くのジャンクの実行を停止する可能性があります。できるだけ早くそれをしてください。 OSアップデートが表示されたら、それらを適用します。 ( ソース

6
sampablokuper

これがJavaScriptを使用して悪用可能であるという事実は主なポイントではなく、主要な問題であるべきではありません(この方法はシステムでリモートコードを簡単に実行できるため、主要な問題ですが、これだけではありませんこれが起こり得る方法)。

Javascriptやブラウザに焦点を当てるべきではありません。理想的には、CPUにパッチを適用する必要があります。残念ながら、現在のバグの大部分では、これは可能ではないようです。 Debianは、他のすべてのOS提供者と共に、欠陥のないCPUを推奨する他の可能な唯一の方法を実行します。つまり、システムにCPUのバグの回避策を強制します。これらのパッチは問題を修正しません。代わりに、OSは、ユーザーがマシン上で実行するすべてのプログラム(つまり、ブラウザー)からできる限り最高にそれらを隠します。

この非表示は追加の計算作業であるため、システム全体のパフォーマンスは、そうでない場合よりも低くなります。どれだけ低いかは、おそらくそれらのプログラムが正確に何をするかに大きく依存します。

それを念頭に置いてあなたの質問に戻ってください:Debianシステムを保護するためにあなたができることはセキュリティ更新をインストールすることです。固有のCPUの欠陥にもかかわらず、Debianがこれらのバグに照らして可能な限りすべてを実行し、Debianを可能な限り安全に実行すると確信しています。

あらゆる種類の大企業がすでにこの問題に取り組んでおり、多数のハードウェアとLinuxの教祖も同様です。自分で何かをしようとしたり、一般的な努力を助けようとしたりするのを絶対に止めたくありません。ただし、自分のセキュリティとタイムリーな修正だけに関心がある場合は、より短時間でより良い解決策が見つかる可能性が高いので、これから自分で調べます。

5
user68856