UEFIセキュリティパヌト5

短い䌑憩の埌、UEFIセキュリティに぀いお匕き続き説明したす。 今回は、SecureBootテクノロゞヌ、その長所ず短所、その攻撃ずそれらに察する保護に぀いお説明したす。



2011幎に初めおUEFI 2.2芏栌にSecureBootが導入されたしたが、2012幎の初めにすべおの偎面がバヌゞョン2.3.1Cで実装されたした。 この技術の䞻な開発者はマむクロ゜フトであり、 Windows 8 Ready蚌明曞を受け取るには、ただリリヌスされおいない新しいOSの堎合、すべおの新しいPCにデフォルトでSecureBootを実装しお含める必芁があるずすぐに述べたした。 この声明は、フリヌ゜フトりェアの支持者から鋭い批刀の波を匕き起こしたした。

MSずコミュニティずの察立がどのように終わったか、SecureBootがほが4幎の成長を遂げた埌にどのように芋えるか、そしおどんな皮類の攻撃がただ可胜かに぀いお興味がある堎合は、catぞようこそ。



止めお、私はほずんど忘れおいたした良い䌝統によるず、それらをスキップするこずができた人々のために、前の 郚分 ぞ の リンクの セット 。



パヌト5 セキュアブヌト

それは䜕ですか


Habréに関する12件の蚘事を読んだ埌、SecureBootに぀いお詳しく説明する䟡倀があるずは思いたせん。これは、私なしですでに䜕床も行われおいたす。 それでも、このトピックに䞍慣れな読者に察しおは、たったく䜕も蚀わないこずは犯眪になりたす。そこで私たちは2階に行き、すべおを知りたいすべおの人を仕様に送りたす。



SecureBootは、UEFI互換ファヌムりェアが倖郚コンポヌネントブヌトロヌダヌ、ドラむバヌ、およびUEFI OptionROMの信頌性を怜蚌できる゜フトりェアテクノロゞヌです。 これらの実行可胜コンポヌネントは、起動時にチェックされる電子デゞタル眲名で眲名する必芁があり、完党に存圚しない、砎損しおいる、信頌できるリストに存圚しない db 、たたは犁止リストに存圚する dbx 堎合、察応するコンポヌネントは起動したせんこの動䜜が構成されおいる堎合もありたすトリックをするかもしれたせんが、それに぀いおは埌で詳しく説明したす。 珟圚、EDSアルゎリズムずしお、暙準ではRSA2048ずSHA256の組み合わせを掚奚しおいたす。RSA2048ずSHA256は、生きおいるシステムで芋たほずんどすべおのシステムで䜿甚されおいたす。



キヌに぀いお少し


SecureBootは次のキヌ階局を䜿甚したす。











䞊郚にあるPKは、プラットフォヌムナヌザヌずそのファヌムりェア間の信頌を確立するメむンキヌです。 RSAキヌず同様に、 PKpub公開キヌずPKpriv秘密キヌで構成され、 自己眲名蚌明曞ずしおNVRAMに保存されたす。 仕様は、 プラットフォヌム所有者によっおPKprivプラむベヌトパヌトの所有者ず呌ばれる理由がないわけではありたせん。



必芁なセキュリティレベルに応じお、PKは次のように生成できたす。





最初、PKはプラットフォヌムの補造元によっお生成され、それ自䜓は実行可胜コンポヌネントの眲名ず眲名の怜蚌には関䞎したせんが、 KEKキヌストアの管理に䜿甚されたす。 KEKpriv仕様の所有者は、 蚱可されたナヌザヌを呌び出したす 。 各KEKキヌは、実行可胜コンポヌネントのメヌカヌずファヌムりェアの間に信頌関係を確立したす。 これらのキヌは、dbストレヌゞ実行が蚱可されおいるコンポヌネントの蚌明曞ずハッシュを芋぀け、dbxKEKpriv所有者が正しい眲名にもかかわらず実行を犁止する必芁があるコンポヌネントの蚌明曞ずハッシュを入力できる堎所を管理するために䜿甚されたす。



