Sikkerhetsproblemer i patcher foreslått av en Huawei-ansatt for å beskytte Linux-kjernen

Utviklere av Grsecurity-prosjektet snudde oppmerksomhet på tilstedeværelsen av en trivielt utnyttbar sårbarhet i oppdateringssettet HKSP (Huawei Kernel Self Protection), for noen dager siden foreslått for å forbedre sikkerheten til Linux-kjernen. Situasjonen minner om etui med Samsung, der et forsøk på å forbedre systemsikkerheten førte til fremveksten av en ny sårbarhet og gjorde det lettere å kompromittere enheter.

HKSP-oppdateringene ble publisert av en Huawei-ansatt, inkluderer en omtale av Huawei i GitHub-profilen, og bruker ordet Huawei i prosjektnavnet (HKSP - Huawei Kernel Self Protection). Samtidig benektet Huawei-representanter forbindelsen mellom HKSP-prosjektet og selskapet og uttalte at koden ble utviklet på den ansattes personlige initiativ, ikke er et offisielt Huawei-prosjekt og ikke brukes i selskapets produkter. På GitHub-siden HKSP med tilbakevirkende kraft etter oppdagelsen sårbarheter også ble lagt til merk at prosjektet utvikles på fritiden for forskningsformål.

HKSP inkluderer endringer som randomisering av forskyvninger i cred-strukturen, beskyttelse mot angrep på brukeridentifikatorens navneområde (pid-navneområde), separasjon av prosessstabelen fra mmap-området, deteksjon av dobbeltkall til kfree-funksjonen, blokkering av lekkasjer gjennom pseudo -FS /proc (/proc/ {moduler, keys, key-users}, /proc/sys/kernel/* og /proc/sys/vm/mmap_min_addr, /proc/kallsyms), forbedret brukerplassadresserandomisering, ekstra Ptrace beskyttelse, forbedret smap- og smep-beskyttelse , muligheten til å forby sending av data via raw-sockets, blokkering av feil adresser i UDP-sockets og sjekke integriteten til kjørende prosesser. Den inkluderer også Ksguard-kjernemodulen, som er rettet mot å oppdage forsøk på å introdusere typiske rootkits.

Lapper kalt Greg Kroah-Hartman, som er ansvarlig for å opprettholde den stabile grenen til Linux-kjernen, var av interesse, og ba forfatteren om å dele den monolittiske oppdateringen i deler for å forenkle gjennomgang og promotering til hovedkjernen. Kees Cook, sjef prosjektforfremmelse aktiv beskyttelsesteknologi i Linux-kjernen, også positivt svarte på oppdateringene og, blant problemene, trakk oppmerksomheten til bindingen til x86-arkitekturen og varslingsnaturen til mange moduser, som bare logger informasjon om problemet, men ikke prøver å blokkere det.

En studie av oppdateringen av Grsecurity-utviklere avslørte mange feil og svakheter i koden, og viste også fraværet av en trusselmodell som ville tillate dem å bedømme prosjektets evner. For å tydelig demonstrere at koden ble skrevet uten å bruke sikre programmeringsmetoder, er det gitt et eksempel på en triviell sårbarhet i behandleren.
filen /proc/ksguard/state, som er opprettet med rettighetene 0777, noe som antyder at alle har skrivetilgang. Funksjonen ksg_state_write, som brukes til å analysere kommandoer skrevet til /proc/ksguard/state, lager en tmp[32]-buffer som data skrives til basert på størrelsen på operanden som sendes, uten å ta hensyn til størrelsen på målbufferen og uten sjekke parameteren med strengstørrelsen. De. For å overskrive en del av kjernestabelen trenger en angriper bare å skrive en spesialformatert linje til /proc/ksguard/state.

static ssize_t ksg_state_write(struct-fil *fil, const char __user *buf,
size_t len, loff_t *offset)
{
u64 verdi;
char tmp[32];
størrelse_t n = 0;

if (copy_from_user(tmp, buf, len))
retur -1;

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

Utnytt prototype:

char buf[4096] = { };
int fd = open(“/proc/ksguard/state”, O_WRONLY);
if (fd >= 0) {
write(fd, buf, sizeof(buf));
lukk(fd);
}

Kilde: opennet.ru

Legg til en kommentar