ื”ืชืงืคื” ืขืœ Intel SGX ื›ื“ื™ ืœื—ืœืฅ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืื• ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืžื•ื‘ืœืขืช

ื—ื•ืงืจื™ื ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ื”ื”ื’ื ื” ืœืžื“ืข ื•ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืœ ืฆื‘ื ื”ืฉื—ืจื•ืจ ื”ืขืžืžื™ ืฉืœ ืกื™ืŸ, ื”ืื•ื ื™ื‘ืจืกื™ื˜ื” ื”ืœืื•ืžื™ืช ืฉืœ ืกื™ื ื’ืคื•ืจ ื•-ETH ืฆื™ืจื™ืš ืคื™ืชื—ื• ืฉื™ื˜ืช ื”ืชืงืคื” ื—ื“ืฉื” ื ื’ื“ ืžื•ื‘ืœืขื•ืช ืžื‘ื•ื“ื“ื•ืช ืฉืœ Intel SGX (Software Guard eXtensions). ื”ืžืชืงืคื” ื ืงืจืื” SmashEx ื•ื ื’ืจืžื” ืžื‘ืขื™ื•ืช ื›ื ื™ืกื” ื—ื•ื–ืจื•ืช ื‘ื˜ื™ืคื•ืœ ื‘ื—ืจื™ื’ื™ื ื‘ืžื”ืœืš ืคืขื•ืœืช ืจื›ื™ื‘ื™ ื–ืžืŸ ืจื™ืฆื” ืขื‘ื•ืจ Intel SGX. ืฉื™ื˜ืช ื”ืชืงื™ืคื” ื”ืžื•ืฆืขืช ืžืืคืฉืจืช, ืื ื™ืฉ ืฉืœื™ื˜ื” ืขืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”, ืœืงื‘ื•ืข ื ืชื•ื ื™ื ืกื•ื“ื™ื™ื ื”ื ืžืฆืื™ื ื‘ืžื•ื‘ืœืขืช, ืื• ืœืืจื’ืŸ ื”ืขืชืงื” ืฉืœ ื”ืงื•ื“ ืœื–ื™ื›ืจื•ืŸ ื”ืžื•ื‘ืœืขืช ื•ื‘ื™ืฆื•ืขื•.

ืื‘ื•ืช ื˜ื™ืคื•ืก ืฉืœ ื ื™ืฆื•ืœ ื”ื•ื›ื ื• ืขื‘ื•ืจ ืžื•ื‘ืœืขื•ืช ื–ืžืŸ ืจื™ืฆื” ื”ืžื‘ื•ืกืกื•ืช ืขืœ Intel SGX SDK (CVE-2021-0186) ื•-Microsoft Open Enclave (CVE-2021-33767). ื‘ืžืงืจื” ื”ืจืืฉื•ืŸ, ื”ื•ื›ื—ื” ื”ื™ื›ื•ืœืช ืœื—ืœืฅ ืืช ืžืคืชื— ื”-RSA ื”ืžืฉืžืฉ ื‘ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืขื‘ื•ืจ HTTPS, ื•ื‘ืžืงืจื” ื”ืฉื ื™, ื ื™ืชืŸ ื”ื™ื” ืœืงื‘ื•ืข ืืช ื”ืชื•ื›ืŸ ืฉื”ืชืงื‘ืœ ืขืœ ื™ื“ื™ ื›ืœื™ ื”ืฉื™ืจื•ืช cURL ื”ืคื•ืขืœ ื‘ืชื•ืš ื”ืžื•ื‘ืœืขืช. ื”ืคื’ื™ืขื•ืช ื›ื‘ืจ ืชื•ืงื ื” ื‘ืื•ืคืŸ ืคืจื•ื’ืจืžื˜ื™ ื‘ืžื”ื“ื•ืจื•ืช Intel SGX SDK 2.13 ื•-Open Enclave 0.17.1. ื‘ื ื•ืกืฃ ืœ-Intel SGX SDK ื•-Microsoft Open Enclave, ื”ืคื’ื™ืขื•ืช ืžื•ืคื™ืขื” ื’ื ื‘-Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ื•-Veracruz.

