ʻO nā mea palupalu i loko o ka subsystem eBPF e ʻae ai i ka pale ʻana i ka pale ʻana i nā hōʻeha Specter

Ua ʻike ʻia kahi haʻahaʻa ma ka Linux kernel (CVE-2021-33624) e hiki ai i ka subsystem eBPF ke hoʻohana i ka pale ʻana i nā nāwaliwali o ka papa Specter, kahi e hiki ai ke hoʻoholo i nā mea o ka hoʻomanaʻo ma muli o ka hana ʻana i nā kūlana no ka ka hoʻokō ʻana i kekahi mau hana. Pono ka hoʻouka ʻana o Spectre i kahi ʻano o nā kauoha i loko o ke code privilege e alakaʻi i ka hoʻokō speculative o nā kuhikuhi. Ma ka hoʻopunipuni ʻana i nā polokalamu BPF i hoʻouna ʻia no ka hoʻokō ʻana, hiki ke hana i nā ʻōlelo aʻoaʻo like i ka eBPF a hoʻokuʻu i nā ʻike o ka hoʻomanaʻo kernel a me nā wahi hoʻomanaʻo kino ma o nā kahawai ʻaoʻao.

Hoʻokumu ʻia ka nāwaliwali e nā hemahema o ka mea hōʻoia, i hoʻohana ʻia e ʻike i nā hewa a me nā hana ʻae ʻole i nā polokalamu BPF. Hoʻopuka ka mea hōʻoia i nā ala hoʻokō code, akā hoʻokuʻu i nā koho lālā i ʻae ʻole ʻia mai ka manaʻo o nā semantics o ka papa kuhikuhi hoʻonohonoho. Ke hoʻokō nei i kahi papahana BPF, ʻo ia mau koho lālā i mālama ʻole ʻia e ka mea hōʻoia hiki ke wānana hewa ʻia e ka mea hana a hoʻokō ʻia ma ke ʻano speculative. No ka laʻana, i ka nānā ʻana i ka hana "hoʻouka", manaʻo ka mea hōʻoia e hoʻohana ke aʻo ʻana i kahi papa inoa me kahi helu nona ka waiwai i loko o nā palena i ʻōlelo ʻia, akā hiki i ka mea hoʻouka ke hana i nā kūlana kahi e hoʻāʻo ai ka mea hana e hana i kahi hana me. he helu wahi i kū ʻole i nā kūlana hōʻoia.

Ua ʻike ʻia ka pilikia mai ka hoʻokuʻu ʻia ʻana o ka kernel 4.15 a ua hoʻopaʻa ʻia ma ke ʻano o nā pā (1, 2, 3, 4). ʻAʻole i hoʻopaʻa ʻia ka nāwaliwali i nā hāʻawi (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Eia hou, hiki iā ʻoe ke nānā i ka memo e pili ana i ka hopena o ka hana o nā mea hana e pale aku ai i nā nāwaliwali o Specter. Hōʻuluʻulu ka memo i nā hopena o ka optimization o ka rr (Record and Replay) debugger, i hana mua ʻia ma Mozilla e hoʻopau i nā hewa paʻakikī e hana hou ma Firefox. ʻO ka mālama ʻana i nā kelepona ʻōnaehana i hoʻohana ʻia e nānā i ke ola o nā papa kuhikuhi i hoʻemi i ka hana "rr source" no ka papahana hoʻāʻo mai 3 mau minuke 19 kekona a i 36 kekona.

Ua hoʻoholo ka mea kākau optimization e nānā pehea e loli ai ka hana ma hope o ka hoʻopau ʻana i ka pale Specter. Ma hope o ka hoʻouka ʻana i ka ʻōnaehana me ka "mitigations = off" parameter, ʻo ka manawa hoʻokō o "rr sources" me ka ʻole o ka hoʻonui ʻia ʻana he 2 mau minuke 5 kekona (1.6 mau manawa wikiwiki), a me ka optimization ʻo 33 kekona (9% wikiwiki). ʻO ka mea e mahalo ai, ʻaʻole i hōʻemi wale ka pale ʻana o Specter i ka manawa hoʻokō code ma ka pae kernel e 1.4 mau manawa (mai 2m9s a 1m32s), akā ua hoʻemi ʻia ka manawa hoʻokō ma kahi o ka mea hoʻohana (mai 1m9s a 0m33s), ma muli paha o ka emi ʻana o ka hana cache CPU a me TLB. hoʻihoʻi hou i ka wā e hiki ai ka pale Spectre.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka