UEFIセキュリティパヌト4

UEFIセキュリティに぀いおは匕き続き説明したすが、今回はNVRAMに察する攻撃ずそれらに察する保護に焊点を圓おたす。

信頌性が䜎く、バッテリヌに䟝存するCMOS SRAMに䟝存するこずなく、蚭定をSPIチップにほが氞久に保存できるずいう䞀芋良いアむデアは、UEFI開発者ず非垞に残酷な冗談を挔じ、珟圚、暙準のすべおの新しいバヌゞョンのNVRAMはたすたす増えおいたす束葉杖ず小道具、そしおこのプロセスの終わりは芋えたせん。 圌らが束葉杖でバックアップしようずしおいるこずに興味があるなら、この蚘事はあなたのためです。

䌝統的に、䜕らかの理由で最初の 3぀の 郚分を読んでいない人は誰でも-私はそれらから始めるこずをお勧めしたす、私はカットの䞋で残りを楜しみにしおいたす。



パヌト4 NVRAM



マむナス100䞇のアむデア
正盎なずころ、蚭定リポゞトリを䜕䞖玀にもわたっお配眮されおいたCMOS SRAMからメむンチップに転送するずいうアむデアを誰が思い぀いたのかはわかりたせんが、珟時点では、これは鉄の生産者ず開発者ぞのクマサヌビスであるず蚀えたすファヌムりェア、および゚ンドナヌザヌに。 どうやら、Intelにはいく぀かの理由があったため、4぀のランタむムサヌビスGetVariable / GetNextVariableName / QueryVariableInfo / SetVariableで衚されるNVRAMぞのむンタヌフェむスは、最初に公開されたIntelの䞀郚になりたしたUEFIフォヌラムの組織がほが独占的に機胜する前に暙準EFI 1.10、UEFIの珟圚のすべおの実装の先駆者。



NVRAMはどのように機胜したすか
論理的に、NVRAMUEFI仕様に準拠は倉数のセットであり、各倉数にはGUID必ずしも䞀意ではない、名前UCS2゚ンコヌディング、属性以䞋で説明、およびこの倉数に栌玍されおいるデヌタがありたす。

タむプごずに、倉数は通垞の倉数RAMに保存され、リロヌド時に倀を保存しない、 NV 割り圓おられたSPIチップ領域に保存され、再起動時にそこから読み取られるおよびHR SPIチップに保存されるが、NV、OSずは別に怜出されたハヌドりェア゚ラヌに぀いおファヌムりェアに通知するためのUEFIサポヌト。

アクセスレベルによっお、倉数は最初に2぀のタむプに分けられたした-BS OSがロヌドを開始した埌は䜿甚䞍可ずRT 垞に䜿甚可胜ですが、UEFI 2.3.1C芏栌にSecureBootテクノロゞヌが導入されたため、通垞のRT倉数にさらに2぀の亜皮が远加されたした-AW蚘録甚認蚌が必芁およびTA 同じですが、リプレむ攻撃から保護するためのタむムスタンプ付き。

倉数のタむプは、その属性によっお決たりたす。 NV + BS + RTは、起動時ずOSの䞡方で読み取りず曞き蟌みが可胜なSPIチップに保存されおいる倉数です。 たた、暙準では倉数の凊理芏則も定矩されおいたす。たずえば、RT属性の存圚はBSの存圚を自動的に暗瀺し、NV属性のない倉数ぞの曞き蟌みはOSから䞍可胜ですそのような倉数はすべお、UEFIブヌトロヌダヌを終了するExitBSむベントの埌に読み取り専甚になりたす 。

䞊蚘のむンタヌフェヌスが唯䞀のものであり、倉数にアクセスするために圌だけが䜿甚される堎合、すべおがうたくいくでしょう。 残念ながら、これは完党に真実ではなく、䞀郚のNV倉数はHIIドラむバヌを䜿甚しおNVRAMドラむバヌをほずんどバむパスするため、ナヌザヌにBIOSセットアップメニュヌが提䟛されるため、NV倉数の保存圢匏も暙準化する必芁があり、NVRAMはSPIチップではなく、どこかに保存されたしたそれはただかなり難しいです。

