Nga raruraru haumarutanga i roto i nga papanga i whakaarohia e tetahi kaimahi Huawei hei tiaki i te kernel Linux

Nga Kaihanga o te kaupapa Grsecurity kumea te aro ki te noho whakaraeraetanga iti noa i roto i te huinga papaki HKSP (Huawei Kernel Self Protection), i etahi ra ki muri kua whakaarohia hei whakapai ake i te haumarutanga o te kernel Linux. Ka whakamahara te ahuatanga take ki a Samsung, na te ngana ki te whakapai ake i te haumarutanga o te punaha i puta mai he whakaraeraetanga hou me te ngawari ki te whakaraerae i nga taputapu.

Ko nga paatete HKSP i whakaputaina e tetahi kaimahi Huawei, whakauruhia he whakahuatanga o Huawei i roto i te whaarangi GitHub, me te whakamahi i te kupu Huawei i roto i te ingoa kaupapa (HKSP - Huawei Kernel Self Protection). I te wa ano, ka whakakorehia e nga mema o Huawei te hononga o te kaupapa HKSP me te kamupene me te kii kua whakawhanakehia te waehere i runga i te kaupapa whaiaro a te kaimahi, ehara i te kaupapa Huawei whai mana, kaore i te whakamahia i roto i nga hua o te kamupene. Kei runga Whārangi GitHub HKSP whakamuri i muri i te kitenga whakaraeraetanga hoki i tapirihia kia mohio kei te whakawhanakehia te kaupapa i roto i taku wa waatea mo nga kaupapa rangahau.

Kei roto i te HKSP nga huringa penei i te matapōkeretanga o nga whakawhiwhinga i roto i te hanganga cred, te whakamarumaru i nga whakaeke ki te mokowā ingoa kaitautuhi (pid namespace), te wehenga o te puranga tukanga mai i te waahi mmap, te kitenga o nga waea rua ki te mahi kfree, te aukati i nga turuturu ma te pseudo. -FS /proc (/proc/ {moules, taviri, key-kaiwhakamahi}, /proc/sys/kernel/* me /proc/sys/vm/mmap_min_addr, /proc/kallsyms), kua pai ake te whakaraeraetanga mokowhiti mokowhiti kaiwhakamahi, Ptrace taapiri te whakamarumaru, te whakarei ake i te smap me te tiaki smep , te kaha ki te aukati i te tuku raraunga ma nga turanga mata, te aukati i nga wahitau hē i roto i nga turanga UDP me te tirotiro i te tika o nga mahi whakahaere. Kei roto hoki ko te Ksguard kernel module, e whai ana ki te kimi ngana ki te whakauru i nga rootkits.

Pato karanga Ko Greg Kroah-Hartman, ko ia te kawenga mo te pupuri i te peka pumau o te kakano Linux, i aro atu, ka tono ki te kaituhi kia wahia te papanga monolithic ki etahi waahanga hei whakangawari i te arotake me te whakatairanga ki te kernel matua. Kees Cook, upoko tauira i runga i whakatairanga hangarau tiaki kaha i roto i te pata Linux, hoki pai i whakautu ki nga papaki, a, i roto i nga raruraru, i aro ki te here ki te hoahoanga x86 me te ahua whakamohiotanga o te maha o nga tikanga, ka tuhi noa i nga korero mo te raru, engari kaua e ngana ki te aukati.

He rangahau mo te papaki na nga kaiwhakawhanake a Grsecurity i kitea he maha nga hapa me nga ngoikoretanga i roto i te waehere, me te whakaatu hoki i te kore o te tauira whakatuma e taea ai e ratou te whakatau tika i nga kaha o te kaupapa. Hei whakaatu marama i tuhia te waehere me te kore e whakamahi i nga tikanga whakamaarama haumaru, ka tukuna he tauira o te whakaraeraetanga iti o te kaihautu.
file /proc/ksguard/state, he mea hanga me nga mana 0777, e tohu ana kei te katoa te uru tuhituhi. Ko te mahi ksg_state_write, e whakamahia ana ki te poroporo i nga whakahau kua tuhia ki /proc/ksguard/state, ka hanga i te tmp[32] karekau e tuhia ai nga raraunga i runga i te rahi o te operand i tukuna, me te kore e aro ki te rahi o te kaitapa kua tohua me te kore te taki i te tawhā me te rahi aho. Ko era. Hei tuhirua i tetahi waahanga o te puranga kernel, me tuhi noa e te kaitukino tetahi raina whakahōputu motuhake ki /proc/ksguard/state.

ssize_t ksg_state_write(kōnae hanganga *kōnae, const char __user *buf,
rahi_t len, loff_t *offset)
{
u64 uara;
char tmp[32];
rahi_t n = 0;

mena (copy_from_user(tmp, buf, len))
hoki -1;

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

Whakamahi tauira:

char buf[4096] = {};
int fd = tuwhera(“/proc/ksguard/state”, O_WRONLY);
mehemea (fd >= 0) {
tuhi(fd, buf, sizeof(buf));
kati(fd);
}

Source: opennet.ru

Tāpiri i te kōrero