ื ื–ื›ื™ืจ ื›ื™ ื˜ื›ื ื•ืœื•ื’ื™ื™ืช SGX (Software Guard Extensions) ื”ื•ืคื™ืขื” ื‘ื“ื•ืจ ื”ืฉื™ืฉื™ ืฉืœ ืžืขื‘ื“ื™ Intel Core (Skylake) ื•ืžืฆื™ืขื” ืกื“ืจืช ื”ื•ืจืื•ืช ื”ืžืืคืฉืจื•ืช ืœืืคืœื™ืงืฆื™ื•ืช ื‘ืจืžืช ื”ืžืฉืชืžืฉ ืœื”ืงืฆื•ืช ืื–ื•ืจื™ ื–ื™ื›ืจื•ืŸ ืกื’ื•ืจื™ื - ืžื•ื‘ืœืขื•ืช ืฉืœื ื ื™ืชืŸ ืœืงืจื•ื ื•ืœืฉื ื•ืช ืืช ืชื•ื›ื ืŸ ืืคื™ืœื• ืขืœ ื™ื“ื™ ืœื™ื‘ื” ื•ืงื•ื“ ืžื‘ื•ืฆืขื™ื ืขืœ ื™ื“ื™ ื‘ืžืฆื‘ื™ ring0, SMM ื•-VMM. ืื™ ืืคืฉืจ ืœื”ืขื‘ื™ืจ ืฉืœื™ื˜ื” ืœืงื•ื“ ื‘ืžื•ื‘ืœืขืช ื‘ืืžืฆืขื•ืช ืคื•ื ืงืฆื™ื•ืช ืงืคื™ืฆื” ืžืกื•ืจืชื™ื•ืช ื•ืžื ื™ืคื•ืœืฆื™ื•ืช ืขื ืจื’ื™ืกื˜ืจื™ื ื•ื”ืžื—ืกื ื™ืช - ื”ื•ืจืื•ืช ื—ื“ืฉื•ืช ืฉื ื•ืฆืจื• ื‘ืžื™ื•ื—ื“ EENTER, EEXIT ื•-ERESUME ืžืฉืžืฉื•ืช ืœื”ืขื‘ืจืช ืฉืœื™ื˜ื” ืœืžื•ื‘ืœืขืช, ื”ืžื‘ืฆืขื•ืช ื‘ื“ื™ืงื•ืช ื”ืจืฉืื•ืช. ื‘ืžืงืจื” ื–ื”, ื”ืงื•ื“ ื”ืžื•ืฆื‘ ื‘ืžื•ื‘ืœืขืช ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ื”ืงืจื™ืื” ื”ืงืœืืกื™ื•ืช ื›ื“ื™ ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื•ืช ื‘ืชื•ืš ื”ืžื•ื‘ืœืขืช ื•ื”ื•ืจืื” ืžื™ื•ื—ื“ืช ืœื”ืชืงืฉืจ ืœืคื•ื ืงืฆื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช. ื”ืฆืคื ืช ื–ื™ื›ืจื•ืŸ ืžื•ื‘ืœืขืช ืžืฉืžืฉืช ืœื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช ื—ื•ืžืจื” ื›ื’ื•ืŸ ื—ื™ื‘ื•ืจ DRAM.

ื”ืชืงืคื” ืขืœ Intel SGX ื›ื“ื™ ืœื—ืœืฅ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืื• ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืžื•ื‘ืœืขืช

ื”ื‘ืขื™ื” ื”ื™ื ืฉื˜ื›ื ื•ืœื•ื’ื™ื™ืช SGX ืžืืคืฉืจืช ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืœื”ืคืจื™ืข ืœื‘ื™ืฆื•ืข ื”ืžื•ื‘ืœืขืช ืขืœ ื™ื“ื™ ื–ืจื™ืงืช ื—ืจื™ื’ ื—ื•ืžืจื”, ื•ืžื•ื‘ืœืขื•ืช ืื™ื ืŸ ืžื™ื™ืฉืžื•ืช ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื›ืจืื•ื™ ืœื˜ื™ืคื•ืœ ืื˜ื•ืžื™ ื‘ื—ืจื™ื’ื™ื ื›ืืœื”. ืฉืœื ื›ืžื• ื”ืœื™ื‘ื” ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื•ื™ื™ืฉื•ืžื™ื ืจื’ื™ืœื™ื, ืœืงื•ื“ ื‘ืชื•ืš ื”ืžื•ื‘ืœืขื•ืช ืื™ืŸ ื’ื™ืฉื” ืœืคืจื™ืžื™ื˜ื™ื‘ื™ื ืœืืจื’ื•ืŸ ืคืขื•ืœื•ืช ืื˜ื•ืžื™ื•ืช ื‘ืžื”ืœืš ื”ื˜ื™ืคื•ืœ ื‘ื—ืจื™ื’ื™ื ืฉื”ื•ืขืœื• ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™. ืœืœื ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื”ืื˜ื•ืžื™ื™ื ืฉืฆื•ื™ื ื•, ื ื™ืชืŸ ืœื”ืคืกื™ืง ืืช ื”ืžื•ื‘ืœืขืช ื•ืœื”ื—ื–ื™ืจ ืื•ืชื” ืœื‘ื™ืฆื•ืข ื‘ื›ืœ ืขืช, ื’ื ื‘ื–ืžื ื™ื ืฉื‘ื”ื ืงื˜ืขื™ื ืงืจื™ื˜ื™ื™ื ืžื‘ื•ืฆืขื™ื ื‘ืžื•ื‘ืœืขืช ื•ื”ื™ื ื‘ืžืฆื‘ ืœื ื‘ื˜ื•ื— (ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืื•ื’ืจื™ CPU ืื™ื ื ื ืฉืžืจื™ื/ืฉื•ื—ื–ืจื•) .

ื”ืชืงืคื” ืขืœ Intel SGX ื›ื“ื™ ืœื—ืœืฅ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืื• ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืžื•ื‘ืœืขืช

ืขื‘ื•ืจ ืคืขื•ืœื” ืจื’ื™ืœื”, ื˜ื›ื ื•ืœื•ื’ื™ื™ืช SGX ืžืืคืฉืจืช ืœืš ืœื”ืคืจื™ืข ืœื‘ื™ืฆื•ืข ื”ืžื•ื‘ืœืขืช ืขื ื—ืจื™ื’ื™ื ืœื”ื’ื“ืจื”. ืชื›ื•ื ื” ื–ื• ืžืืคืฉืจืช ืœื–ืžื ื™ ืจื™ืฆื” ืžื•ื‘ืœืขืช ืœื™ื™ืฉื ื˜ื™ืคื•ืœ ื—ืจื™ื’ื™ื ืชื•ืš-ืžื•ื‘ืœืขืช ืื• ื˜ื™ืคื•ืœ ื‘ืื•ืชื•ืช, ืืš ื”ื™ื ื™ื›ื•ืœื” ื’ื ืœื”ืฆื™ื’ ืฉื’ื™ืื•ืช ื›ื ื™ืกื” ื—ื•ื–ืจืช. ืžืชืงืคืช SmashEx ืžื‘ื•ืกืกืช ืขืœ ื ื™ืฆื•ืœ ืคื’ืžื™ื ื‘-SDK ืฉื‘ื’ืœืœื ืžืฆื‘ ื”ืงืจื™ืื” ืžื—ื“ืฉ ืฉืœ ื”ืžื˜ืคืœ ื”ื—ืจื™ื’ื™ื ืื™ื ื• ืžื˜ื•ืคืœ ื›ืจืื•ื™. ื—ืฉื•ื‘ ืฉื›ื“ื™ ืœื ืฆืœ ืืช ื”ืคื’ื™ืขื•ืช, ืขืœ ื”ืชื•ืงืฃ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื”ืคืจื™ืข ืœื‘ื™ืฆื•ืข ื”ืžื•ื‘ืœืขืช, ื›ืœื•ืžืจ. ื—ื™ื™ื‘ ืœืฉืœื•ื˜ ืขืœ ืคืขื•ืœืช ืกื‘ื™ื‘ืช ื”ืžืขืจื›ืช.

ืœืื—ืจ ื–ืจื™ืงืช ื—ืจื™ื’ื”, ื”ืชื•ืงืฃ ืžืงื‘ืœ ื—ืœื•ืŸ ื–ืžืŸ ืงื˜ืŸ ืฉื‘ืžื”ืœื›ื• ื ื™ืชืŸ ืœื™ื™ืจื˜ ืืช ื–ืจื™ืžืช ื”ื‘ื™ืฆื•ืข ื‘ืืžืฆืขื•ืช ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืคืจืžื˜ืจื™ ื”ืงืœื˜. ื‘ืคืจื˜, ืื ื™ืฉ ืœืš ื’ื™ืฉื” ืœืžืขืจื›ืช (ืกื‘ื™ื‘ื” ืžื—ื•ืฅ ืœืžื•ื‘ืœืขืช), ืชื•ื›ืœ ืœื™ืฆื•ืจ ื—ืจื™ื’ื” ื—ื“ืฉื” ืžื™ื“ ืœืื—ืจ ื‘ื™ืฆื•ืข ื”ื”ื•ืจืื” ืœื”ื™ื›ื ืก ืœืžื•ื‘ืœืขืช (EENTER), ืฉืชื—ื–ื™ืจ ืืช ื”ืฉืœื™ื˜ื” ืœืžืขืจื›ืช ื‘ืฉืœื‘ ืฉื‘ื• ืชืฆื•ืจืช ื”ืžื—ืกื ื™ืช ืขื‘ื•ืจ ื”ืžื•ื‘ืœืขืช ื˜ืจื ื”ื•ืฉืœืžื”, ืฉื‘ื” ืžืกืคืจ ื–ื” ืžืื—ืกืŸ ืืช ืžืฆื‘ ืื•ื’ืจื™ ื”-CPU.

ืœืื—ืจ ืžื›ืŸ ื”ืžืขืจื›ืช ื™ื›ื•ืœื” ืœื”ื—ื–ื™ืจ ืืช ื”ืฉืœื™ื˜ื” ื‘ื—ื–ืจื” ืœืžื•ื‘ืœืขืช, ืืš ืžื›ื™ื•ื•ืŸ ืฉื”ืžื—ืกื ื™ืช ืœื ื”ื•ื’ื“ืจื” ื‘ื–ืžืŸ ื”ื”ืคืจืขื”, ื”ืžื•ื‘ืœืขืช ืชืชื‘ืฆืข ื›ืฉื”ืžื—ืกื ื™ืช ื ืžืฆืืช ื‘ื–ื™ื›ืจื•ืŸ ื”ืžืขืจื›ืช, ืืฉืจ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ื›ื“ื™ ืœื”ื—ื™ืœ ืชื›ื ื•ืช ืžื•ื ื—ื” ื—ื–ืจื” (ROP ) ื˜ื›ื ื™ืงื•ืช. ืชื›ื ื•ืช ืžื›ื•ื•ืŸ). ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื˜ื›ื ื™ืงืช ROP, ื”ืชื•ืงืฃ ืื™ื ื• ืžื ืกื” ืœืžืงื ืืช ื”ืงื•ื“ ืฉืœื• ื‘ื–ื™ื›ืจื•ืŸ, ืืœื ืคื•ืขืœ ืขืœ ืคื™ืกื•ืช ื”ื•ืจืื•ืช ื”ืžื›ื•ื ื” ืฉื›ื‘ืจ ื–ืžื™ื ื•ืช ื‘ืกืคืจื™ื•ืช ื”ื˜ืขื•ื ื•ืช, ื•ืžืกืชื™ื™ืžื•ืช ื‘ื”ื•ืจืื” ืœื”ื—ื–ืจืช ื‘ืงืจื” (ื›ื›ืœืœ, ืืœื• ื”ื ื”ืกื™ื•ืžื™ื ืฉืœ ื”ืกืคืจื™ื™ื” ืคื•ื ืงืฆื™ื•ืช). ืคืขื•ืœืช ื”ื ื™ืฆื•ืœ ืžืกืชื›ืžืช ื‘ื‘ื ื™ื™ืช ืฉืจืฉืจืช ืงืจื™ืื•ืช ืœื‘ืœื•ืงื™ื ื“ื•ืžื™ื ("ื’ืื“ื’'ื˜ื™ื") ื›ื“ื™ ืœื”ืฉื™ื’ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืจืฆื•ื™ื”.

ื”ืชืงืคื” ืขืœ Intel SGX ื›ื“ื™ ืœื—ืœืฅ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืื• ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืžื•ื‘ืœืขืช
ื”ืชืงืคื” ืขืœ Intel SGX ื›ื“ื™ ืœื—ืœืฅ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืื• ืœื”ืคืขื™ืœ ืงื•ื“ ื‘ืžื•ื‘ืœืขืช


ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”