Linux nüvəsindəki zəifliklərin istismarından qorunmaq üçün LKRG 0.8 modulunun buraxılışı

Openwall Layihəsi nəşr kernel modulunun buraxılışı LKRG 0.8 Hücumları və nüvə strukturlarının bütövlüyünün pozulmasını aşkar etmək və bloklamaq üçün nəzərdə tutulmuşdur (Linux Kernel Runtime Guard). Məsələn, modul işləyən nüvədə icazəsiz dəyişikliklərdən və istifadəçi proseslərinin icazələrini dəyişdirmək cəhdlərindən (istismarların istifadəsini aşkar etməklə) qoruya bilər. Modul həm Linux nüvəsi üçün artıq məlum olan istismarlardan qorunmanın təşkili üçün (məsələn, sistemdə nüvəni yeniləməyin çətin olduğu vəziyyətlərdə), həm də hələ naməlum zəifliklər üçün istismarlara qarşı mübarizə üçün uyğundur. Layihə kodu yayılır GPLv2 altında lisenziyalıdır.

Yeni versiyada dəyişikliklər arasında:

  • LKRG layihəsinin mövqeyi dəyişdirilib, o, artıq bütövlüyün yoxlanılması və istismarların istifadəsinin müəyyən edilməsi üçün ayrıca alt sistemlərə bölünmür, lakin hücumların və müxtəlif bütövlüyün pozulmasının müəyyən edilməsi üçün tam məhsul kimi təqdim olunur;
  • Uyğunluq 5.3-dən 5.7-ə qədər olan Linux ləpələri, eləcə də CONFIG_USB və CONFIG_STACKTRACE seçimləri olmadan və ya CONFIG_UNWINDER_ORC seçimi olmadan aqressiv GCC optimallaşdırmaları ilə tərtib edilmiş ləpələrlə, həmçinin LKRG funksiyası olmayan nüvələrlə təmin edilir. imtina etmək;
  • Quraşdırarkən bəzi məcburi CONFIG_* ləpə parametrləri qaranlıq qəzalar əvəzinə mənalı xəta mesajları yaratmaq üçün yoxlanılır;
  • Gözləmə (ACPI S3, RAM-a dayandır) və yuxu (S4, diskə dayandır) rejimləri üçün əlavə dəstək;
  • Makefile-a DKMS dəstəyi əlavə edildi;
  • 32 bitlik ARM platformaları üçün eksperimental dəstək həyata keçirilib (Raspberry Pi 3 Model B-də sınaqdan keçirilib). Raspberry Pi 64 lövhəsi ilə uyğunluğu təmin etmək üçün əvvəllər mövcud olan AArch64 (ARM4) dəstəyi genişləndirildi;
  • Manipulyasiya edən istismarları daha yaxşı müəyyən etmək üçün capable() zəng idarəedicisi də daxil olmaqla yeni qarmaqlar əlavə edildi.imkanları", proses identifikatorları deyil (etimadnamələr);
  • Ad məkanı məhdudiyyətlərindən (məsələn, Docker konteynerlərindən) qaçmaq cəhdlərini aşkar etmək üçün yeni məntiq təklif edilmişdir;
  • X86-64 sistemlərində SMAP (Supervisor Mode Access Prevention) biti yoxlanılır və tətbiq edilir, nüvə səviyyəsində işləyən imtiyazlı koddan istifadəçi məkanı məlumatlarına girişi bloklamaq üçün nəzərdə tutulmuşdur. SMEP (Supervisor Mode Execution Prevention) mühafizəsi əvvəllər həyata keçirilib;
  • Əməliyyat zamanı LKRG parametrləri adətən yalnız oxumaq üçün olan yaddaş səhifəsinə yerləşdirilir;
  • Hücumlar üçün ən faydalı ola biləcək məlumatı qeyd etmək (məsələn, nüvədəki ünvanlar haqqında məlumat) defolt olaraq qeyri-aktiv olan sazlama rejimi (log_level=4 və daha yüksək) ilə məhdudlaşır.
  • Prosesin izlənməsi məlumat bazasının miqyası artırılıb - bir spinlock ilə qorunan bir RB ağacı əvəzinə, 512 oxumaq-yazmaq kilidi ilə qorunan 512 RB ağacından ibarət hash cədvəli istifadə olunur;
  • Proses identifikatorlarının bütövlüyü tez-tez yalnız cari tapşırıq üçün, həmçinin isteğe bağlı olaraq aktivləşdirilmiş (oyanan) tapşırıqlar üçün yoxlanılan rejim tətbiq edilib və defolt olaraq işə salınıb. Yuxu vəziyyətində olan və ya LKRG tərəfindən idarə olunan kernel API-yə daxil olmadan işləyən digər tapşırıqlar üçün yoxlama daha az həyata keçirilir.
  • LKRG-nin incə tənzimlənməsi üçün yeni sistem parametrləri və modul parametrləri, həmçinin tərtibatçılar tərəfindən hazırlanmış incə sazlama parametrləri (profilləri) dəstlərindən seçməklə sadələşdirilmiş konfiqurasiya üçün iki sysctl əlavə edildi;
  • Bir tərəfdən pozuntuların aşkarlanması sürəti ilə cavab tədbirlərinin effektivliyi, digər tərəfdən isə performansa təsir və yanlış pozitiv risklər arasında daha balanslaşdırılmış tarazlığa nail olmaq üçün standart parametrlər dəyişdirilib;
  • LKRG modulunu yüklənmənin əvvəlində yükləmək üçün sistem vahidi faylı yenidən işlənib (modulu söndürmək üçün nüvənin komanda xətti seçimindən istifadə edilə bilər);

