ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π² Ubuntu Π·Π° заобикалянС Π½Π° UEFI Secure Boot ΠΎΡ‚ разстояниС

АндрСй Коновалов ΠΎΡ‚ Google ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π½Π°Ρ‡ΠΈΠ½ Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ разстояниС LockdownΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° ядрото Π½Π° Linux, доставСн с Ubuntu (Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈΠΌΠ°ΠΌ работят с ядрото Π½Π° Fedora ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ дистрибуции, Π½ΠΎ Ρ‚Π΅ Π½Π΅ са тСствани).

Π‘Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π½Π° root ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄ΠΎ ядрото ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π° UEFI Secure Boot заобикалящи ΠΏΡŠΡ‚ΠΈΡ‰Π°. НапримСр Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), някои интСрфСйси ACPI ΠΈ MSR рСгистри Π½Π° процСсора, повикванията към kexec_file ΠΈ kexec_load са Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ, ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към Ρ€Π΅ΠΆΠΈΠΌ Π½Π° заспиванС Π΅ Π·Π°Π±Ρ€Π°Π½Π΅Π½, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° DMA Π·Π° PCI устройства Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ACPI ΠΊΠΎΠ΄ ΠΎΡ‚ EFI ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π΅ Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΎ, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ с I / O ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ Π½Π΅ са Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ промяна Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ ΠΈ I/O ΠΏΠΎΡ€Ρ‚ Π·Π° сСрийния ΠΏΠΎΡ€Ρ‚.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ Lockdown наскоро бСшС Π΄ΠΎΠ±Π°Π²Π΅Π½ към ядрото Π½Π° Linux ядрото. 5.4, Π½ΠΎ всС ΠΎΡ‰Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅ ΠΈΠ»ΠΈ допълнСни с ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π² ядрата, доставяни с дистрибуции. Π•Π΄Π½Π° ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΠ±Π°Π²ΠΊΠΈΡ‚Π΅, прСдоставСни Π² дистрибуции, ΠΈ внСдряванСто, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ Π² ядрото, Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° прСдоставСното Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° физичСски Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмата.

Π’ Ubuntu ΠΈ Fedora ΠΊΠ»Π°Π²ΠΈΡˆΠ½Π°Ρ‚Π° комбинация Alt+SysRq+X Π΅ прСдоставСна Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Lockdown. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ Π΅, Ρ‡Π΅ комбинацията Alt+SysRq+X ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° само с физичСски Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ устройството ΠΈ Π² случай Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ Ρ…Π°ΠΊΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root Π΄ΠΎΡΡ‚ΡŠΠΏ, атакуващият няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Lockdown ΠΈ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° Π·Π°Ρ€Π΅Π΄ΠΈ нСподписан ΠΌΠΎΠ΄ΡƒΠ» с Ρ€ΡƒΡ‚ΠΊΠΈΡ‚ Π² ядрото.

АндрСй Коновалов ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° физичСското ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° потрСбитСля са Π½Π΅Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ. Най-лСсният Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ Lockdown Π±ΠΈ Π±ΠΈΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ симулация натисканС Π½Π° Alt+SysRq+X Ρ‡Ρ€Π΅Π· /dev/uinput, Π½ΠΎ Ρ‚Π°Π·ΠΈ опция Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ успяхмС Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΠ½Π΅ ΠΎΡ‰Π΅ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° замСстванС Π½Π° Alt + SysRq + X.

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° интСрфСйса "sysrq-trigger" - Π·Π° симулация Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ интСрфСйс, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ "1" Π² /proc/sys/kernel/sysrq ΠΈ слСд Ρ‚ΠΎΠ²Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ "x" Π² /proc/sysrq- ΡΠΏΡƒΡΡŠΠΊ. ΠŸΠΎΡΠΎΡ‡Π΅Π½Π° Π²Ρ€Π°Ρ‚ΠΈΡ‡ΠΊΠ° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½ Π² дСкСмврийската актуализация Π½Π° ядрото Π½Π° Ubuntu ΠΈ във Fedora 31. Врябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ Π² случая с /dev/uinput, ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π° Π΄Π°Π΄Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ Π“Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π°.

Вторият ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с Смулация Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° Ρ‡Ρ€Π΅Π· USB/IP ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° послСдоватСлността Alt+SysRq+X ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. USB/IP ядрото, доставСно с Ubuntu, Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ (CONFIG_USBIP_VHCI_HCD=m ΠΈ CONFIG_USBIP_CORE=m) ΠΈ осигурява Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎ подписанитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ usbip_core ΠΈ vhci_hcd, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. НападатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΎ USB устройство, стартиран ΠΌΡ€Π΅ΠΆΠΎΠ² ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° интСрфСйса Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ USB устройство Ρ‡Ρ€Π΅Π· USB/IP. Π—Π° посочСния ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½ΠΈ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Ubuntu, Π½ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ пусната корСкция.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€