Ua noi ʻia kahi ala hoʻouka e hoʻoholo mamao i nā ʻāpana hoʻomanaʻo ma ke kikowaena

ʻO kahi hui o nā mea noiʻi mai ke Kulanui ʻenehana o Graz (Austria), i ʻike mua ʻia no ka hoʻomohala ʻana i ka MDS, NetSpectre, Throwhammer a me ZombieLoad attacks, ua paʻi i kahi ala hoʻouka ʻaoʻao hou (CVE-2021-3714) e kūʻē i ka mīkini Memory-Deduplication. , ka mea e hiki ai ke hoʻoholo i ka noho ʻana o ka hoʻomanaʻo ʻana i kekahi mau ʻikepili, hoʻonohonoho i ka leak byte-by-byte o nā mea hoʻomanaʻo, a i ʻole ka hoʻoholo ʻana i ka hoʻonohonoho hoʻomanaʻo e kāʻalo i ka pale ʻana i ka address-based randomization (ASLR). He ʻokoʻa ke ʻano hou mai nā ʻano like ʻole i hōʻike mua ʻia ma ka mīkini hoʻokaʻawale ʻana ma o ka hoʻokō ʻana i kahi hoʻouka ʻana mai kahi pūʻali o waho e hoʻohana ana i ka hoʻololi ʻana i ka manawa pane i nā noi i hoʻouna ʻia i ka mea hoʻouka ma o nā protocol HTTP/1 a me HTTP/2. Ua hōʻike ʻia ka hiki ke hoʻokō i ka hoʻouka ʻana no nā kikowaena e pili ana i Linux a me Windows.

Hoʻohana ka hoʻouka ʻana i ka mīkini hoʻokaʻawale hoʻomanaʻo i ka ʻokoʻa o ka manawa hana o kahi hana kākau ma ke ʻano he ala e hoʻokahe i ka ʻike i nā kūlana kahi e hoʻololi ai i ka ʻikepili e alakaʻi i ka cloning o kahi ʻaoʻao hoʻomanaʻo deduplicated me ka hoʻohana ʻana i ka mīkini Copy-On-Write (COW). . I ka wā o ka hana, ʻike ka kernel i nā ʻaoʻao hoʻomanaʻo like ʻole mai nā kaʻina like ʻole a hoʻohui iā lākou, ka palapala ʻana i nā ʻaoʻao hoʻomanaʻo like i loko o kahi wahi o ka hoʻomanaʻo kino e mālama i hoʻokahi kope. Ke ho'āʻo kekahi o nā kaʻina hana e hoʻololi i ka ʻikepili e pili ana i nā ʻaoʻao deduplicated, loaʻa kahi ʻokoʻa (ʻaoʻao hewa) a, me ka hoʻohana ʻana i ke ʻano Copy-on-Write, hana ʻia kahi kope ʻokoʻa o ka ʻaoʻao hoʻomanaʻo, i hāʻawi ʻia i ke kaʻina hana. Hoʻopau ʻia ka manawa hou no ka hoʻopau ʻana i ke kope, he hōʻailona paha ia o nā loli ʻikepili e hoʻopilikia ana i kahi kaʻina hana ʻē aʻe.

Ua hōʻike ka poʻe noiʻi e hiki ke hopu ʻia nā lohi i loaʻa mai ka mīkini COW ʻaʻole ma ka ʻāina wale nō, akā ma o ka nānā ʻana hoʻi i nā loli i nā manawa hāʻawi pane ma luna o ka pūnaewele. Ua noi ʻia kekahi mau ala no ka hoʻoholo ʻana i nā ʻike o ka hoʻomanaʻo mai kahi host mamao ma o ka nānā ʻana i ka manawa hoʻokō o nā noi ma luna o nā protocols HTTP/1 a me HTTP/2. No ka mālama ʻana i nā mamana i koho ʻia, hoʻohana ʻia nā noi pūnaewele maʻamau e mālama i ka ʻike i loaʻa i nā noi i ka hoʻomanaʻo.

