Hoʻouka iā Intel SGX e unuhi i ka ʻikepili koʻikoʻi a i ʻole e hoʻokō i ke code i loko o ka enclave

Ua hoʻomohala nā mea noiʻi mai ka People's Liberation Army Defense Science and Technology University, National University of Singapore a me ETH Zurich i kahi ala hou e hoʻouka ai i nā enclaves kaʻawale Intel SGX (Software Guard eXtensions). Ua kapa ʻia ka hoʻouka ʻana ʻo SmashEx a ua hoʻokumu ʻia e nā pilikia me ke komo hou ʻana i ka wā e lawelawe ana i nā kūlana ʻokoʻa i ka wā o ka hana ʻana o nā ʻāpana runtime no Intel SGX. ʻO ke ʻano hoʻouka kaua i manaʻo ʻia e hiki ai, inā loaʻa iā ʻoe ka mana o ka ʻōnaehana hana, e hoʻoholo i ka ʻikepili huna i loko o ka enclave, a i ʻole e hoʻonohonoho i ke kope ʻana o kāu code i loko o ka hoʻomanaʻo o ka enclave a me kāna hoʻokō.

Ua hoʻomākaukau ʻia nā prototypes Exploit no nā enclaves me ka runtime e pili ana i ka Intel SGX SDK (CVE-2021-0186) a me Microsoft Open Enclave (CVE-2021-33767). I ka hihia mua, ua hōʻike ʻia ka hiki ke unuhi i kahi kī RSA i hoʻohana ʻia ma kahi kikowaena pūnaewele no HTTPS, a i ka lua, ua hiki ke hoʻoholo i ka ʻike i loaʻa i ka pono cURL e holo ana i loko o ka enclave. Ua hoʻopuka mua ʻia ka nāwaliwali ma ka papahana ma nā hoʻokuʻu ʻana o Intel SGX SDK 2.13 a me Open Enclave 0.17.1. Ma waho aʻe o ka Intel SGX SDK a me Microsoft Open Enclave, ʻike ʻia ka nāwaliwali ma ka Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX a me Veracruz.

E hoʻomanaʻo mākou ua ʻike ʻia ka ʻenehana SGX (Software Guard Extensions) i ke ono o nā hanauna Intel Core processors (Skylake) a hāʻawi i kahi ʻano o nā ʻōlelo aʻoaʻo e hiki ai i nā noi pae hoʻohana ke hoʻokaʻawale i nā wahi hoʻomanaʻo paʻa - nā enclaves, ʻaʻole hiki ke heluhelu ʻia nā mea i loko. hoʻololi ʻia e ka kernel a me ke code i hoʻokō ʻia ma nā ʻano ring0, SMM a me VMM. ʻAʻole hiki ke hoʻololi i ka mana i ke code i loko o ka enclave me ka hoʻohana ʻana i nā hana lele kuʻuna a me nā manipulations me nā papa inoa a me ka hoʻopaʻa ʻana - hoʻohana kūikawā ʻia nā ʻōlelo kuhikuhi hou EENTER, EEXIT a me ERESUME e hoʻololi i ka mana i ka enclave, e hana ana i nā loiloi mana. I kēia hihia, hiki i ke code i hoʻokomo ʻia i loko o ka enclave ke hoʻohana i nā ʻano kelepona maʻamau e komo i nā hana i loko o ka enclave a me nā ʻōlelo kuhikuhi kūikawā e kāhea i nā hana o waho. Hoʻohana ʻia ka hoʻopunipuni hoʻomanaʻo Enclave e pale aku i nā hoʻouka kaua e like me ka hoʻopili ʻana i kahi module DRAM.

Hoʻouka iā Intel SGX e unuhi i ka ʻikepili koʻikoʻi a i ʻole e hoʻokō i ke code i loko o ka enclave

