数億個のAMDチップに「シンククローズ」の脆弱性、深刻な、事実上修復不可能な感染を引き起こす

数億個のAMDチップに「シンククローズ」の脆弱性、深刻な、事実上修復不可能な感染を引き起こす

コンピューターのファームウェアに存在するセキュリティ上の欠陥は、電源投入時に最初に読み込まれ、オペレーティングシステムの起動方法までも制御する根深いコードであり、長年にわたり、隠れた足掛かりを求めるハッカーの標的となってきました。しかし、こうした脆弱性が特定のコンピューターメーカーのファームウェアではなく、何億台ものPCやサーバーに搭載されているチップに現れることは稀です。今回、セキュリティ研究者たちは、AMDプロセッサーに数十年も存在し続けていたそのような欠陥を発見しました。この欠陥により、マルウェアがコンピューターのメモリの奥深くまで潜り込み、多くの場合、マシンを駆除するよりも廃棄する方が簡単になる可能性があります。

明日開催されるハッカーカンファレンス「Defcon」で、セキュリティ企業IOActiveの研究者であるエンリケ・ニシム氏とクリストフ・オクプスキ氏は、AMDチップに存在する「Sinkclose」と呼ばれる脆弱性について発表する予定です。この脆弱性により、ハッカーはAMDプロセッサの最も特権的なモードの一つであるシステム管理モード(ファームウェアの特定の保護された部分のみに使用できるように設計されている)で、独自のコードを実行できるようになります。IOActiveの研究者たちは、この脆弱性は2006年以降、あるいはそれ以前に製造されたほぼすべてのAMDチップに影響を与えると警告しています。

ニシム氏とオクプスキ氏は、ハッカーがこのバグを悪用するには、AMDベースのPCやサーバーに比較的深いレベルのアクセス権を既に取得している必要があるものの、Sinkcloseの脆弱性を利用すれば、さらに深くまで悪意のあるコードを埋め込むことができると指摘しています。実際、IOActiveの研究者たちは、脆弱なAMDチップを搭載したマシンであれば、攻撃者が「ブートキット」と呼ばれるマルウェアに感染させる可能性があると警告しています。このマルウェアはウイルス対策ツールを回避し、OSにも潜在的に見えない一方で、ハッカーがマシンを改ざんしたり、その活動を監視したりするための完全なアクセス権をハッカーに与える可能性があります。コンピューターメーカーがAMDのセキュリティ機能「プラットフォームセキュアブート」の実装方法に特定の欠陥があるシステム(研究者たちは、テストしたシステムの大部分にこの欠陥があると警告しています)の場合、Sinkcloseを介してインストールされたマルウェア感染の検出や修復はさらに困難になり、OSの再インストール後でも修復されない可能性があると彼らは述べています。

「国家レベルのハッカーや、システムに潜伏しようとする何者かを想像してみてください。たとえドライブを完全に消去したとしても、マルウェアは依然として存在し続けるでしょう」とオクプスキ氏は言う。「ほぼ検出不可能で、パッチ適用もほぼ不可能になるでしょう。」オクプスキ氏によると、コンピューターのケースを開け、SPIフラッシュプログラマーと呼ばれるハードウェアベースのプログラミングツールを使ってメモリチップの特定の部分に物理的に直接接続し、メモリを綿密に調査することによってのみ、マルウェアを除去できるという。

ニシム氏は、最悪のシナリオをより現実的な言葉で要約している。「基本的に、コンピューターを捨てなければなりません。」

WIREDが入手した声明の中で、AMDはIOActiveの調査結果を認め、研究者らの取り組みに感謝するとともに、「AMD EPYCデータセンター製品およびAMD Ryzen PC製品向けの緩和策をリリースしており、AMDの組み込み製品向けの緩和策も近日中にリリースする予定」だと述べた(この場合の「組み込み」という用語は、産業用デバイスや自動車などのシステムに搭載されているAMDチップを指す)。データセンターサーバー向けに設計されたEPYCプロセッサーについては、特に今年初めにパッチをリリースしたと同社は述べている。AMDは、Sinkclose脆弱性をどのように修正する予定か、また、どのデバイスをいつ修正する予定かについての質問には事前に回答しなかったが、影響を受ける製品の完全なリストは同社ウェブサイトのセキュリティ情報ページに掲載されていると述べた。

AMDはWIREDへの背景説明の中で、Sinkcloseの悪用がいかに困難であるかを強調した。「この脆弱性を悪用するには、ハッカーはコンピューターのカーネル、つまりオペレーティングシステムの中核に既にアクセスできている必要があります。AMDはSinkholeの手法を、銀行の貸金庫の警報装置、警備員、金庫室の扉を迂回して侵入する方法に例えています。」

