Googleのアンドレイ・コノバロフ リモートで保護を無効にする方法 カーネルパッケージで提供されます Linux供給元 Ubuntu (理論的に提案された方法) Fedora および他のディストリビューションのカーネルで動作しますが、テストされていません)。
ロックダウンは、root ユーザーのカーネルへのアクセスを制限し、UEFI セキュア ブート バイパス パスをブロックします。 たとえば、ロックダウン モードでは、/dev/mem、/dev/kmem、/dev/port、/proc/kcore、debugfs、kprobes デバッグ モード、mmiotrace、tracefs、BPF、PCMCIA CIS (カード情報構造) などにアクセスします。インターフェイスは制限されています CPU の ACPI および MSR レジスタ、kexec_file および kexec_load への呼び出しはブロックされます、スリープ モードは禁止されています、PCI デバイスの DMA 使用は制限されています、EFI 変数からの ACPI コードのインポートは禁止されています、I/O ポートによる操作は禁止されていますシリアルポートの割り込み番号と I/O ポートの変更を含む、許可されます。
ロックダウン機構は最近、コアカーネルに追加されました。 Linux ですが、ディストリビューションで提供されるカーネルでは、依然としてパッチの形で実装されるか、パッチで補足されます。 配布キットで提供されるアドオンとカーネルに組み込まれた実装の違いの XNUMX つは、システムに物理的にアクセスできる場合に、提供されているロックを無効にできる機能です。
В Ubuntu Fedoraでは、Alt+SysRq+Xキーの組み合わせでLockdownを無効にします。このキーの組み合わせは、デバイスに物理的にアクセスできる場合にのみ使用することを想定しています。リモートハッキングやrootアクセスが発生した場合、攻撃者はLockdownを無効にできず、例えば署名されていないルートキットモジュールをカーネルにロードすることはできません。
アンドレイ・コノバロフは、ユーザーの物理的な存在を確認するためのキーボードベースの方法は効果がないことを示しました。 ロックダウンを無効にする最も簡単な方法は、プログラムで次のことを行うことです。 /dev/uinput 経由で Alt+SysRq+X を押しますが、このオプションは最初はブロックされています。 同時に、Alt+SysRq+X の置換方法を少なくとも XNUMX つ特定することができました。
最初の方法では、「sysrq-trigger」インターフェイスを使用します。これをシミュレートするには、/proc/sys/kernel/sysrq に「1」を書き込んでこのインターフェイスを有効にし、次に /proc/sysrq-trigger に「x」を書き込みます。 その抜け穴 12月のカーネルアップデートで Ubuntu Fedora 31 では、/dev/uinput の場合と同様に、開発者が当初は このメソッドをブロックしますが、次の理由でブロックが機能しませんでした。 コードで。
XNUMX 番目の方法では、キーボード エミュレーションを使用します。 そして、仮想キーボードから Alt+SysRq+X シーケンスを送信します。 Ubuntu USB/IPカーネルはデフォルトで有効になっており(CONFIG_USBIP_VHCI_HCD=mおよびCONFIG_USBIP_CORE=m)、動作に必要なデジタル署名されたusbip_coreおよびvhci_hcdモジュールが提供されています。攻撃者は 仮想USBデバイス、 ループバック インターフェイス上のネットワーク ハンドラーを設定し、USB/IP を使用してリモート USB デバイスとして接続します。 指定方法について 開発者向け Ubuntuしかし、修正プログラムはまだリリースされていません。
出所: オープンネット.ru
