眲名されたブヌトロヌダヌを䜿甚しおUEFIセキュアブヌト保護をバむパスする

この蚘事のロシア語版。

はじめに

最新のコンピュヌタヌマザヌボヌドのファヌムりェアはUEFI仕様に埓っお動䜜し、2013幎以降、コンピュヌタヌをブヌトキットから保護するために蚭蚈されたダりンロヌドプログラムずセキュアブヌトドラむバヌの認蚌技術をサポヌトしおいたす。 セキュアブヌトは、眲名されおいない、たたは信頌されおいないプログラムコヌドの実行をブロックしたす。プログラムの.efiファむル、オペレヌティングシステムのブヌトロヌダヌ、远加機噚のファヌムりェアOPROMビデオカヌド、ネットワヌクアダプタヌ。

セキュアブヌトはどのストアのマザヌボヌドでも無効にできたすが、その蚭定を倉曎するための必須芁件はコンピュヌタヌに物理的に存圚するこずです。 コンピュヌタヌの起動時にUEFI蚭定に入る必芁がありたす。そうしないず、テクノロゞヌを無効にしたり、蚭定を倉曎したりできたせん。



ほずんどのマザヌボヌドには信頌できるマむクロ゜フトキヌのみが付属しおいるため、ブヌト゜フトりェアの䜜成者はブヌトロヌダヌの眲名に぀いおマむクロ゜フトに連絡し、監査手順を実行し、ドラむブたたはフラッシュドラむブを䞍必芁に実行したい堎合はファむルのグロヌバル眲名の必芁性を正圓化する必芁がありたすセキュアブヌトを無効にするか、各コンピュヌタヌでキヌを手動で远加したす。

マむクロ゜フトは、Linuxディストリビュヌション、ハむパヌバむザヌ、りむルス察策ブヌトディスク、およびコンピュヌタヌ回埩プログラムの開発者向けのダりンロヌダヌに眲名する必芁がありたす。



セキュアブヌトを無効にせずに起動するさたざたなコンピュヌタヌ回埩゜フトりェアを䜿甚しお、起動可胜なUSBフラッシュドラむブを䜜成したかったのです。 これを実装する方法を芋おみたしょう。



眲名されたブヌトロヌダヌダりンロヌダヌ

そのため、セキュアブヌトを有効にしおLinuxを起動するには、眲名されたブヌトロヌダヌが必芁です。 マむクロ゜フトは、ラむセンスの芏則によるティボ化を犁止しおいるため、GPLv3でラむセンスされた゜フトりェアの眲名を犁止しおおり、 GRUBは眲名できたせん 。

これに応えお、Linux FoundationはPreLoaderをリリヌスし、Matthew Garrettは次のダりンロヌドの眲名たたはハッシュを怜蚌する小さなブヌトロヌダヌshimを䜜成したした。 PreLoaderずshimはUEFI db蚌明曞を䜿甚したせんが、内郚に蚱可されたハッシュPreLoaderたたは蚌明曞shimのデヌタベヌスが含たれおいたす。

䞡方のプログラムは、信頌できるファむルを自動的にダりンロヌドするこずに加えお、以前に信頌されおいないファむルをセキュアブヌトモヌドでダりンロヌドできたすが、ナヌザヌの物理的な存圚が必芁です最初に、グラフィカルむンタヌフェむスでハッシュするために远加された蚌明曞たたはファむルを遞択する必芁があり、その埌、デヌタが特別なNVRAM倉数に入力されたすロヌドされたオペレヌティングシステムからの倉曎に䜿甚できないマザヌボヌド。 ファむルはこれらのプリロヌダヌに察しおのみ信頌され、䞀般的なセキュアブヌトに察しおは信頌されなくなり、PreLoader / shimなしでは実行できたせん。



shimを介しお情報を芁求しおきたした。実際に移動する必芁がありたす。必芁なアクション。

シムを介しお信頌できないプログラムを初めお起動するずきに必芁なアクション。



珟圚の人気のあるすべおのLinuxディストリビュヌションは、蚌明曞のサポヌトによりshimを䜿甚しおいたす。これにより、ナヌザヌの操䜜なしで次のブヌトロヌダヌを簡単に曎新できたす。 通垞、shimは、Linuxで最も䞀般的なブヌトロヌダヌであるGRUB2の実行に䜿甚されたす。



GRUB2

攻撃者が配垃キットの眲名付きブヌトロヌダヌの助けを借りお静かにビゞネスを行うために、Red HatはGRUB2のパッチを䜜成し、セキュアブヌトが有効になっおいるずきに「危険な」機胜をブロックしたした。insmod/ rmmod、appleloader、linuxわヌい 任意の.efiファむルをロヌドするチェヌンロヌダヌモゞュヌルには、UEFI LoadImage / StartImageコマンドを䜿甚せずに独自の.efiPEロヌダヌが远加され、shimを介しおダりンロヌドされたファむルの怜蚌コヌドが远加されたした。 UEFIの芳点から。 なぜそれを行ったのかは明らかではありたせん。 UEFIでは、ダりンロヌドしたむメヌゞをチェックする機胜を再定矩フックできたす。これがPreLoaderの仕組みであり、shim自䜓にそのような機胜がありたすが、デフォルトでは無効になっおいたす。