ニシム氏とオクプスキ氏は、Sinkcloseを悪用するにはマシンへのカーネルレベルのアクセスが必要だが、WindowsとLinuxではほぼ毎月、同様の脆弱性が露呈していると反論する。彼らは、Sinkcloseを悪用するような、国家が支援する高度なハッカーは、既知か未知かを問わず、これらの脆弱性を悪用する技術を既に持っている可能性が高いと主張する。「これらのシステムすべてに対して、カーネルエクスプロイトは既に存在します」とニシム氏は言う。「それらは存在し、攻撃者が利用できる状態にあります。これが次のステップです。」

画像には、コンピューター、電子機器、ノートパソコン、デスク、家具、テーブル、大人、人物、コンピューターハードウェアなどが含まれている可能性があります。

IOActiveの研究員、クリストフ・オクプスキ氏(左)とエンリケ・ニシム氏。写真:ロジャー・キスビー

ニシム氏とオクプスキ氏のSinkclose技術は、AMDチップのあまり知られていない機能であるTCloseを悪用することで機能します(Sinkcloseという名称は、TCloseと、2015年にIntelチップで発見されたシステム管理モードの脆弱性であるSinkholeを組み合わせたものです)。AMDベースのマシンでは、TSegと呼ばれる安全装置が、システム管理モード用に予約されているメモリの保護領域(システム管理ランダムアクセスメモリ、SMRAM)への書き込みをコンピューターのオペレーティングシステムから防ぎます。しかし、AMDのTClose機能は、SMRAMと同じメモリアドレスを使用する古いデバイスとの互換性を維持できるように設計されており、有効にすると他のメモリをそれらのSMRAMアドレスに再マッピングします。 Nissim 氏と Okupski 氏は、オペレーティング システム レベルの権限のみを使用して、TClose 再マッピング機能を使用して SMM コードを騙して改ざんしたデータを取得させ、プロセッサをリダイレクトして、同じ高度な権限を持つ SMM レベルで独自のコードを実行できることを発見しました。

「これは私がこれまでに悪用した中で最も複雑なバグだと思います」とオクプスキ氏は語る。

プロセッサフ​​ァームウェアなど低レベルコードのセキュリティを専門とするニシム氏とオクプスキ氏は、AMDのアーキテクチャを初めて調査することにしたのは2年前だと話す。市場シェアが拡大しているにもかかわらず、Intelに比べて十分な精査が行われていないと感じたからだ。彼らはAMDのドキュメントを何度も読み返すだけで、Sinkcloseを可能にする重大なTCloseエッジケースを発見したという。「脆弱性が記載されたページを1000回くらい読んだと思います」とニシム氏は言う。「そして1001日目に気づきました」。彼らは昨年10月にAMDにこの欠陥を警告したが、AMDが修正プログラムを準備する時間を与えるために10か月近く待っていたという。

自らの保護を求めるユーザーにとって、ニシム氏とオクプスキ氏は、Windowsマシン(おそらく影響を受けるシステムの大多数)の場合、SinkcloseのパッチはコンピュータメーカーがMicrosoftと共有するアップデートに統合され、Microsoftが将来のOSアップデートに組み込むと予想していると述べています。サーバー、組み込みシステム、Linuxマシンのパッチは、より断片的で手作業になる可能性があり、Linuxマシンの場合は、コンピュータにインストールされているLinuxのディストリビューションに一部依存するでしょう。

ニシム氏とオクプスキ氏は、問題の修正に時間をかけるため、今後数ヶ月間はSinkcloseエクスプロイトの概念実証コードを公開しないことでAMDと合意したと述べています。しかし、AMDやその他の企業がSinkcloseをエクスプロイトが困難すぎると軽視しようとしたとしても、ユーザーができるだけ早くパッチを適用することを妨げるべきではないと彼らは主張しています。高度な技術を持つハッカーは既にその手法を発見しているかもしれませんし、ニシム氏とオクプスキ氏がDefconでその発見を発表した後には、その方法を見つけるかもしれません。

IOActiveの研究者たちは、Sinkcloseが比較的深いレベルのアクセスを必要とするとしても、それが提供する制御レベルははるかに高いため、潜在的な標的は利用可能な修正プログラムの適用を待つべきではないと警告している。「基盤が破られれば、システム全体のセキュリティが破られる」とニシム氏は言う。

2024 年 8 月 9 日午前 9 時 (東部標準時) 更新: この記事の公開後、AMD はセキュリティ情報ページを更新し、Sinkclose の影響を受けるチップのリストを追加しました。