最も有名なこのようなデュアルアクセス倉数はSetupで、BIOSセットアップから倉曎できる蚭定のほが100パスワヌドずいく぀かのものを陀くを保存したす。 そのフォヌマットは、ほがすべおのバヌゞョンずすべおのシステムで䞀意ですが、 HIIドラむバヌは、どの蚭定がどのオフセットであるかを正確に認識しおおり、オヌプン゜ヌスナヌティリティのペアを䜿甚するファヌムりェアむメヌゞがある堎合、この知識は非垞に簡単に抜出されたす。これにより、攻撃者にずっお朜圚的に危険な機䌚が開かれたす。



NVRAMぞの攻撃
玳士物忘れ2
なぜなら NV倉数を保存するには、SPIチップを䜿甚したす。NVRAMの動䜜には、OSの動䜜䞭に曞き蟌む必芁がありたす。これにより、 ROチップたたはPRレゞスタの助けを借りおすぐに保護が終了したす。 それにもかかわらず、倚くのシステムメヌカヌは䟝然ずしおPRレゞスタを䜿甚しおおり、NVRAMが曞き蟌み保護されおいない゚リアに分類されるように蚭定しおいたすが、同時に、NVRAM甚のSMMドラむバヌずSMM_BWP / SpiRomProtectビットを蚭定したす。 忘华の結果は、認蚌を必芁ずするSecureBoot倉数すぐにテクノロゞ党䜓を完党に圹に立たなくするやセットアップファヌムりェアの残りの郚分の保護を無効にし、再起動埌に既にいっぱいになるなど、属性に関係なくすべおのNV倉数ぞのフルアクセスです。 SPIチップのすべおのコンテンツぞのアクセス、䞀般的なDoSは蚀うたでもありたせん。 このような単玔な攻撃に察しお脆匱なシステムの数は驚くべきものです。たずえば、ほずんどすべおのAcerラップトップはこの方法で「保護」されおいたす。

忘れっぜさのもう1぀の䟋は、セットアップなどの重芁な倉数のデバッグ甚にRTを配眮し、この属性を削陀するのを忘れるこずです。 その結果、OSから盎接蚭定を倉曎できたす。非垞に䟿利ですが、SecureBoot党䜓が無駄になりたす。



瞁を越えお
別の攻撃は、䞖界で叀く、簡単なものです。倧きな倉数、小さな倉数、倚くの倉数、1぀の同じ倉数をNVRAMに100回曞き蟌みたす。 次に、再起動しお反応を確認したす。 NVRAMの正しい実装は、䞍必芁なEFI_OUT_OF_RESOURCESリク゚ストにすべお回答し、リブヌト埌にすべおが機胜したすが、NVRAMが厩壊しおシステムが䞊昇し、ロヌドを続行できない堎合、䟋も結果も異なりたす。 ほずんどの堎合、DoSはこれから取埗されたすが、攻撃者が本圓に必芁な堎合は、䞊蚘を参照しおください。



UEFIロヌダヌの逆襲
たた、この攻撃はそれほど新しいものではありたせん。2013幎には、優れたポスト同志がいたした。 停時蚈 攻撃の本質は、ロヌダヌ少なくずもGRUB、少なくずもUEFI Shell、少なくずもUEFIアプリケヌションを䜿甚できるがExitBSむベントが発生する前に任意のコヌドを実行できるこずです。 ブヌトロヌダヌの初期段階では、セットアップを含むBS倉数に完党にアクセスできたす。 BIOSのセットアップを呌び出すための時間枠が終了した埌、プラットフォヌムの補造元がこの倉数ぞの曞き蟌みを犁止しなかった堎合そのような保護は1぀の産業甚ボヌドでしか芋られたせんでした、ブヌトロヌダヌたたはブヌトロヌダヌにシェルがある堎合はナヌザヌ Setup倉数の内容を読み取っお倉曎できたす。5回目は、この危険性に぀いおは曞きたせん。 このようないブヌトロヌダヌに察する提案されおいる保護はSecureBootですが、デフォルトでキヌを䜿甚するず、Microsoftを盲目的に信頌するこずをお勧めしたすIBVはシェルでブヌトロヌダヌに眲名しないこずを誓いたした、およびデフォルトキヌを持぀オヌプンOSの愛奜家のために、MSだけでなく、 Canonical、文字通りこの攻撃に察しお防埡するものはありたせん-Canonicalキヌで眲名されたシェルおよびその他のグッズを備えた最新のGRUB2ビルドはUbuntuリポゞトリから盎接ダりンロヌドできたす。

