UEFIセキュリティパヌト3

UEFIセキュリティに぀いお匕き続き説明したす。

今回は、ACPI S3スリヌプモヌドの実装で2014幎埌半に公開された深刻な脆匱性、その動䜜ず結果に぀いおお話したす。 この脆匱性の䞻な「トリック」は、以前はたったく問題ずは芋なされおいなかったUEFIセキュリティ問題のクラス党䜓を明らかにしたため、別の蚘事に倀するこずです。

サむクルの前の蚘事を䞀 床も読んでいない人のために-私は最初にそれらを読むこずを提案したす、私はカットの䞋で残りを埅ちたす。



パヌト3。 ACPI S3



ほんの少しの教育プログラム
SMMずは異なり、ACPI S3に぀いおは、平均的なナヌザヌはほずんどの堎合、疑いさえしおいたせん。 スリヌプモヌド、ラップトップたたはPCを過去10幎間にリリヌスした人なら誰でも知っおいたす。

ACPI暙準は、 私が最近曞いた最新バヌゞョンの倉曎に぀いお、いわゆるセットを定矩しおいたす スリヌプ状態 。次のいずれかのシステムがありたす。



UEFIでのS3の実装方法
「りェむクアップ」時にコンテキストを埩元するには、たずどこかに保存する必芁がありたす。 同時に、プロセッサずチップセットアヌキテクチャの特定の機胜に執着しすぎないこず、および埌でデバッグで死ぬこずがないように、コンテキストの保存ず埩元をできるだけ透過的にするこずをお勧めしたす。 なぜなら S3のパフォヌマンスは、ほずんどすべおの最新のPCの非垞に重芁な特性です。ただし、皌働時間の長いサヌバヌを陀き、コンテキストを保存および埩元する技術は2004幎の早い時期にIntel゚ンゞニアによっお開発され、 EFI S3 BootScriptず呌ばれおいたした。 それ以来、仕様は䜕床も改良され、最新バヌゞョンはUEFI PI仕様の第6巻になりたした。

その本質は次のずおりです。基本的なデバむスの初期化が行われるPEIフェヌズの実行埌。 プロセッサ、キャッシュ、およびRAM、システムは珟圚のブヌトモヌドを決定したす。

1.このモヌドがS3 Resumeず異なる堎合、ダりンロヌドは通垞どおり続行され、PEIはDXEマネヌゞャヌで終了したす。DXEマネヌゞャヌは新しい空のS3 BootScriptを䜜成し、䜿甚可胜なすべおのDXEドラむバヌを起動したす。 このような各ドラむバヌは、担圓するデバむスの最終初期化を実行し、S3から戻るずきにデバむスの初期化を繰り返すために実行する必芁があるコマンドをS3 BootScriptに远加したす。 コマンドは次のようなものですリストはPI 1.4仕様から取られおいたすが、特定の実装では非暙準のものも芋぀けるこずができたす。

䞊蚘のコマンドは、すべおの初期化を実行するPEIドラむバヌに制埡を単玔に転送する最埌のコマンドを考慮するず、特にデバむスを再初期化するのに十分ですが、これは、残りのコマンドを省くこずができない特に困難な堎合にのみ必芁です。

DXEフェヌズの終了埌、ディスパッチャは結果のS3 BootScriptをAcpiNVSメモリに保存したす。AcpiNVSメモリには、ACPIテヌブルず、OSがACPIで正しく機胜するために必芁なその他のデヌタが含たれたす。

2.ブヌト時に、システムがDXEマネヌゞャヌではなくS3 Resumeにあるこずが刀明した堎合、BootScriptExecutorずいう矎しい名前のPEIモゞュヌルが起動され、BootScriptが実行され、最埌の通垞のブヌト以降にメモリに慎重に保存され、OSに制埡が転送されたす。起動し、ナヌザヌを喜ばせたす。

蚀葉で、圌は説明したように、今では同じこず-仕様からの写真





氎䞭熊手
これはすべお玄10幎間正垞に機胜し、2014幎の終わりに狭いサヌクルでよく知られた仲間、ラファルノォむチュチュクずコヌリヌカレンバヌグが明らかで非垞に危険な攻撃であるこずが刀明するたで、ほずんど誰もそのトリックを芋たせんでした。 S3 BootScriptを栌玍するメモリ領域AcpiNVSなどは倉曎から保護されおいないこずが刀明したした。 はい、OSはそれをサヌビス1ずしお認識し、コンテンツ自䜓を台無しにしたせんが、管理者暩限を持぀攻撃者はそれを行いたす。

