Cisco Talos では、ほぼすべてのコンピュータで使用されている、Intel、AMD、Qualcomm、ARM プロセッサに影響する 3 つの新しい脆弱性を認識しています。現在、この問題に関する調査は進行中であり、これらの脆弱性のエクスプロイトはまだ確認されていませんが、それはまだ発生していないという意味ではありません。Talos では、これらの脆弱性の存在を実証するために開発された、エクスプロイト コードが公開されていることを確認しています。
これらの問題には、次の CVE エントリが割り当てられています。
Meltdown:攻撃者はユーザ スペースからカーネル メモリにアクセスできます。
- データ キャッシュの不正な読み取り(CVE-2017-5754)
Spectre:攻撃者は、他のユーザが実行中のプログラムからメモリの内容を読み取ることができます。
- 分岐先のインジェクション(CVE-2017-5715)
- 境界チェックのバイパス(CVE-2017-5753)
これらの問題には、サイド チャネル攻撃とキャッシュ攻撃が含まれ、攻撃者は通常はアクセスできないメモリ スペースから機密情報を盗むことができるようになります。Google Project Zero では、これらの脆弱性に関する技術詳細を説明したブログを公開しています。攻撃シナリオの例は、攻撃者が別のプロセスのメモリ スペースからクレデンシャルを盗むことです。これらの脆弱性がエクスプロイトされるためには、2 つの条件を満たす必要があります。
- ターゲットとなるデバイスで、影響を受ける Intel、AMD、Qualcomm、または ARM プロセッサを使用している(過去 10 年以上のプロセッサのほとんどが「脆弱」のカテゴリに分類されます)。
- 攻撃者は、デバイス上で独自のコード(JavaScript を含む)を実行できる。脆弱性に応じて、そのコードは特権のないコードとして実行される場合と、(「root」や「SYSTEM」などの)特権コードとして実行される場合がある。
攻撃者がこれらの脆弱性の利用を試みることが可能なシナリオは 3 つあります。
- 仮想化されたホスティング環境に対して攻撃を開始するために Spectre を使用する。ゲスト内からホスト メモリを読み取ることが可能になれば、攻撃者はホスト OS にアクセスできるようになります。この種の攻撃シナリオは、主に Amazon、Azure、Google などのクラウド ホスティング プロバイダーに影響します。このようなプロバイダーは、顧客がこれらの脆弱性の影響を受けないようにするために尽力しています。詳細は、個々のホスティング プロバイダーにお問い合わせください。このシナリオでこれらの脆弱性のエクスプロイトが成功すると、些細な問題とは到底言えないような状況に陥ります。
- Spectre は影響を受けるデバイスの Web ブラウザ内からアクセスできるため、悪意のある Web サイトが他のブラウザ タブから任意のデータを読み取れるようになる。Mozilla はこの問題をこちらのブログで認めています。これにより、リモートの攻撃者が他のアクティブなセッションのセッション データや Cookie データなどの機密情報を取得できるようになる場合があります。この種の攻撃は、特定の条件下でのみ機能する可能性が高いことに注意してください。この攻撃でデータを盗むために必要なコードを実行するには、攻撃者がユーザを信じ込ませて、悪意のある Web サイトを訪問させることも必要です。
- Meltdown によって、攻撃者が他の脆弱性をより簡単にエクスプロイトできるようになる。Meltdown は、カーネル アドレス空間配置のランダム化(KASLR)を無効にすることができます。つまり、以前は KASLR のためにエクスプロイトできなかった脆弱性が、Meltdown と連結した場合はエクスプロイトできる可能性があるということです。この可能性は、攻撃者が利用を試みている脆弱性に特有のものですが、攻撃者の観点からは、エクスプロイトを作成しているときに直面する障害や問題の一部が回避されることになります。
あらゆる脆弱性と同様に、攻撃者がこれらの脆弱性をエクスプロイトできないようにするには、公開されたパッチを適用することが重要なステップです。Microsoft、Linux、Apple では、Meltdown 用のパッチをリリースしています。影響を受けるその他の製品については、こちらの一覧をご覧ください。Microsoft のパッチを適用すると、システム上で実行されている既存のセキュリティ ソフトウェアとの互換性に問題が生じる場合があります。Microsoft が提供する PowerShell モジュールを使用して、パッチの状態を確認することができます。影響を受けるシスコ デバイスについては、PSIRT のアドバイザリを参照してください。Spectre については、現在利用可能なパッチはありません。Spectre 用のオペレーティング システムのパッチが利用可能になったら、できるだけ早くシステムに適用することをお勧めします。
あらゆる攻撃と同様に、可能な限り常に最初の感染源をブロックすることが重要です。影響を受けるシステムで攻撃者がコードを実行できない限り、いずれの脆弱性も利用されることがないからです。
最初の感染源をブロックする方法の例をいくつか示します。
- 広告ブロックとスクリプトを無効にするソフトウェアを使用すると、JavaScript ベースのブラウザ攻撃のリスクを最小限に抑えることができます。
- Cisco Umbrella を使用して、これらの脆弱性を狙った攻撃が開始される可能性のある、既知の悪意のあるサイトへのアクセスをブロックできます。
- Web セキュリティ アプライアンス(WSA)を使用して、既知の悪意のあるサイトへのアクセスをブロックできます。
- FirePower NGFW を使用して、これらの脆弱性を利用したネットワーク ベースの攻撃をブロックできます。
- AMP for Endpoints および AMP for Networks を使用して、これらの脆弱性を利用するマルウェアをシステムに感染させるために使用できる既知の Dropper をブロックできます。
- AMP のエクスプロイト防止エンジンは、Meltdown または Spectre のメモリ読み取りが成功した後に使用される、コードの実行を実現するために必要な複数の手法に対応しています。
カバレッジ
Snort SID:45357-45368
AMP の互換性に関する文書は、こちらをご覧ください。AMP のエクスプロイト防止エンジンに関する文書は、こちらをご覧ください。
これらのシグネチャは、Spectre および Meltdown のホワイトペーパーに記載されている特定の PoC とサンプル コードをカバーしています。これらのシグネチャはバリアントを検出する可能性がありますが、すべてのケースに対応するわけではありません。影響を受ける組織には、このクラスの攻撃から保護するために、今後も OS とファームウェアのパッチをインストールすることをお勧めします。Talos では引き続き状況を監視し、最新情報が入手でき次第すぐに提供いたします。
本稿は 2018年1月8日に Talos Group のブログに投稿された「Meltdown and Spectre」の抄訳です。