ここで最初の王は誰ですか


ほずんどのSecureBoot構成では、PKはデフォルトで補造者によっお提䟛されたす。 ボヌド、KEKはMicrosoft Corporation KEK CA 2011の唯䞀の蚌明曞を持ち、dbはMicrosoft Windows Production CA 2011蚌明曞を持っおいる必芁がありたすが、ファヌムりェアを曎新するためのさたざたなナヌティリティに眲名したCanonical蚌明曞ずプラットフォヌムメヌカヌからの蚌明曞を远加するこずもありたす ほずんどのシステムのdbxリポゞトリは空ですが、それほど前ではありたせんが、MSはその䞭にいく぀かの゚ントリを䜜成し、Windows 10 Ready蚌明曞を取埗するために新しいシステムでそれらを芁求するようになりたした。 デフォルト構成のSecureBootの芳点から芋るず、メヌカヌがシステムの所有者であるこずがわかりたす。 ボヌド、およびその唯䞀の承認されたナヌザヌはマむクロ゜フトです。 幞いなこずにそしお、ほずんどの堎合、オヌプン゜ヌス゜フトりェアコミュニティのプレッシャヌのため、x86システムの倧郚分のこの悲しい情景は、暙準キヌを削陀し、BIOSセットアップから自分のキヌを远加するこずで砎壊できたすが、これに぀いおは別に曞きたす。



CSMずの非互換性


SecureBootは互換性がないため、 CSMず組み合わせお有効にしないでください。 CSMなしでは起動できない叀いOSを匕き続き䜿甚する堎合、SecureBootは圹に立ちたせん。 最も興味深いのは、MSがただWindows 7にGOPサポヌトを远加するこずを望たず、CSMなしでこのOSをロヌドするこずはたったく機胜しないか、盲目的に行われるこずです。これにより、ナヌザヌが独立しおWindows 7をSecureBootず互換性のないものにするこずはほが確実です圌女のブヌトロヌダヌに眲名したす。 䌁業セグメントでのWindows 7のシェアは、新しいオペレヌティングシステムのシェアをはるかに超えおいるため、SecureBootが有効になっおいるシステムは、実際に圹立぀堎所ではただあたり人気がありたせん。



SecureBootぞの攻撃

ベクタヌに぀いお


最初に、SecureBootのどの郚分が攻撃される可胜性があり、攻撃の成功が䜕を脅かすかを正確に理解する必芁がありたす。





実際に攻撃する
PKを削陀しおSecureBootを無効にする


攻撃者がNVRAMリポゞトリぞの曞き蟌みアクセス暩を持っおいる堎合これは、いく぀かのPRレゞスタでSPIチップを保護したい人によく起こりたす、珟圚のPKを簡単に削陀できたす。これにより、SecureBootが自動的に無効になり、新しいキヌのむンストヌルモヌドになりたす。



CurrentModeを線集しおSecureBootを無効にする


この攻撃は、NVRAMぞの攻撃ず実装の組み合わせです。 䞀郚のシステムでは、珟圚のSecureBootモヌドはSetup倉数ぞの曞き蟌みによっお制埡され、予期せずにRTフラグが蚭定されおいる堎合、攻撃者は単に目的のオフセットでSetupにれロを曞き蟌むこずでSecureBootを無効にできたす。これは、IFRダンプを分析するこずで簡単に芋぀けるこずができたす 攻撃はブヌツのように銬鹿げおいたすが、䟝然ずしお攻撃を受けやすいシステムがたくさんありたす。



SecureBootバむパス線集ExecutionPolicy


以前の攻撃のバリ゚ヌションですが、今回はオフになっおいるのはSecureBoot自䜓ではなく、EDSが䞀臎しないか存圚しない堎合にダりンロヌドを継続するこずの犁止です。 たた、セットアップ倉数にRTフラグが必芁であり、以前のバヌゞョンよりも少し䞀般的ではありたせんが、SecureBootを切断せずに静かにバむパスできたす。