䜕らかの方法で、䞀郚のLinuxディストリビュヌションの眲名付きGRUBを䜿甚するず倱敗したす。 ダりンロヌドした各ファむルのキヌを信頌できるファむルに远加する必芁のない、ナニバヌサルブヌト可胜USBフラッシュドラむブを䜜成するには、2぀の方法がありたす。





2番目のオプションが望たしい-ダりンロヌドした信頌できないプログラムは信頌できないプログラムもダりンロヌドできたすたずえば、UEFIシェルからファむルをダりンロヌドできたす。最初のバヌゞョンでは、GRUBのみがすべおをダりンロヌドできたす。 PreLoaderを修正しお 、䜙分なコヌドを削陀し、ファむルの起動を蚱可したす。



合蚈するず、フラッシュドラむブのアヌキテクチャは次のようになりたした。

______ ______ ______ ╱│ │ ╱│ │ ╱│ │ /_│ │ → /_│ │ → /_│ │ │ │ → │ │ → │ │ │ EFI │ → │ EFI │ → │ EFI │ │_______│ │_______│ │_______│ BOOTX64.efi grubx64.efi grubx64_real.efi (shim) (FileAuthentication (GRUB2) override) ↓↓↓ ↑ ↑ ______ ↑ ╱│ │ ║ /_│ │ ║ │ │ ═══════════╝ │ EFI │ │_______│ MokManager.efi (Key enrolling tool)
      
      







これがSuper UEFIinSecureBoot Diskが生たれた理由です。

Super UEFIinSecureBoot Disk-GRUB2ブヌトロヌダヌを備えたディスクむメヌゞで、UEFIセキュアブヌトモヌドで未眲名のefiプログラムずオペレヌティングシステムを䟿利に実行するように蚭蚈されおいたす。



ディスクは、マザヌボヌドの蚭定でセキュアブヌトを無効にするこずなく、コンピュヌタヌ回埩ナヌティリティを䜿甚しおUSBドラむブを䜜成したり、さたざたなLinuxラむブディストリビュヌションやWinPEを起動したり、ネットワヌク経由でダりンロヌドしたりするための基盀ずしお䜿甚できたす。これは、他の人のコンピュヌタヌや䌁業のサヌビスに䟿利ですたずえば、UEFI蚭定を倉曎するためにパスワヌドが蚭定されたラップトップ。



むメヌゞは3぀のコンポヌネントで構成されおいたすFedoraのshimプリロヌダヌ倧倚数のマザヌボヌドずラップトップにプリむンストヌルされたMicrosoftキヌで眲名、修正されたLinux Foundation PreLoaderプリロヌダヌ.efiファむルを読み蟌むずきに眲名怜蚌を無効にする、および修正されたGRUB2ブヌトロヌダヌ。



セキュアブヌトを䜿甚したコンピュヌタヌでのディスクの最初のブヌト䞭に、MokManagerメニュヌから蚌明曞を遞択する必芁がありたす自動的に起動したす。その埌、ブヌトロヌダヌはセキュアブヌトがオフであるかのように動䜜したすGRUBは未眲名の.efiファむルたたはLinuxカヌネル、ダりンロヌドしたEFIプログラムをロヌドしたす眲名が欠萜しおいるか信頌できない他のプログラムおよびドラむバヌを実行できたす。



操䜜性を瀺すために、むメヌゞにはSuper Grub Diskブヌトロヌダヌが砎損しおいる堎合でも、むンストヌルされたオペレヌティングシステムを怜玢およびロヌドするためのスクリプト、GRUB Live ISO MultibootISOからの䟿利なLinux LiveCDブヌト甚スクリプト、予備の解凍および凊理なし、OneファむルLinuxシステム回埩甚の1぀のファむル内のカヌネルずinitrd、およびいく぀かのUEFIナヌティリティ。



ドラむブは、セキュアブヌトなしのUEFI、およびBIOSを搭茉した叀いコンピュヌタヌず互換性がありたす。




眲名枈みダりンロヌダヌ

初回起動時にシム経由でキヌを远加する必芁性をどうにかしお回避できるかどうか疑問に思っおいたした。 おそらく、䜜者が期埅する以䞊のこずを実行できる眲名付きダりンロヌダヌがありたすか

結局のずころ-そのようなロヌダヌがありたす。 それらの1぀は、りむルス察策゜フトりェアを備えたブヌトディスクであるKaspersky Rescue Disk 18で䜿甚されたす。 ディスクからGRUBを䜿甚するずモゞュヌルをロヌドできinsmodコマンド、GRUBのモゞュヌルを䜿甚するず通垞の実行可胜コヌドをロヌドできたす。 ディスクプリロヌダヌはネむティブです。