Yeni buraxılışda təklif olunan optimallaşdırmaları nəzərə alaraq, LKRG 0.8 istifadə edərkən performans azalması standart rejimdə ("ağır") 2.5% və işıq rejimində ("yüngül") 2% səviyyəsində qiymətləndirilir.

Bu yaxınlarda keçirilən tədqiqat LKRG rootkitlərinin aşkarlanması üçün paketlərin effektivliyi göstərdi yalan pozitiv olmayan kernel səviyyəsində işləyən 8 sınaqdan keçirilmiş rootkitdən 9-i müəyyən edən ən yaxşı nəticələr (rootkitlər Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit və Sutekh müəyyən edildi, lakin Keysnifferneldir. modul, hərfi mənada rootkit deyil, keylogger ilə buraxılıb). Müqayisə üçün qeyd edək ki, AIDE, OSSEC və Rootkit Hunter paketləri 2 rootkitdən 9-ni aşkar edib, Chkrootkit isə heç birini aşkar etməyib. Eyni zamanda, LKRG istifadəçi məkanında yerləşən rootkitlərin aşkarlanmasını dəstəkləmir, buna görə də bütün növ 14 rootkitdən 15-nü müəyyən etməyə imkan verən AIDE və LKRG kombinasiyasından istifadə edərkən ən böyük səmərəlilik əldə edilir.

Əlavə olaraq qeyd etmək olar ki, paylama tərtibatçısıdır Whonix açılmış formalaşma Debian, Whonix, Qubes və Kicksecure üçün DKMS ilə hazır paketlər və bir paket Arch Linux artıq 0.8 versiyasına yenilənib. LKRG ilə paketlər rus dilində də mövcuddur BÜTÜN Linux и AstraLinux.

LKRG-də bütövlüyün yoxlanılması nüvə və modulların faktiki kodunu və məlumatlarını, bəzi mühüm məlumat strukturlarını və CPU parametrlərini saxlanılan heşlər və ya müvafiq yaddaş sahələrinin, məlumat strukturlarının və ya registrlərin surətləri ilə müqayisə etməklə həyata keçirilir. Yoxlamalar həm vaxtaşırı olaraq taymer vasitəsilə, həm də müxtəlif hadisələr baş verdikdə aktivləşdirilir.

İstismarların mümkün istifadəsinin müəyyən edilməsi və hücumların bloklanması nüvənin resurslara girişi təmin etməzdən əvvəlki mərhələdə (məsələn, faylı açmamışdan əvvəl), lakin proses icazəsiz icazələr aldıqdan sonra (məsələn, UID-nin dəyişdirilməsi) həyata keçirilir. İcazəsiz davranış aşkar edildikdə, proseslər defolt olaraq dayandırılmağa məcbur edilir ki, bu da bir çox istismarın qarşısını almaq üçün kifayətdir.

Mənbə: opennet.ru

Добавить комментарий