ఎన్‌క్లేవ్‌లో సున్నితమైన డేటాను సంగ్రహించడానికి లేదా కోడ్‌ని అమలు చేయడానికి Intel SGXపై దాడి చేయండి

పీపుల్స్ లిబరేషన్ ఆర్మీ డిఫెన్స్ సైన్స్ అండ్ టెక్నాలజీ యూనివర్శిటీ, నేషనల్ యూనివర్శిటీ ఆఫ్ సింగపూర్ మరియు ETH జూరిచ్‌ల పరిశోధకులు ఇంటెల్ SGX (సాఫ్ట్‌వేర్ గార్డ్ ఎక్స్‌టెన్షన్స్) వివిక్త ఎన్‌క్లేవ్‌లపై దాడి చేసే కొత్త పద్ధతిని అభివృద్ధి చేశారు. దాడిని స్మాష్‌ఎక్స్ అని పిలుస్తారు మరియు ఇంటెల్ SGX కోసం రన్‌టైమ్ భాగాల ఆపరేషన్ సమయంలో మినహాయింపు పరిస్థితులను నిర్వహించేటప్పుడు తిరిగి ప్రవేశించడంలో సమస్యల వల్ల సంభవిస్తుంది. ప్రతిపాదిత దాడి పద్ధతి మీకు ఆపరేటింగ్ సిస్టమ్‌పై నియంత్రణ ఉంటే, ఎన్‌క్లేవ్‌లో ఉన్న గోప్యమైన డేటాను గుర్తించడం లేదా మీ కోడ్‌ని ఎన్‌క్లేవ్ మెమరీలోకి కాపీ చేయడం మరియు దాని అమలును నిర్వహించడం సాధ్యమవుతుంది.

Intel SGX SDK (CVE-2021-0186) మరియు Microsoft Open Enclave (CVE-2021-33767) ఆధారంగా రన్‌టైమ్‌తో ఎన్‌క్లేవ్‌ల కోసం ఎక్స్‌ప్లోయిట్ ప్రోటోటైప్‌లు సిద్ధం చేయబడ్డాయి. మొదటి సందర్భంలో, HTTPS కోసం వెబ్ సర్వర్‌లో ఉపయోగించిన RSA కీని సంగ్రహించే సామర్థ్యం ప్రదర్శించబడింది మరియు రెండవది, ఎన్‌క్లేవ్‌లో నడుస్తున్న cURL యుటిలిటీ ద్వారా పొందిన కంటెంట్‌ను గుర్తించడం సాధ్యమైంది. Intel SGX SDK 2.13 మరియు ఓపెన్ ఎన్‌క్లేవ్ 0.17.1 విడుదలలలో ఈ దుర్బలత్వం ఇప్పటికే ప్రోగ్రామాటిక్‌గా పరిష్కరించబడింది. Intel SGX SDK మరియు Microsoft Open Enclave లతో పాటు, Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX మరియు వెరాక్రూజ్‌లలో కూడా దుర్బలత్వం కనిపిస్తుంది.

SGX (సాఫ్ట్‌వేర్ గార్డ్ ఎక్స్‌టెన్షన్స్) సాంకేతికత ఆరవ తరం ఇంటెల్ కోర్ ప్రాసెసర్‌లలో (స్కైలేక్) కనిపించిందని మరియు క్లోజ్డ్ మెమరీ ప్రాంతాలను కేటాయించడానికి వినియోగదారు-స్థాయి అప్లికేషన్‌లను అనుమతించే సూచనల శ్రేణిని అందజేస్తుందని గుర్తు చేద్దాం - ఎన్‌క్లేవ్‌లు, వీటిలో కంటెంట్‌లు చదవలేవు మరియు కెర్నల్ ద్వారా కూడా సవరించబడింది మరియు 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

ఒక వ్యాఖ్యను జోడించండి