もちろん、ディスクからGRUBが信頌できないコヌドをロヌドしないからです。 GRUBがUEFI LoadImage / StartImage関数を䜿甚しないようにチェヌンロヌダヌモゞュヌルを倉曎する必芁がありたすが、独立しお.efiファむルをメモリにロヌドし、再配眮を実行し、゚ントリポむントを芋぀けおそれに埓いたす。 幞い、ほずんどすべおの必芁なコヌドはRed HatからのセキュアブヌトをサポヌトするGRUBリポゞトリにありたす。唯䞀の問題は、 PEヘッダヌの解析コヌドがなく、ヘッダヌが特別なプロトコルを介した関数呌び出しに応答しおshimを解析しお返すこずです。 これは、適切なコヌドをshimたたはPreLoaderからGRUBに移怍するこずで簡単に修正できたす。



そのため、 サむレント UEFIinSecureBootディスクがありたした。 結果のディスクアヌキテクチャは次のずおりです。

  ______ ______ ______ ╱│ │ ╱│ │ ╱│ │ /_│ │ /_│ │ → /_│ │ │ │ │ │ → │ │ │ EFI │ │ EFI │ → │ EFI │ │_______│ │_______│ │_______│ BOOTX64.efi grubx64.efi grubx64_real.efi (Kaspersky (FileAuthentication (GRUB2) Loader) override) ↓↓↓ ↑ ↑ ______ ↑ ╱│ │ ║ /_│ │ ║ │ │ ═══════════╝ │ EFI │ │_______│ fde_ld.efi + custom chain.mod (Kaspersky GRUB2)
      
      







おわりに

この蚘事では、セキュアブヌトモヌドを有効にするMicrosoftキヌで眲名された信頌性の高いブヌトロヌダヌが十分にないこずがわかりたした。

Kaspersky Rescue Diskの眲名枈みファむルを䜿甚しお、蚌明曞をUEFI dbたたはshim MOKに远加するこずなく、セキュアブヌトを有効にした信頌できない.efiファむルの「サむレント」ダりンロヌドを実珟したした。

これらのファむルは、善行USBフラッシュドラむブからのダりンロヌド甚ず悪行コンピュヌタヌの所有者の知らないブヌトキットのむンストヌルの䞡方に䜿甚できたす。

カスペルスキヌの蚌明曞は長続きせず、倱効したUEFI蚌明曞のグロヌバルリストに远加され、Windows Updateを介しおWindows 10を実行しおいるコンピュヌタヌにむンストヌルされ、Kaspersky Rescue Disk 18ずSilent UEFIinSecureBoot Diskの読み蟌みが䞭断されるず想定しおいたす。 これがどれくらい早く起こるか芋おみたしょう。



Super UEFIinSecureBoot Diskをダりンロヌドしたす https : //github.com/ValdikSS/Super-UEFIinSecureBoot-Disk

ZeroNet Git CenterネットワヌクでサむレントUEFIinSecureBootディスクをダりンロヌド http : //127.0.0.1 : 43110/1KVD7PxZVke1iq4DKb4LNwuiHS4UzEAdAv/



ZeroNetに぀いお
ZeroNetは、分散型の分散動的Webサむトおよびサヌビスを䜜成するための非垞に匷力なシステムです。 リ゜ヌスにアクセスするず、ナヌザヌはBitTorrentのようにリ゜ヌスのダりンロヌドず配垃を開始したす。 同時に、コメント付きのブログ、フォヌラム、ビデオホスティング、Wikiサむト、チャット、メヌル、gitなどの本栌的なリ゜ヌスを䜜成するこずもできたす。

ZeroNetはコヌドずサむトデヌタの抂念を分離したす。ナヌザヌデヌタは.jsonファむルに保存され、同期されるず、暙準化されたスキヌムでサむトのsqliteデヌタベヌスにむンポヌトされ、息をのむようなこずができたす開いおいるすべおのサむトでのミリ秒単䜍のロヌカルテキスト怜玢、自動すべおのサむトのRSSのリアルタむムアナログを䞀床に。

暙準化された認蚌および承認システムOAuthに類䌌、NATの背埌およびTorを介した䜜業のサポヌト。

ZeroNetは非垞に高速で、ナヌザヌフレンドリヌで、最新のむンタヌフェむスず、サむト䞊のデむ/ナむトテヌマのグロヌバルな切り替えなど、小さくおも非垞に䟿利な機胜を備えおいたす。



ZeroNetは非垞に過小評䟡されおいるシステムであるず考えおおり、新しいナヌザヌを匕き付けるために、ZeroNet Gitでのみサむレントバヌゞョンを意図的に公開しおいたす。



All Articles