Masalah kaamanan dina patch anu diusulkeun ku karyawan Huawei pikeun ngajagi kernel Linux

Pamekar proyék Grsecurity ngancik perhatian kana ayana kerentanan trivially exploitable dina set patch HKSP (Huawei Kernel Self Protection), sababaraha dinten kapengker diajukeun pikeun ningkatkeun kaamanan kernel Linux. Kaayaan ngingetkeun kasus kalawan Samsung, dimana usaha pikeun ningkatkeun kaamanan sistem nyababkeun mecenghulna kerentanan anyar sareng ngagampangkeun kompromi alat.

Patch HKSP diterbitkeun ku karyawan Huawei, kalebet nyebut Huawei dina profil GitHub, sareng nganggo kecap Huawei dina nami proyék (HKSP - Huawei Kernel Self Protection). Dina waktos anu sami, wawakil Huawei nampik sambungan proyék HKSP sareng perusahaan sareng nyatakeun yén kodeu dikembangkeun dina inisiatif pribadi karyawan, sanés proyék Huawei resmi sareng henteu dianggo dina produk perusahaan. Dina Kaca GitHub HKSP retroactively sanggeus kapanggihna vulnerabilities ogé ieu ditambahkeun Catet yén proyék ieu dikembangkeun dina waktos senggang kuring pikeun tujuan panalungtikan.

HKSP ngawengku parobahan saperti randomization of offsets dina struktur cred, panyalindungan ngalawan serangan dina pamaké identifier namespace (pid namespace), separation tina tumpukan prosés ti wewengkon mmap, deteksi telepon ganda pikeun fungsi kfree, blocking leaks ngaliwatan pseudo nu. -FS / proc (/ proc / {modul, konci, konci-pamaké}, / proc / sys / kernel / * jeung / proc / sys / vm / mmap_min_addr, / proc / kallsyms), ningkat randomization alamat spasi pamaké, tambahan Ptrace panyalindungan, ditingkatkeun smap na smep panyalindungan , kamampuhan pikeun nyaram ngirim data via sockets atah, blocking alamat salah dina sockets UDP tur mariksa integritas prosés ngajalankeun. Éta ogé kalebet modul kernel Ksguard, anu ditujukeun pikeun ngadeteksi usaha pikeun ngenalkeun rootkit khas.

Tambalan disebut Greg Kroah-Hartman, anu tanggung jawab pikeun ngajaga cabang stabil tina kernel Linux Ubuntu, éta dipikaresep, sarta nanya ka panulis pikeun megatkeun patch monolithic kana bagian pikeun simplify review sarta promosi ka kernel utama. Kees Cook, sirah proyékna on promosi téhnologi panyalindungan aktip dina kernel Linux Ubuntu, oge positip ngabales patches jeung, diantara masalah, Drew perhatian ka beungkeutan kana arsitektur x86 jeung alam bewara loba modus, nu ngan log inpo ngeunaan masalah, tapi ulah coba pikeun meungpeuk eta.

Ulikan ngeunaan patch ku pamekar Grsecurity ngungkabkeun seueur kasalahan sareng kalemahan dina kode, sareng ogé nunjukkeun henteuna modél anceman anu bakal ngamungkinkeun aranjeunna pikeun nangtoskeun kamampuan proyék éta. Pikeun jelas demonstrate yén kode ieu ditulis tanpa ngagunakeun métode programming aman, hiji conto kerentanan trivial di Handler dibikeun.
file / proc / ksguard / kaayaan, nu dijieun kalawan hak 0777, implying yén dulur boga aksés nulis. Fungsi ksg_state_write, dipaké pikeun parse paréntah ditulis ka /proc/ksguard/state, nyiptakeun tmp [32] panyangga nu data ditulis dumasar kana ukuran operan diliwatan, tanpa nyokot kana akun ukuran panyangga target jeung tanpa. mariksa parameter kalayan ukuran string. Jelema. Pikeun nimpa bagian tina tumpukan kernel, panyerang ngan ukur kedah nyerat garis anu diformat khusus ka /proc/ksguard/state.

statik ssize_t ksg_state_write(struct file *file, const char __user *buf,
ukuran_t len, loff_t *offset)
{
nilai u64;
char tmp[32];
ukuran_t n = 0;

lamun (copy_from_user(tmp, buf, len))
mulang -1;

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

Eksploitasi prototipe:

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

sumber: opennet.ru

Tambahkeun komentar