Säkerhetsproblem i patchar föreslagna av en Huawei-anställd för att skydda Linux-kärnan

Utvecklare av Grsecurity-projektet ritade uppmärksamma närvaron av en trivialt exploateringsbar sårbarhet i patchuppsättningen HKSP (Huawei Kernel Self Protection), för några dagar sedan föreslagen för att förbättra säkerheten för Linux-kärnan. Situationen gör sig påmind fodral med Samsung, där ett försök att förbättra systemsäkerheten ledde till uppkomsten av en ny sårbarhet och gjorde det lättare att kompromissa med enheter.

HKSP-lapparna publicerades av en Huawei-anställd, inkluderar ett omnämnande av Huawei i GitHub-profilen och använder ordet Huawei i projektnamnet (HKSP - Huawei Kernel Self Protection). Samtidigt förnekade Huawei-representanter kopplingen mellan HKSP-projektet och företaget och uppgav att koden utvecklades på den anställdes personliga initiativ, inte är ett officiellt Huawei-projekt och inte används i företagets produkter. På GitHub sida HKSP retroaktivt efter upptäckt sårbarheter också lades till notera att projektet utvecklas på min fritid i forskningssyfte.

HKSP inkluderar ändringar såsom randomisering av förskjutningar i cred-strukturen, skydd mot attacker på användaridentifierarens namnområde (pid-namnutrymme), separation av processstacken från mmap-området, detektering av dubbla anrop till kfree-funktionen, blockering av läckor genom pseudo -FS /proc (/proc/ {moduler, nycklar, nyckelanvändare}, /proc/sys/kernel/* och /proc/sys/vm/mmap_min_addr, /proc/kallsyms), förbättrad randomisering av användarutrymmesadress, ytterligare Ptrace skydd, förbättrat smap- och smep-skydd , möjligheten att förbjuda sändning av data via råa sockets, blockering av felaktiga adresser i UDP-sockets och kontrollera integriteten av pågående processer. Den innehåller också Ksguard-kärnmodulen, som syftar till att upptäcka försök att introducera typiska rootkits.

Plåster kallad Greg Kroah-Hartman, som är ansvarig för att underhålla den stabila grenen av Linux-kärnan, var av intresse och bad författaren att dela upp den monolitiska patchen i delar för att förenkla granskning och marknadsföring till huvudkärnan. Kees Cook, chef projektetbefordran aktiv skyddsteknik i Linux-kärnan också positivt svarade på patchar och, bland problemen, uppmärksammade bindningen till x86-arkitekturen och meddelandekaraktären för många lägen, som bara loggar information om problemet, men inte försöker blockera det.

En studie av patchen av Grsecurity-utvecklare avslöjade många fel och svagheter i koden, och visade också frånvaron av en hotmodell som skulle tillåta dem att på ett adekvat sätt bedöma projektets kapacitet. För att tydligt visa att koden skrevs utan att använda säkra programmeringsmetoder ges ett exempel på en trivial sårbarhet i hanteraren.
filen /proc/ksguard/state, som skapas med rättigheterna 0777, vilket innebär att alla har skrivbehörighet. Funktionen ksg_state_write, som används för att analysera kommandon skrivna till /proc/ksguard/state, skapar en tmp[32]-buffert till vilken data skrivs baserat på storleken på den skickade operanden, utan att ta hänsyn till storleken på målbufferten och utan kontrollera parametern med strängstorleken. De där. För att skriva över en del av kärnstacken behöver en angripare bara skriva en speciellt formaterad rad till /proc/ksguard/state.

static ssize_t ksg_state_write(struct file *file, const char __user *buf,
size_t len, loff_t *offset)
{
u64 värde;
char tmp[32];
storlek_t n = 0;

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

värde = simple_strtoul(tmp, '\0', 10);
.

Utnyttja prototyp:

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

Källa: opennet.ru

Lägg en kommentar