Sikkerhedsproblemer i patches foreslået af en Huawei-medarbejder for at beskytte Linux-kernen

Udviklere af Grsecurity-projektet tegnede opmærksomhed på tilstedeværelsen af ​​en trivielt udnyttelig sårbarhed i patchsættet HKSP (Huawei Kernel Self Protection), for et par dage siden foreslog for at forbedre sikkerheden i Linux-kernen. Situationen minder Samsung etui, hvor et forsøg på at forbedre systemsikkerheden førte til fremkomsten af ​​en ny sårbarhed og gjorde det lettere at kompromittere enheder.

HKSP-patchene blev udgivet af en Huawei-medarbejder, inkluderer en omtale af Huawei i GitHub-profilen og bruger ordet Huawei i projektnavnet (HKSP - Huawei Kernel Self Protection). Samtidig benægtede Huawei-repræsentanter forbindelsen mellem HKSP-projektet og virksomheden og udtalte, at koden blev udviklet på medarbejderens personlige initiativ, ikke er et officielt Huawei-projekt og ikke bruges i virksomhedens produkter. På GitHub side HKSP med tilbagevirkende kraft efter opdagelse også sårbarheder blev tilføjet bemærk, at projektet udvikles i min fritid til forskningsformål.

HKSP inkluderer ændringer såsom randomisering af forskydninger i cred-strukturen, beskyttelse mod angreb på brugeridentifikationens navneområde (pid-navneområde), adskillelse af processtakken fra mmap-området, detektering af dobbeltkald til kfree-funktionen, blokering af læk gennem pseudo -FS /proc (/proc/ {modules, keys, key-users}, /proc/sys/kernel/* og /proc/sys/vm/mmap_min_addr, /proc/kallsyms), forbedret brugerpladsadresserandomisering, yderligere Ptrace beskyttelse, forbedret smap- og smep-beskyttelse, muligheden for at forbyde afsendelse af data via rå-sockets, blokering af forkerte adresser i UDP-sockets og kontrol af integriteten af ​​kørende processer. Det inkluderer også Ksguard-kernemodulet, som har til formål at opdage forsøg på at introducere typiske rootkits.

Patches hedder Greg Kroah-Hartman, som er ansvarlig for at vedligeholde den stabile gren af ​​Linux-kernen, var interessant og bad forfatteren om at dele den monolitiske patch op i dele for at forenkle gennemgang og promovering til hovedkernen. Kees Cook, leder projektforfremmelse aktiv beskyttelsesteknologi i Linux-kernen også positivt reagerede på patches og blandt problemerne henledte opmærksomheden på bindingen til x86-arkitekturen og meddelelseskarakteren af ​​mange tilstande, som kun logger oplysninger om problemet, men ikke forsøger at blokere det.

En undersøgelse af patchen udført af Grsecurity-udviklere afslørede mange fejl og svagheder i koden og viste også fraværet af en trusselsmodel, der ville give dem mulighed for tilstrækkeligt at bedømme projektets muligheder. For tydeligt at demonstrere, at koden er skrevet uden brug af sikre programmeringsmetoder, gives et eksempel på en triviel sårbarhed i behandleren.
fil /proc/ksguard/state, som er oprettet med rettighederne 0777, hvilket betyder, at alle har skriveadgang. Funktionen ksg_state_write, der bruges til at parse kommandoer skrevet til /proc/ksguard/state, opretter en tmp[32]-buffer, hvortil data skrives baseret på størrelsen af ​​den operand, der sendes, uden at tage højde for størrelsen af ​​målbufferen og uden kontrollere parameteren med strengstørrelsen. De der. For at overskrive en del af kernestakken skal en angriber blot skrive en specielt formateret 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 værdi;
char tmp[32];
størrelse_t n = 0;

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

værdi = simple_strtoul(tmp, '\0', 10);
...

Udnyt prototype:

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

Kilde: opennet.ru

Tilføj en kommentar