ʻO ka pilikia, ʻo ka ʻenehana SGX ka mea e hiki ai i ka ʻōnaehana hana ke hoʻopau i kahi enclave ma ke kiola ʻana i kahi ʻokoʻa lako, a ʻaʻole hoʻokō pono nā enclaves i nā primitives no ka lawelawe ʻana i kēlā mau ʻokoʻa. ʻAʻole like me ka kernel system operating system a me nā noi maʻamau, ʻaʻole i loaʻa ka code i loko o nā enclaves i nā primitives no ka hoʻonohonoho ʻana i nā hana atomic i ka wā e lawelawe ai i nā ʻokoʻa i hoʻolei ʻia asynchronously. Me ka ʻole o nā kumu mua atomic i ʻōlelo ʻia, hiki ke hoʻopau ʻia ka enclave i kēlā me kēia manawa a hoʻihoʻi ʻia i ka hoʻokō, ʻoiai i nā manawa ke hoʻokō nei ka enclave i nā ʻāpana koʻikoʻi a aia i kahi kūlana palekana (no ka laʻana, ke mālama ʻole ʻia nā papa inoa CPU).

Hoʻouka iā Intel SGX e unuhi i ka ʻikepili koʻikoʻi a i ʻole e hoʻokō i ke code i loko o ka enclave

No ka hana maʻamau, ʻae ka ʻenehana SGX i ka hoʻokō ʻana o ka enclave e hoʻopau ʻia e nā ʻokoʻa lako lako. Hāʻawi kēia hiʻona i nā kaiapuni runtime enclave e hoʻokō i ka lawelawe ʻokoʻa intra-enclave a i ʻole ka hana hōʻailona, ​​​​akā hiki iā ia ke hana i nā hewa reentrant. Hoʻokumu ʻia ka hoʻouka ʻana o SmashEx ma ka hoʻohana ʻana i nā hemahema i ka SDK ma muli o ke ʻano o ke kāhea hou ʻana i ka mea lawelawe ʻokoʻa ʻaʻole i mālama pono ʻia. He mea nui e hoʻohana i ka nāwaliwali, pono i ka mea hoʻouka ke hiki ke hoʻopau i ka hoʻokō ʻana o ka enclave, ʻo ia hoʻi. pono e hoʻomalu i ka hana o ke kaiapuni ʻōnaehana.

Ma hope o ka hoʻolei ʻana i kahi ʻokoʻa, loaʻa ka mea hoʻouka i kahi puka makani liʻiliʻi i ka manawa e hiki ke hoʻopaʻa ʻia ke kaula hoʻokō ma o ka hoʻopunipuni ʻana i nā ʻāpana hoʻokomo. ʻO ka mea nui, inā hiki iā ʻoe ke komo i ka ʻōnaehana (ka puni ma waho o ka enclave), hiki iā ʻoe ke hana i kahi ʻokoʻa hou ma hope koke o ka hoʻokō ʻana i ke aʻo ʻana i ka enclave entry (EENTER), ka mea e hoʻihoʻi i ka mana i ka ʻōnaehana ma kahi pae i ka hoʻonohonoho ʻana o ka waihona no ka ʻaʻole i hoʻopau ʻia ka enclave, kahi i mālama ʻia ai ka mokuʻāina o nā papa inoa CPU.

Hiki i ka ʻōnaehana ke hoʻihoʻi i ka mana i ka enclave, akā no ka mea ʻaʻole i hoʻonohonoho ʻia ka hoʻopaʻa ʻana o ka enclave i ka manawa o ka hoʻopau ʻana, e hoʻokō ka enclave me ka waihona e noho ana i ka hoʻomanaʻo ʻōnaehana, hiki ke hoʻohana ʻia e hoʻohana i ka hoʻolālā hoʻihoʻi (ROP). ) nā ʻenehana hoʻohana. Oriented Programming). I ka hoʻohana ʻana i ka ʻenehana ROP, ʻaʻole hoʻāʻo ka mea hoʻouka e kau i kāna code i ka hoʻomanaʻo, akā hana ia ma nā ʻāpana o nā ʻōkuhi mīkini i loaʻa i nā hale waihona puke i hoʻouka ʻia, e hoʻopau ana me ke aʻo hoʻihoʻi mana (e like me ke kānāwai, ʻo ia ka hopena o nā hana waihona). . Hoʻomaka ka hana o ka hoʻohana ʻana i ke kūkulu ʻana i ke kaulahao o nā kelepona i nā poloka like ("gadgets") e loaʻa ai ka hana i makemake ʻia.

Hoʻouka iā Intel SGX e unuhi i ka ʻikepili koʻikoʻi a i ʻole e hoʻokō i ke code i loko o ka enclave
Hoʻouka iā Intel SGX e unuhi i ka ʻikepili koʻikoʻi a i ʻole e hoʻokō i ke code i loko o ka enclave


Source: opennet.ru

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