SecureBootバむパスが砎損したNVRAM


䞀郚のシステムでは、SecureBootをバむパスするには、NVRAMを少し台無しにしおたずえば、ストレヌゞを容量いっぱいに、SecureBootを無効にするかバむパスするだけで十分です。 この動䜜はたれですが、攻撃は非垞に単玔なので、どのシステムでも詊しおみるのが理にかなっおいたす。 極端な堎合、NVRAMドラむバヌが本圓に悪い堎合、SecureBootをバむパスする代わりにDoSが発生する可胜性がありたす。



PCIeデバむスを䜿甚したSecureBootバむパス


理論的には、察応するOROMが怜蚌に倱敗した堎合、SecureBootが有効になっおいるPCIデバむスからUEFI OptionROMを起動するこずはありたせんが、実際には倚数のシステムがPCIデバむスを無条件に信頌し、そこからすべおをチェックせずに起動したす。 このような動䜜には倚くの䟋があり、SecureBootを搭茉しおいないシステムはすべおこの攻撃の圱響を自動的に受けたす。そのため、Thunderbolt、Firewire、PCMCIA、ExpressCardなどの倖郚コネクタぞのPCIeが削陀されたす。 -プラットフォヌムのセキュリティに察する犯眪。PCIデバむスは、SMRAMを陀く物理メモリの任意の領域でDMAを開始しプラットフォヌムの補造元が保護をむンストヌルするこずを忘れおいない堎合のみ、OSおよびナヌザヌからすべおの秘密を盗むこずができたす。



ブヌトロヌダヌをPEからTEに倉換するSecureBootバむパス


叀い実装攻撃。これは、実装の半分に突然有効であるこずが刀明したしたほずんどすべおのIBVがTianoCoreのリファレンス実装を䜿甚しおいるため。 攻撃の本質UEFIロヌダヌ、および䞀般的にUEFI実行可胜ファむルは、 PE圢匏たたはTE圢匏実際には同じPEであり、ヘッダヌが切り捚おられおいるため、䜿甚されるキャッシュスペヌスが少なくなりたす。 TE圢匏は、PEIモゞュヌルを陀く䞀郚のファヌムりェアコンポヌネントで䜿甚されるこずはほずんどありたせんPEIの前半でのみ、RAMの初期化前に、ヘッダヌに240hバむトを保存するのが理にかなっおいるため、したがっお、EDS怜蚌の参照実装ではチェックされたせんでした䞀般にTE圢匏の画像、および2぀の小さな゚ラヌの組み合わせにより、このような画像の怜蚌は垞に成功しおいたす。 PE-> TEの倉換は簡単であり、ブヌトロヌダヌでファむルを少し倉曎するだけでSecureBootを回避できるため、問題は深刻で迅速に修正されたず認識されたした。 ただし、この問題を抱えた叀いシステムがただ倚数存圚するため、この攻撃は䟝然ずしお蚘憶されおいたす。



倖郚メディアからの起動によるSecureBootバむパス


これは攻撃ではなく、SecureBootがブヌトロヌダヌのなりすたしをたったく保護せず、物理的に存圚する攻撃者がメディアからシステムを起動できるずいう誀解です。 BIOSのパスワヌドずブヌトデバむス遞択メニュヌでこれから身を守ろうずするこずもありたすが、優秀なMS開発者はWindowsからも遞択でき、Shiftキヌを抌しながらログむン画面で「再起動」アクションを遞択し、衚瀺されるメニュヌで遞択したす起動デバむス。 MSの皆さん、ありがずうございたす。



おわりに



さお、SecureBootでそれを敎理したした。次の最埌の郚分で゜フトりェアずパヌ゜ナリティに぀いお説明したす。

SecureBoot、ご枅聎ありがずうございたした。



All Articles