Выпуск модуля LKRG 0.9.0 для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ эксплуатации уязвимостСй Π² ядрС Linux

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Openwall ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» выпуск модуля ядра LKRG 0.9.0 (Linux Kernel Runtime Guard), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для выявлСния ΠΈ блокирования Π°Ρ‚Π°ΠΊ ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ цСлостности структур ядра. НапримСр, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ нСсанкционированного внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ядро ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ измСнСния ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ примСнСния эксплоитов). ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ эксплоитов ΡƒΠΆΠ΅ извСстных уязвимостСй ядра Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ситуациях ΠΊΠΎΠ³Π΄Π° Π² систСмС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ядро), Ρ‚Π°ΠΊ ΠΈ для противостояния эксплоитам для Π΅Ρ‰Ρ‘ нСизвСстных уязвимостСй. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2.

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ядрами Linux с 5.8 ΠΏΠΎ 5.12, Π° Ρ‚Π°ΠΊΠΆΠ΅ со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ядрами 5.4.87 ΠΈ Π½ΠΎΠ²Π΅Π΅ (Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ нововвСдСния ΠΈΠ· ядСр 5.8 ΠΈ Π½ΠΎΠ²Π΅Π΅) ΠΈ с ядрами ΠΈΠ· вСрсий RHEL Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 8.4, с сохранСниСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ всСх Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… вСрсий ядСр, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ядра ΠΈΠ· RHEL 7;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки LKRG Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ внСшнСго модуля, Π½ΠΎ ΠΈ Π² составС Π΄Π΅Ρ€Π΅Π²Π° ядра Linux, Π² Ρ‚ΠΎΠΌ числС Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΎΠ±Ρ€Π°Π· ядра;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ядра ΠΈ систСмы;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ нСсколько сущСствСнных ошибок ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² LKRG;
  • БущСствСнно ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π° рСализация Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² LKRG;
  • ВнСсСны измСнСния для упрощСния дальнСйшСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ LKRG;
  • Для тСстирования LKRG, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° интСграция с out-of-tree ΠΈ mkosi;
  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° пСрСнСсСн с BitBucket Π½Π° GitHub ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° нСпрСрывная интСграция с использованиСм GitHub Actions ΠΈ mkosi, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сборки ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ LKRG Π² ядра Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Ubuntu, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² прСдоставляСмыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ubuntu Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ сборки ΡΠ²Π΅ΠΆΠ°ΠΉΡˆΠΈΡ… mainline-ядСр.

Π’ Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ LKRG нСпосрСдствСнный Π²ΠΊΠ»Π°Π΄ (Ρ‡Π΅Ρ€Π΅Π· pull requests Π½Π° GitHub) внСсло нСсколько Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π²ΡˆΠΈΡ… участиС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π’ частности, Ρ‚Π°ΠΊ Борисом Π›ΡƒΠΊΠ°ΡˆΠ΅Π²Ρ‹ΠΌ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки Π² составС Π΄Π΅Ρ€Π΅Π²Π° ядра Linux, Π° Π’ΠΈΡ‚Π°Π»ΠΈΠ΅ΠΌ Π§ΠΈΠΊΡƒΠ½ΠΎΠ²Ρ‹ΠΌ ΠΈΠ· ALT Linux — интСграция с mkosi ΠΈ GitHub Actions.

Π’ Ρ†Π΅Π»ΠΎΠΌ, нСсмотря Π½Π° сущСствСнныС дополнСния, количСство строк ΠΊΠΎΠ΄Π° LKRG Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сокращаСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· подряд (Ρ€Π°Π½Π΅Π΅ ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями 0.8 ΠΈ 0.8.1).

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΠ°ΠΊΠ΅Ρ‚ с LKRG Π² Arch Linux ΡƒΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ вСрсии 0.9.0, Π° ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ git-вСрсии LKRG ΠΈ, вСроятно, скоро Ρ‚Π°ΠΊΠΆΠ΅ обновятся Π΄ΠΎ вСрсии 0.9.0 ΠΈ Π΄Π°Π»Π΅Π΅.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ нСдавнюю ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ОБ Аврора (российской ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Sailfish OS) ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ усилСнии LKRG с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ARM TrustZone.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ LKRG см. Π² анонсС вСрсии 0.8 ΠΈ ΡΠΎΡΡ‚ΠΎΡΠ²ΡˆΠ΅ΠΉΡΡ Ρ‚ΠΎΠ³Π΄Π° дискуссии.

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