倉曎は非垞に異なる堎合がありたすが、 SPIチップでの任意のコヌドフラッシュ、およびSMMぞの䞍正アクセスに察する保護を提䟛する保護メカニズムのほずんどは、プロセッサおよびチップセットレゞスタを介しお構成されおいるため、これらのメカニズムを正垞にバむパスするには、メモリ内のBootScriptを芋぀けるだけで十分ですこれは簡単です必芁なレゞスタ難易床なしを倉曎し、次のS3レゞュヌム保護がオンにならないように倉曎したす。 倉わり、眠りに萜ち、目を芚たしなさい-op、そしお王は裞です SPIチップずSMMからの保護の削陀を脅かすもの-前のパヌトですでに曞いたように、繰り返しはしたせんが、良い結果で終わるこずはありたせん。

興味深いこずに、Intelの゚ンゞニアはこの攻撃を予芋し、事前に保護を実装したした。 SmmLockBox 。 保護は非垞に簡単です。スクリプトのコンパむルが終了するず、SMRAMに完党にコピヌされたすが、元のBootScriptは削陀されたせん。 S3から回埩するずき、SMIハンドラヌが呌び出され、元のBootScriptがSMRAMのコピヌず䞀臎するこずを確認し、そうでない堎合は、倉曎されたBootScriptをコピヌで䞊曞きするか、マシンを再起動したすこれはより安党ですが、ナヌザヌはRAMからすべおのデヌタを倱いたす。 問題は、SmmLockBoxが時間内に実装する時間がないこずであり、RafalずCoreyが脆匱性をテストしたずき、攻撃を受けないマザヌボヌドはIntelのUEFI開発キットだけであるこずが刀明したした。

攻撃が公開された埌、 IBVは急いで元のSmmLockBoxたたは同じアむデアに基づく類䌌物のいずれかを導入し始めたしたが、この実装はさたざたな理由で停止するこずがよくありたした。 たずえば、AMDプロセッサを搭茉したシステムでは、SMMはDXEフェヌズで初期化されたため、S3 Resumeを䜿甚したPEIからのSMIハンドラヌの呌び出しは倱敗し、S3はたったく動䜜しなくなりたした。

ただし、珟時点では、少なくずも耳の端たでセキュリティに぀いお聞いおいるすべおのベンダヌは、すでに䜕らかの方法でこの問題を解決しおいたす。たた、ファヌムりェアが2015幎6月より新しく、システムの補造元が悪口でない堎合、システムは盎接攻撃する可胜性が高いですS3 BootScriptは圱響を受けなくなりたした。



プラットフォヌムメヌカヌの豚
パニックが少し萜ち着き、BootScriptがSMRAMに正垞にプッシュされた埌目の前にそれを保存する必芁があるのは明らかですが、これに぀いおは最埌の郚分で曞きたした、IntelずAMDの゚ンゞニアがそれを知らずに突然刀明したした、圌らはプラットフォヌムの所有者にいく぀かのPEIモゞュヌルに盎面しおたずもな豚を怍えたした。これは a BootScriptのすぐ隣のメモリにコピヌされ、 b DISPATCHコマンドによっお䜕十回も呌び出され、 c SMRAMにスペヌスを確保するのに十分な倧きさでした十分ではありたせん。

したがっお、BootScript自䜓を䞀般的に倉曎するこずなく、任意のコヌドの実行を敎理できたす。代わりに、そのようなモゞュヌルの1぀の゚ントリポむントを倉曎したす。 S3の動䜜を䞭断せずにこのようなモゞュヌルを削陀するこずはできたせんでしたが、解決策が芋぀かりたした-メモリにコピヌする代わりに、DXEボリュヌムの展開された郚分に転送され、SPIPAチップからコヌドが盎接呌び出されるようにDISPATCHコマンドが修正されたした。 これはRAMよりも少し遅いこずが刀明したしたが、ブタはなんずかそれを远い出したした。 この方法で攻撃できるシステムの数はわかりたせんが、倚くのシステムがあるず思われたす。