ʻO ke kumu nui o ka hoʻouka kaua e hoʻopiha i kahi ʻaoʻao hoʻomanaʻo ma ke kikowaena me nā ʻikepili e hiki ke hana hou i nā ʻike o kahi ʻaoʻao hoʻomanaʻo i loaʻa ma ke kikowaena. A laila kali ka mea hoʻouka i ka manawa i koi ʻia no ka kernel e hoʻokaʻawale a hoʻohui i ka ʻaoʻao hoʻomanaʻo, a laila hoʻololi i ka ʻikepili pālua i hoʻomalu ʻia a loiloi i ka manawa pane e hoʻoholo ai inā ua kūleʻa ka pā.

Ua noi ʻia kahi ala hoʻouka e hoʻoholo mamao i nā ʻāpana hoʻomanaʻo ma ke kikowaena

I ka wā o nā hoʻokolohua, ʻo 34.41 bytes ka nui o ka leakage ʻike i kēlā me kēia hola i ka wā e hoʻouka ai ma o ka pūnaewele puni honua a me 302.16 bytes i kēlā me kēia hola i ka wā e hoʻouka ai ma o kahi pūnaewele kūloko, ʻoi aku ka wikiwiki ma mua o nā ʻano hana ʻē aʻe o ka unuhi ʻana i ka ʻikepili ma o nā kahawai ʻaoʻao ʻekolu (no ka laʻana, i ka hoʻouka kaua NetSpectre, he 7.5 bytes ka helu hoʻoili ʻikepili i ka hola hoʻokahi).

ʻEkolu mau koho hoʻouka kaua i hāpai ʻia. ʻO ka koho mua e hiki ai iāʻoe ke hoʻoholo i kaʻikepili i ka hoʻomanaʻo o ka pūnaewele pūnaewele e hoʻohana ana iā Memcached. Hoʻomaka ka hoʻouka ʻana i ka hoʻouka ʻana i kekahi mau pūʻulu ʻikepili i loko o ka waihona Memcached, hoʻomaʻemaʻe i ka poloka deduplicated, kākau hou i ka mea like a hana i kahi kūlana no ke kope ʻana o COW e hana ma ka hoʻololi ʻana i nā mea o ka poloka. I ka wā o ka hoʻokolohua me Memcached, ua hiki ke hoʻoholo ma 166.51 kekona i ka mana o libc i hoʻokomo ʻia ma kahi ʻōnaehana e holo ana i kahi mīkini virtual.

ʻO ka lua o ka koho i hiki ai ke ʻike i nā ʻike o nā moʻolelo i ka MariaDB DBMS, i ka wā e hoʻohana ai i ka waiho ʻana o InnoDB, ma ka hana hou ʻana i nā kikoo byte byte. Hoʻokō ʻia ka hoʻouka ʻana ma o ka hoʻouna ʻana i nā noi i hoʻololi kūikawā ʻia, ka hopena i nā mismatches hoʻokahi-byte i nā ʻaoʻao hoʻomanaʻo a me ka nānā ʻana i ka manawa pane e hoʻoholo ai ua pololei ka manaʻo e pili ana i nā mea o ka byte. He haʻahaʻa ka nui o ia leak a hiki i ka 1.5 bytes i kēlā me kēia hola ke hoʻouka ʻia mai kahi pūnaewele kūloko. ʻO ka maikaʻi o ke ala ʻo ia ke hoʻohana ʻia e hoʻihoʻi i nā ʻike hoʻomanaʻo ʻike ʻole.

ʻO ke kolu o ka koho i hiki ai ke kāʻalo loa i ka mīkini pale KASLR i 4 mau minuke a loaʻa ka ʻike e pili ana i ka hoʻomanaʻo hoʻomanaʻo o ke kiʻi kernel mīkini virtual, i kahi kūlana i loaʻa ai ka helu offset i kahi ʻaoʻao hoʻomanaʻo i loli ʻole ai nā ʻikepili ʻē aʻe. Ua hoʻokō ʻia ka hoʻouka ʻana mai kahi pūʻali koa i loaʻa he 14 hops mai ka ʻōnaehana hoʻouka ʻia. Ua hoʻohiki ʻia nā hiʻohiʻona code no ka hoʻokō ʻana i nā hōʻeha i hōʻike ʻia e paʻi ʻia ma GitHub.

Source: opennet.ru

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