Apple M1 Kernel の脆弱性 PACKMAN:ARM のポインタ認証を狙う攻撃が可能?

Design Weakness Discovered in Apple M1 Kernel Protections

2022/06/10 DarkReading — 今日、セキュリティ研究者たちは、Apple M1 プロセッサに対する、新しい攻撃の形態にについて詳細を発表した。それにより、メモリ破壊攻撃からオペレーティングシステム (OS) のカーネルを保護するための、重要なセキュリティ機能が危殆化するという。この、PACMAN と名付けられた概念実証 (PoC) 攻撃とは、ARM Pointer Authentication (ポインタ認証) を標的とするものであり、ソフトウェアのバグに対する最終防衛ラインとして用いられる、ハードウェア・プロセッサの問題を指す。それが適切に機能しないと、メモリ・ロケーションの内容が破壊され、走っているプログラムの実行フローが乗っ取られ、最終的にはシステムを完全に制御されるという。

この PACMAN に関する新たな論文の共同執筆者である、MIT CSAIL Ph.D. の学生 Joseph Ravichandran は、「ポインタ認証の背後にある考え方は、他のすべてが失敗した場合でも、攻撃者によるシステム制御を防ぐために、ポインタに頼れるというものだ。そして、最終防衛ラインとしてのポインタ認証が、これまで認識されていたほど、絶対的なものではないことが示された」と述べている。


昨年の秋にデビューした M1 Pro と M1 Max は、これまでに Apple が製造した中で、最も強力なチップとして賞賛され、その電力効率と性能だけではなく、M1 system-on-chip (SoC) アーキテクチャが提供するセキュリティも賞賛されてきた。

そして、ポインタ認証とは、ポインタが変更されていないことを証明する、暗号ハッシュでポインタを保護することで、メモリ内のポインタの整合性を保護する、ARM の機能のことである。このハッシュは、Pointer Authentication Code (PAC) と呼ばれ、プログラムが保護されたポインタを用いていることを、確認するために使用される。

したがって、間違った PAC が使われると、プログラムはクラッシュする。PAC のサイズは比較的小さいが、たとえばブルートフォース攻撃などが生じると、悪意の動作を検出するのに十分なクラッシュが引き起こされる。もちろん、プログラムを再起動すると、PAC がリフレッシュされるのは言うまでもない。

しかし、MIT CSAIL チームは、ハードウェア・サイドチャネル攻撃により、クラッシュの抑制しながら PAC 値に対するブルートフォースが可能であることを証明した。つまり、連鎖的な攻撃を開始して、最終的には制御フローのハイジャック攻撃を構築できることが示されたのだ。

この論文では説明されているのは、「PACMAN 攻撃における主要な洞察は、投機的実行攻撃を使用して、クラッシュを引き起こすことなく、マイクロ・アーキテクチャのサイドチャネルを介して、PAC 検証結果をこっそりと漏らせる」という点である。

この攻撃は、投機的実行空間を使用するため、痕跡を残さない。また、ハードウェア攻撃であるため、パッチを適用することも不可能だ。この研究は、ハードウェアの脆弱性と、低レベルのソフトウェア欠陥の連鎖により、攻撃者がカーネルで暴れまわれるだけの、十分な機会が提供されることを具体的に示している。

脆弱性研究のための新しいツール

MIT の教授であり、この論文の共同執筆者でもある Mengjia Yan によると、彼女のチームの研究は、なぜカーネルレベルのソフトウェアの脆弱性が、依然として開発者の懸念材料であるのかについて、洞察を提供するものだそうだ。

Mengjia Yan は、「それは、非常に長く続いている、このセキュリティ脅威モデルに対する新しい見方である。この新しくて複合的な脅威モデルの下では、十分に研究されていない、数多くの緩和メカニズムが存在するため、PACMAN 攻撃を出発点として考え始めている。私たちは、PACMAN が、コミュニティにおける研究の方向性に対して、新たな刺激となることを期待している」と述べている。

研究者たちは、自身の研究を発展させようとしている。MIT CSAIL チームは、Apple のチップを分析するための、2組のツールを公開しているが、それらはクローズド・ソースであり文書化されていない。

この論文には、「私たちは、これらのツールが、既存および将来の Apple Silicon デバイスの研究を促進し、コミュニティに対する制約が解除されることを期待している」と記載されており、このツールの利用が、pacmanattack.com で可能であると述べている。

たしか、Intel にも投機的実行に関連する、サイドチャネル攻撃の問題たあったはずだと思い出し、調べてみたら「サイドチャネル攻撃に対する脆弱性」とき資料がありました。日付も 2019年5月なので、記憶と一致しています。また、投機的実行については、IT 用語辞典に解説がありました。一言でいうと、データの先読みアーキテクチャと、それに関連する問題ということなのでしょう。厄介な問題であり、収束するまでの時間も掛かりそうですね。

%d bloggers like this: