Retbleed అనేది Intel మరియు AMD CPUల ఊహాజనిత అమలు విధానంపై కొత్త దాడి

ETH జ్యూరిచ్‌లోని పరిశోధకుల బృందం CPUలో పరోక్ష పరివర్తనల ఊహాజనిత అమలు విధానంపై కొత్త దాడిని గుర్తించింది, ఇది కెర్నల్ మెమరీ నుండి సమాచారాన్ని సంగ్రహించడం లేదా వర్చువల్ మెషీన్‌ల నుండి హోస్ట్ సిస్టమ్‌పై దాడిని నిర్వహించడం సాధ్యం చేస్తుంది. దుర్బలత్వాలు రెట్‌బ్లీడ్ (CVE-2022-29900, CVE-2022-29901) అనే కోడ్‌నేమ్ చేయబడ్డాయి మరియు అవి స్పెక్టర్-v2 దాడులకు దగ్గరగా ఉంటాయి. "ret" (రిటర్న్) సూచనలను ప్రాసెస్ చేస్తున్నప్పుడు ఏకపక్ష కోడ్ యొక్క ఊహాజనిత అమలు యొక్క సంస్థకు తేడా వస్తుంది, ఇది స్టాక్ నుండి దూకడానికి చిరునామాను పొందుతుంది, బదులుగా "jmp" సూచనను ఉపయోగించి పరోక్ష జంప్‌కు బదులుగా చిరునామాను లోడ్ చేస్తుంది మెమరీ లేదా CPU రిజిస్టర్.

దాడి చేసే వ్యక్తి తప్పు పరివర్తన అంచనా కోసం పరిస్థితులను సృష్టించగలడు మరియు ప్రోగ్రామ్ అమలు తర్కం ద్వారా అందించబడని కోడ్ బ్లాక్‌కి లక్ష్యంగా, ఊహాజనిత పరివర్తనను నిర్వహించగలడు. అంతిమంగా, ప్రాసెసర్ బ్రాంచ్ ప్రిడిక్షన్ సమర్థించబడలేదని నిర్ధారిస్తుంది మరియు ఆపరేషన్‌ను దాని అసలు స్థితికి తిరిగి మారుస్తుంది, అయితే ఊహాజనిత అమలు సమయంలో ప్రాసెస్ చేయబడిన డేటా కాష్ మరియు మైక్రోఆర్కిటెక్చరల్ బఫర్‌లలో ముగుస్తుంది. తప్పుగా అమలు చేయబడిన బ్లాక్ మెమరీని యాక్సెస్ చేస్తే, దాని ఊహాజనిత అమలు వలన మెమరీ నుండి చదవబడిన డేటా షేర్డ్ కాష్‌లో డిపాజిట్ చేయబడుతుంది.

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

షరతులతో కూడిన మరియు పరోక్ష జంప్ సూచనలను ఉపయోగించే క్లాసిక్ స్పెక్టర్ క్లాస్ దాడుల నుండి రక్షించడానికి, చాలా ఆపరేటింగ్ సిస్టమ్‌లు "రెట్‌పోలిన్" టెక్నిక్‌ను ఉపయోగిస్తాయి, ఇది పరోక్ష జంప్ ఆపరేషన్‌లను "రెట్" సూచనతో భర్తీ చేయడంపై ఆధారపడి ఉంటుంది, దీని కోసం ప్రాసెసర్‌లు ప్రత్యేక స్టాక్ స్టేట్ ప్రిడిక్షన్ యూనిట్‌ను ఉపయోగిస్తాయి. . బ్రాంచ్ ప్రిడిక్షన్ బ్లాక్‌ని ఉపయోగించడం లేదు. 2018లో రెట్‌పోలిన్‌ని ప్రవేశపెట్టినప్పుడు, "రెట్" సూచనను ఉపయోగించి స్పెక్యులేటివ్ బ్రాంచింగ్ కోసం స్పెక్టర్-వంటి చిరునామా మానిప్యులేషన్‌లు ఆచరణాత్మకం కాదని నమ్ముతారు.

Retbleed దాడి పద్ధతిని అభివృద్ధి చేసిన పరిశోధకులు "ret" సూచనలను ఉపయోగించి ఊహాజనిత పరివర్తనను ప్రారంభించడానికి మైక్రోఆర్కిటెక్చరల్ పరిస్థితులను సృష్టించే అవకాశాన్ని ప్రదర్శించారు మరియు Linux కెర్నల్‌లోని దుర్బలత్వాన్ని ఉపయోగించుకోవడానికి తగిన సూచనల (గాడ్జెట్‌లు) క్రమాలను గుర్తించడానికి సిద్ధంగా ఉన్న సాధనాలను ప్రచురించారు. దీనిలో అటువంటి పరిస్థితులు వ్యక్తమవుతాయి.

పరిశోధన సమయంలో, ఇంటెల్ CPUలు ఉన్న సిస్టమ్‌లలో, సెకనుకు 219 బైట్ల వేగంతో మరియు 98% ఖచ్చితత్వంతో వినియోగదారు స్థలంలో ఒక అన్‌ప్రివిలేజ్డ్ ప్రాసెస్ నుండి కెర్నల్ మెమరీ నుండి ఏకపక్ష డేటాను సంగ్రహించడానికి అనుమతించే పని దోపిడీని సిద్ధం చేశారు. AMD ప్రాసెసర్‌లలో, దోపిడీ సామర్థ్యం చాలా ఎక్కువగా ఉంటుంది-లీక్ రేటు సెకనుకు 3.9 KB. ఆచరణాత్మక ఉదాహరణగా, /etc/shadow ఫైల్ యొక్క కంటెంట్‌లను గుర్తించడానికి ప్రతిపాదిత దోపిడీని ఎలా ఉపయోగించాలో మేము చూపుతాము. ఇంటెల్ CPUలు ఉన్న సిస్టమ్‌లపై, రూట్ యూజర్ పాస్‌వర్డ్ హాష్‌ని గుర్తించే దాడి 28 నిమిషాల్లో మరియు AMD CPUలు ఉన్న సిస్టమ్‌లపై 6 నిమిషాల్లో నిర్వహించబడుతుంది.

Q6 8కి ముందు (స్కైలేక్‌తో సహా) విడుదలైన ఇంటెల్ ప్రాసెసర్‌లలో 3-2019 తరాలకు దాడి నిర్ధారించబడింది మరియు Q1 1కి ముందు విడుదల చేయబడిన జెన్ 2, జెన్ 2021+ మరియు జెన్ 3 మైక్రోఆర్కిటెక్చర్‌ల ఆధారంగా AMD ప్రాసెసర్‌లు నిర్ధారించబడ్డాయి. AMD ZenXNUMX మరియు ఇంటెల్ ఆల్డర్ లేక్ వంటి కొత్త ప్రాసెసర్ మోడల్‌లలో, అలాగే ARM ప్రాసెసర్‌లలో, సమస్య ఇప్పటికే ఉన్న రక్షణ విధానాల ద్వారా నిరోధించబడుతుంది. ఉదాహరణకు, IBRS (పరోక్ష బ్రాంచ్ రిస్ట్రిక్టెడ్ స్పెక్యులేషన్) సూచనలను ఉపయోగించడం దాడుల నుండి రక్షించడంలో సహాయపడుతుంది.

Linux కెర్నల్ మరియు Xen హైపర్‌వైజర్ కోసం మార్పుల సమితి సిద్ధం చేయబడింది, ఇది పాత CPUలలో సాఫ్ట్‌వేర్‌లో సమస్యను బ్లాక్ చేస్తుంది. Linux కెర్నల్ కోసం ప్రతిపాదిత ప్యాచ్ 68 ఫైల్‌లను మారుస్తుంది, 1783 లైన్‌లను జోడిస్తుంది మరియు 387 లైన్‌లను తొలగిస్తుంది. దురదృష్టవశాత్తు, రక్షణ గణనీయమైన ఓవర్‌హెడ్ ఖర్చులకు దారి తీస్తుంది - AMD మరియు ఇంటెల్ ప్రాసెసర్‌లపై నిర్వహించిన పాఠాలలో, పనితీరు తగ్గుదల 14% నుండి 39% వరకు అంచనా వేయబడింది. IBRS సూచనల ఆధారంగా రక్షణను ఉపయోగించడం ఉత్తమం, ఇది కొత్త తరాల Intel CPUలలో అందుబాటులో ఉంది మరియు Linux కెర్నల్ 4.19తో ప్రారంభించి మద్దతు ఇస్తుంది.

ఇంటెల్ ప్రాసెసర్‌లలో, రిటర్న్ స్టాక్ బఫర్‌లో దిగువ బౌండ్ (అండర్‌ఫ్లో) ద్వారా ఓవర్‌ఫ్లో సంభవించినప్పుడు కనిపించే ఫీచర్‌కు కృతజ్ఞతలు తెలుపుతూ ఊహాజనిత పరోక్ష జంప్ కోసం చిరునామా ప్రత్యామ్నాయం నిర్వహించబడుతుంది. అటువంటి పరిస్థితులు ఏర్పడినప్పుడు, "ret" సూచన సాధారణ పరోక్ష జంప్‌ల కోసం ఉపయోగించే చిరునామా ఎంపిక లాజిక్‌ను వర్తింపజేయడం ప్రారంభిస్తుంది. Linux కెర్నల్‌లో వెయ్యికి పైగా స్థలాలు కనుగొనబడ్డాయి, ఇవి అటువంటి బ్యాక్‌ఫ్లోను ప్రారంభించడానికి పరిస్థితులను సృష్టిస్తాయి మరియు సిస్టమ్ కాల్‌ల ద్వారా యాక్సెస్ చేయబడతాయి.

AMD ప్రాసెసర్‌లలో, స్టాక్-నిర్దిష్ట బఫర్ (రిటర్న్ అడ్రస్ స్టాక్)ని సూచించకుండా “ret” సూచనల ఊహాజనిత అమలు జరుగుతుంది మరియు బ్రాంచ్ ప్రిడిక్షన్ యూనిట్ “ret” సూచనను నియంత్రణ రిటర్న్‌గా కాకుండా పరోక్ష శాఖగా పరిగణిస్తుంది. , మరియు, తదనుగుణంగా, అంచనా పరోక్ష పరివర్తనాల కోసం డేటాను ఉపయోగిస్తుంది. ఈ పరిస్థితులలో, సిస్టమ్ కాల్ ద్వారా చేరుకోగల ఏదైనా "రెట్" ఆపరేషన్‌ను ఉపయోగించుకోవచ్చు.

అదనంగా, కల్పిత శాఖల అమలుకు సంబంధించి AMD CPUలలో (CVE-2022-23825, బ్రాంచ్ రకం గందరగోళం) మరొక సమస్య కూడా గుర్తించబడింది - బ్రాంచ్ ప్రిడిక్షన్ కోసం పరిస్థితులు అవసరమైన శాఖ సూచనలు లేకుండా కూడా సంభవించవచ్చు, ఇది బ్రాంచ్ ప్రిడిక్షన్ బఫర్‌ను ప్రభావితం చేయడానికి అనుమతిస్తుంది. "రెట్" సూచన లేకుండా. ఈ లక్షణం రక్షణ అమలును గణనీయంగా క్లిష్టతరం చేస్తుంది మరియు బ్రాంచ్ ప్రిడిక్షన్ బఫర్‌ను మరింత చురుకుగా శుభ్రపరచడం అవసరం. కెర్నల్‌కు పూర్తి రక్షణను జోడించడం వలన ఓవర్‌హెడ్ 209% పెరుగుతుందని భావిస్తున్నారు.

మూలం: opennet.ru

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