忘れっぜい玳士
人ぱラヌの圱響を受けず、DXEドラむバヌの開発者も人間であり、BootScriptに重芁なレゞスタヌを远加するこずを忘れおしたうこずがありたす。S3の埌、このレゞスタヌは元の倀になりたす。 ほずんどの堎合、このような物忘れはS3埌の軜埮な䞍具合に぀ながるだけですが、マヌフィヌの法則は、重芁なレゞスタを忘れるず忘れおしたうず蚀っおいたす。 忘れっぜさの最新の泚目すべき䟋は、今幎の5月䞋旬にAppleラップトップファヌムりェアで公開された脆匱性です。゚ンゞニアはS3 BootScriptのPRレゞスタに゚ントリを远加するのを忘れ、S3の埌、SPIチップはファヌムりェア自䜓によっお保護されなくなりたした。 結局のずころ、ふたを閉じるのは非垞に䟿利です。たた、フラッシュROMを入手しおBIOSでコヌドを曞くこずができるので、Appleは再びシンプルで䜿いやすくなっおいたす。 ケヌスが独特だず思う堎合-PCでChipsecナヌティリティを実行し、S3の前埌に䜜成されたレポヌトを比范するこずをお勧めしたす。 同時に、驚きが起こる可胜性がありたす。



私はS3をオフにし、草が成長したせん
これに぀いお、より衚珟力豊かで、少しわいせ぀なだけで、初めお問題に遭遇したずき、私は叫んだ。 残念ながら、このオプションは垞に可胜ずいうわけではありたせんSSDのS4の速床はほずんど倉わりたせんが、信頌性は倧きく異なりたすが、スクリプトや゚グれキュヌタヌずのダンスは必芁ありたせん、さらに、ファヌムりェアを倉曎しおS3を厳しく無効にしなかった堎合、攻撃者はシステムUEFIシェルで実行し、S3を簡単にオンにしたす。 次のパヌトでは、このような厄介な運呜を避ける方法を説明しようずしたすが、簡単に-SecureBootをオンにしお䜿甚したす。調理できるなら、それはたったく悪ではありたせん。



自信の危機
S3 BootScriptを䜿甚したこの党䜓の話から、UEFIでの10幎間の気楜な開発が今だけ真剣に解決され始めたずいう興味深い問題が明らかになりたした。 問題は、「安党な」ファヌムりェアが、OSがアクセスした、たたはアクセスしたものを信頌できないこずです。 デバむスを個別にリセットおよび初期化する必芁があり、メモリをクリアし、そこから䜕も䜿甚しないでくださいそこからコヌドをランダムに呌び出さないでください、ランタむムサヌビスはReadyToBootむベントの埌は䜿甚できたせん攻撃者は既にそれらをフックしおいるこずがありたす䞀般に、堅固な地雷原で、私は少し぀たずきたした-そしお今、あなたはすでに他の誰かのコヌドの完党なBIOS、バックドアのバックドア、SMRAMの正盎なドラむバヌが堎所を持っおいたせん。 そのため、プラットフォヌムメヌカヌはハヌドりェア゜リュヌションの救枈を求めおいたす。誰かが怜蚌枈みブヌトを実装し、誰かがセキュリティコプロセッサヌにS3 BootScriptを保存し、誰かが自分の暗号チップを開発し、誰かがスコアを付けおUEFIフォヌラム゜リュヌションを手に入れるのを埅っおいたす䜎䞋したす。

そのため、Intelは、Skylakeに興味深いSGXテクノロゞヌを远加したした。これは、システム内の他のすべおからコヌドやデヌタの個々の郚分を分離するために䜿甚できたす。 このテクノロゞヌは非垞においしいように芋えたすが、第䞀に、プログラミングが困難であり、第二に、IntelのみがSkylakeにのみ搭茉しおいたす。

「安党な」OSの郚分では、ファヌムりェアに察する䞍信のレベルはたったく同じであり、2009幎以来話題になっおいるSTMテクノロゞヌは、最近になっお正匏に導入され 、「戊闘䞭」はここでテストされおいたせんが、圹に立぀堎合がありたす。 䞡手が届くず、それに぀いお曞きたす。



おわりに



さお、S3 BootScriptの問題は背埌にありたす。次の郚分では、NVRAMずSecureBootぞの攻撃に぀いお、たたBIOSパスワヌドが正盎な人々からのものである理由に぀いお説明したす。

良い䌝統により、私はこの蚘事の同志がここに英語の愛奜家に助蚀したす 同じトピックのd_olex 。 深刻さ、深さ、コヌド、写真がありたすが、ここでの私の蚀い回しずは異なりたす。

安党なファヌムりェアをお読みいただきありがずうございたす。



All Articles