- 2018/01/05
- セキュリティ
プロセッサの脆弱性「Spectre」と「Meltdown」とは
Post by : Yonatan Striem-Amit
過去10年間に製造されたほぼすべてのCPUで、JavaScriptコードなども含めた様々なアプリケーションがカーネルメモリを読み出せる問題が確認されました。この脆弱性は、現代のCPUのハードウェアレベルで行われる最適化処理の脆弱性を突くものです。本件の発表時点では、この技術は主にIntelのプロセッサに対しての悪用が公開されていたものの、AMDおよびARMプロセッサに対しての利用も確認されています。
重要な点は、このバグはOSサービスを使用しないため、ソフトウェアレベルでの検出、対処が難しく、セキュリティソリューションによる保護ができないと思われます。
現代のコンピュータではコードは2つの領域に分かれて実行されます。1つはユーザーが日常的に実行するユーザーコードと、オペレーティングシステム自体を機能させる役割を持つカーネルコードです。カーネルはコンピュータの中の重要な処理やデータの管理を行う、非常に権限の強い領域です。
「Spectre」と「Meltdown」がどのように攻撃につながるか
ブラウザを含む通常のプログラムがカーネルメモリを参照できることで、保護されているはずのカーネルのデータが侵害されます。これにより、次の2種類の攻撃が可能になります。
- 情報漏えい – 権限のあるはずのないアプリケーションは、保護されているはずのカーネルのメモリを読み込み、機密情報を漏えいさせる可能性があります。 これには認証情報なども含まれます。
- さらなる攻撃のための踏み台としての悪用 – KASLRのような現代の防御メカニズムは、カーネルのメモリアドレスが機密として扱われることで、エクスプロイトしづらくしています。このバグにより攻撃者がカーネルメモリを読み取れるようになることで、カーネルベースへの攻撃がより容易となります。
この脅威を緩和する方法
主要なOSベンダーとクラウドプロバイダはすべて、オペレーティングシステム毎のパッチを提供しています。これらのパッチ(LinuxのKAISERとして知られている)は、カーネルとアプリケーションメモリをもう一段階分離します。このもう一段階の分離によって、この問題を悪用する手法として知られる殆どのエクスプロイトを防ぐことが可能です。アプリケーションはカーネルのメモリを読み取ることができなくなり、アプリケーションの観点からはカーネルのメモリ自体が存在していないものとされます。
引き換えに、ユーザーアプリケーションがカーネルとやり取りする際のパフォーマンスに影響が生じます(syscall)。この処理はアプリケーションのファイルの読み込みや、ネットワークとの通信、画面上の処理のたびに発生します。この修正により、CPUへの負荷次第でチップのパフォーマンスが5%から最大30%ほど低下する可能性があります。
いずれにせよ、このような重要なセキュリティパッチは可能な限りの早い適用が常に推奨されます。クラウドベンダーは、本件への対処のために再起動を伴うメンテナンス作業を行うことが想定されます。また、ブラウザベースの攻撃に最も晒される各エンドポイントマシンに対してもシステムのパッチの適用が強く推奨されます。
今後数日間で、コンピュータのハードウェアベンダーはファームウェアのアップデートのためのコードの提供を開始します。このファームウェアにはインテルからのパッチや、このバグの悪用を防ぐマイクロコードの変更が含まれます。マイクロコードとは、CPU自体を管理するためのCPUベンダーが提供しているコードを指します。これらのパッチについても、適用をお勧めします。
エンドポイント緩和対策
このエクスプロイトはJavaScriptでの実装が存在する可能性があり、ブラウザの保護が非常に重要になります。
Chromeユーザーは、このリンクの手順に従って、Googleの新しいベータ機能である「Strict site isolation (厳密なサイト分離)」を有効にする必要があります。
Firefoxのユーザーは提供されているアップデートをご確認ください。Mozillaは、これらのバグに付けられた名前である「Spectre」「Meltdown」ベースに基づくJavaScriptベースの攻撃への影響を軽減させるバージョンへのアップグレードを推奨しています。
また、できるだけ速やかに各OSベンダーからの重要なバグ修正(特にエンドポイントマシン上)を適用ください。
Windowsユーザーの方は、このページに記載されている指示と追加情報をお読みください。このマイクロソフトのパッチは多くのアンチウイルス製品と互換性がないため、ユーザーは利用しているアンチウイルスとそのパッチの互換性を確認する必要があります。詳細に関しましてはこのページを参照してください。
macOSについては、Appleよりこのバグに対応するパッチが提供されています。macOSを実行しているすべてのエンドポイントが最新のパッチで更新されていることを確認してください。
Linux、”Windows用のLinux”についても最新のセキュリティパッチをインストールしてください。
Cybereasonは「Spectre」「Meltdown」の脅威にどのように対応するか
この脆弱性は、アンチウイルス、次世代アンチウイルス、またはEDR製品によって検出、ブロックすることはほとんど不可能であり、攻撃者による侵入に利用される可能性があります。このような脆弱性に対する現実的な対応としては、環境内で発生している事象をリアルタイムで相関させ、侵入が行われた後に攻撃者がとる悪意のある振る舞いを検出することです。
Cybereasonは独自のアーキテクチャのハンティングエンジンでこれを行うことにより、本件のバグが悪用された攻撃からもお客様を保護します。
例えば、仮にこの脆弱性を利用して環境に侵入した攻撃者は、攻撃の最終的な目的を果たすために横展開やC&C通信、データの窃取などといった行動を取る必要があります。Cybereasonは侵入自体の検知が出来なくても、これらの振る舞いを検知、それに対して対処することで、侵入後の攻撃の展開を阻止することが可能です。
最後に、この脆弱性からの保護のため、全てのCybereasonのクラウドサーバーで該当のパッチが適用されております。
「次世代エンドポイント(EDR)のメリット」とは? Cybereasonの関連情報を公開中
CybereasonのEDR(Endpoint Detection and Response)プラットフォームが提供する7つのユニークな機能をご紹介するホワイトペーパーを公開しております。ぜひご活用ください。
https://www.cybereason.co.jp/product-documents/white-paper/1033/