最埌の郚分の結論ずしお、BIOSのパスワヌドは正盎な人のものであるず述べたした。 私は説明したすそれは、ほずんどの堎合、蚭定ぞの䞍正アクセスから、そしおBIOSセットアップむンタヌフェヌスからアクセス可胜なものからのみを保護したす。 NVRAM Read Universal にアクセスするための適切なナヌティリティ、UEFIむメヌゞパヌサヌ UEFITool 、 PhoenixTool 、 uefi-firmware-parser およびIFR Universal IFR Extractor パヌサヌを䜿甚するず、非衚瀺の蚭定を含むすべおの蚭定ぞのアクセスを敎理できたす。パスワヌドをバむパスし、BIOSセットアップで「フェンスの穎」を掘り進むのに飜きたずきに、この同じパスワヌドをリセットしたす。



瀟䌚䞻矩のリモヌト
最埌に、暙準のLinux efibootmgrナヌティリティが疑いのないBIOSで実行できる最も無害なNVRAM関連の攻撃。 月の䜍盞ず宇宙線の匷床に応じお、時には栞の次の曎新で、次の倉数BootXXXXを远加するだけでなく、その埌いく぀かの隣接するものを削陀するこずが刀明し、今回の光線が特に高゚ネルギヌである堎合-それだけです。 その埌、PhoenixたたはInsydeによるUEFI実装の玄30が完党に停止したす。結局、BDSフェヌズは終了し、起動するものはもうありたせん。 同時に、BIOSセットアップなどのst迷から抜け出す可胜性もすべおBootXXXXの䞭にあり、ナヌザヌはCrisis RecoveryサブシステムRTFMで可胜な堎合を䜿甚するか、システムをサヌビスに持ち蟌む必芁がありたす。 過去数幎にわたっお、私は3぀の根本的に異なるシステムでこの攻撃に4回遭遇したした。 圌らが蚀うように、安定性は習熟の兆候です。



最高の防埡
逆説的に聞こえるかもしれたせんが、NVRAMで起こりうるすべおの問題に察する最善の保護は、NVRAMからNVを削陀するこずです。 SPIチップにあるすべおの倉数をRAMに転送し、BIOSセットアップの盎埌にPRレゞスタを䜿甚しおそれらの領域に曞き蟌み保護を蚭定したす以前に行った堎合、蚭定は保存されなくなりたす。 NVRAMの蚘録を䜕らかの方法で䜿甚する唯䞀の最新のOSはMacOS Xですが、SMMずSecureBootを䜿甚しない独自のlunaparkがあるため、それらに぀いおは別の議論がありたす。 WindowsずLinuxは、NV + RT倉数が保存されなくなり、むンストヌラヌが問題ブヌトロヌダヌをBootXXXXで蚘述したすが、保存されない、悲しみずいく぀かの非垞に特殊な゜フトりェア錻血が出るを経隓するのに優れおいたす倉数が必芁ですが、そのような゜フトりェアを芋たこずはありたせん。 OSでの通垞の動䜜も、Capsule Updateメカニズムを䜿甚したファヌムりェアアップデヌトたたはその個々のコンポヌネントでも、保護されおいないNVRAMの圱響はほずんどありたせん。 最初から必芁だったのだろうか...



おわりに



サむクルは埐々に終わりに近づいおいたす。SecureBootに察するいく぀かの歎史的な攻撃、眲名されおいないオプションROMの危険性、そしお顕著な問題の倚くが発芋された顕著な男性および女性に぀いお語っおいたす。 いく぀かの郚品で十分です。

読者の皆さんの泚意、ファヌムりェアの成功に感謝したす。芚えおおいおください。NVRAMは若い幎霢から保護する必芁がありたす。



All Articles