OpenBSD-də privilegiyaların artırılmasına və smtpd, ldapd və radiusd-də autentifikasiyanın aşılmasına imkan verən zəifliklər

Qualys Şirkəti tapa bildi dörd təhlükəsizlik zəifliyi OpenBSD-də dörd zəiflik aşkarlanıb, bunlardan biri bəzi şəbəkə xidmətlərinə autentifikasiyadan keçmədən uzaqdan qoşulmağa imkan tanıyır, üçü isə sistemdəki hüquqları artırmağa yönəlib. Qualys hesabatında OpenBSD inkişaf etdiricilərinin sürətli reaksiya verdiyi qeyd olunub — bütün problemlər aradan qaldırıldı daxilindədir. OpenBSD 6.5OpenBSD 6.6 şəxsi bildirişdən sonra 40 saat ərzində.

Uzaqdan istismar edilən zəiflik libc kitabxanasında autentifikasiya idarəçisinin çağırışı zamanı baş verən bir səhv səbəbindən yaranır ki, bu da
proqramı /usr/libexec/auth/login_style-ı komandada arqumentlərlə çağırır. Bunun içində login_style-i «-s service» seçmə parametri ilə çağırarkən protokolun adını keçirmək mümkündür. İstifadəçi adının əvvəli «-» simvolu ilə başladığı halda, bu ad login_style-ın işə salınması zamanı seçim kimi qəbul ediləcəkdir. Beləliklə, autentifikasiyanın zamanı istifadəçi adı olaraq «-schallenge» və ya «-schallenge:passwd» göstərildikdə login_style bu müraciəti işləməci istifadə etmək üçün sorğu kimi qəbul edəcək. S/Key.

Problem ondadır ki, login_style-da S/Key protokolunun dəstəyi yalnız formal xarakter daşıyır, əslində isə uğurlu autentifikasiya nəticəsi göz ardı edilir. Beləliklə, bir hücumçu «-schallenge» istifadəçi adı ilə autentifikasiyanı aşaraq, parol və ya açar təqdim etmədən daxil ola bilər. Potensial olaraq, bu problemdən bütün şəbəkə xidmətləri təsirlənə bilər ki, hansı ki, autentifikasiya üçün libc-in standart çağırışlarını istifadə edir. Məsələn, smtpd (AUTH PLAIN), ldapd və radiusd-da autentifikasiyanı aşma imkanı təsdiqlənib.

sshd-da zəiflik görünmür, çünki burada sistemdə istifadəçinin mövcudluğunu yoxlayan əlavə müdafiə var. Bununla belə, sshd sistemi zəifliyə qarşı yoxlamaq üçün istifadə edilə bilər — «-sresponse:passwd» istifadəçi adı ilə müraciət edildikdə bağlantı donur, çünki sshd login_passwd-dan çağırış parametrlərinin (challenge) qaytarılmasını gözləyir, lakin login_passwd itkin parametrlərin ötürülməsini gözləyir (ad «-sresponse» seçim kimi qəbul edilir). Potensial olaraq, yerli bir hücumçu su vasitəsi ilə autentifikasiyanı aşmağa çalışa bilər, lakin «-sresponse» adının ötürülməsi prosesi crash-ə səbəb olur, çünki getpwnam_r(«-schallenge», …) funksiyası çağırıldığında sıfır göstəricisi qaytarılır.

Digər zəifliklər:

  • CVE-2019-19520 — xlock vasitəsinin manipulyasiyaları ilə lokal hüquqların artırılması. Bu utilit sgid flag ilə, qrupunu «auth» olaraq dəyişərək təqdim olunur. xlock kodunda kitabxanalara yolun yenidən təyin edilməsi yalnız istifadəçi identifikatoru (setuid) dəyişdirilərkən qadağandır ki, bu da hücumçuya «LIBGL_DRIVERS_PATH» mühit dəyişkənini dəyişərək öz paylaşılmış kitabxanasını yükləmək imkanı verir, kod isə «auth» qrupuna hüquqlar artırıldıqdan sonra icra olunacaq.
  • CVE-2019-19522 — yerli istifadəçiyə, «auth» qrupuna daxil olan zaman, S/Ki və ya YubiKey vasitəsilə autentifikasiya sistemində root hüquqları ilə kod icra etməyə imkan verir (varsayılan olaraq aktiv deyil). «Auth» qrupuna daxil olmaq, yuxarıda qeyd olunan xlock zəifliyindən istifadə etməklə əldə edilə bilən giriş, /etc/skey və /var/db/yubikey kataloqlarına fayllar yazmaq imkanı verir. Məsələn, hücum edən yeni bir /etc/skey/root faylını əlavə edərək, S/Ki vasitəsilə root istifadəçisi adından autentifikasiya üçün bir dəfəli açarları yarada bilər.
  • CVE-2019-19519 — su vasitəsilə resurs limitlərini artırmaq imkanı verir. «-L» seçimi qeyd edildikdə, uğursuzluq halında autentifikasiya cəhdlərinin dövri təkrarı nəzərdə tutulur, istifadəçi sinfi yalnız bir dəfə təyin edilir və sonrakı cəhdlərdə sıfırlanmır. Hücum edən «su -l -L» icra edərək, ilk cəhddə başqa bir hesab sinfi ilə başqanın girişini yaza bilər, ancaq ikinci cəhddə öz hesabı ilə müvəffəqiyyətlə autentifikasiya edə bilər. Bu vəziyyətdə istifadəçiyə, ilk cəhddə qeyd olunan istifadəçi sinfinə uyğun limitlər təyin ediləcək (məsələn, maksimum proses sayı və ya proses üçün yaddaş ölçüsü). Bu metod, yalnız imtiyazı olmayan istifadəçilərdən limitlərin borc alınması üçün işləyir, çünki root istifadəçisi üçün wheel qrupuna daxil olma mütləqdır.

Əlavə olaraq qeyd etmək lazımdır ki, tətbiq etmək OpenBSD-də sistem çağırışlarına girişin təsdiqlənməsi üçün yeni bir metod, zəifliklərin istismarını əlavə çətinləşdirir. Bu metod yalnız öncədən qeyd olunan yaddaş ərazilərindən çağırıldıqda sistem çağırışlarının icrasına icazə verir. Yaddaş ərazilərini qeyd etmək üçün Samsung tərəfindən hazırlanmış açıq exFAT sürücüsü mövcuddur. Eyni zamanda, əlavə edilən sürücü köhnəlmiş kod (1.2.9) əsasında hazırlanıb və kodun təqdim edilməsinə dair tələblərə uyğunlaşdırılmağı tələb edir. Sonradan nüvə üçün yeni sistem çağırışı msyscall().

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster