జెన్ 3 ప్రాసెసర్లలో అమలు చేయబడిన ప్రిడిక్టివ్ స్టోర్ ఫార్వర్డింగ్ (PSF) ఆప్టిమైజేషన్ టెక్నాలజీ యొక్క భద్రతను విశ్లేషిస్తూ AMD ఒక నివేదికను ప్రచురించింది. ఈ అధ్యయనం, మే 2018లో కనుగొనబడిన స్పెక్ట్రే-STL (స్పెక్ట్రే-v4) దాడి పద్ధతి, PSF టెక్నాలజీకి కూడా వర్తిస్తుందని సైద్ధాంతికంగా నిర్ధారించింది. అయితే, ఆచరణలో దాడికి దారితీయగల కోడ్ నమూనాలు ఏవీ ఇంకా గుర్తించబడలేదు మరియు మొత్తం ప్రమాదం చాలా తక్కువగా ఉంటుందని అంచనా వేయబడింది.
గుర్తుంచుకోవలసిన విషయం ఏమిటంటే, స్పెక్ట్రే-v4 (స్పెక్యులేటివ్ స్టోర్ బైపాస్) దాడి అనేది, పరోక్ష అడ్రసింగ్ను ఉపయోగించి ఒకదాని తర్వాత ఒకటిగా జరిగే రైట్ మరియు రీడ్ ఆపరేషన్ల సమయంలో స్పెక్యులేటివ్ ఎగ్జిక్యూషన్ ఫలితాన్ని విస్మరించిన తర్వాత ప్రాసెసర్ కాష్లో స్థిరపడిన డేటాను తిరిగి పొందడంపై ఆధారపడి ఉంటుంది. ఒక రైట్ ఆపరేషన్ తర్వాత రీడ్ ఆపరేషన్ వచ్చినప్పుడు (ఉదాహరణకు, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), ఇలాంటి ఆపరేషన్ల కారణంగా రీడ్ అడ్రస్ ఆఫ్సెట్ అప్పటికే తెలిసి ఉండవచ్చు (రీడ్ ఆపరేషన్లు చాలా తరచుగా జరుగుతాయి, మరియు రీడ్లను కాష్ నుండి కూడా చేయవచ్చు), మరియు ప్రాసెసర్, రైట్ కోసం పరోక్ష అడ్రస్ ఆఫ్సెట్ లెక్కించబడే వరకు వేచి ఉండకుండా, రైట్కు ముందు స్పెక్యులేటివ్గా రీడ్ను చేయగలదు.
ఈ ఫీచర్, ఒక స్టోర్ ఆపరేషన్ ఇంకా పెండింగ్లో ఉన్నప్పటికీ, ఒక రీడ్ ఇన్స్ట్రక్షన్ను ఒక నిర్దిష్ట అడ్రస్లోని పాత విలువను యాక్సెస్ చేయడానికి అనుమతిస్తుంది. ఒకవేళ అంచనా తప్పు అయితే, విఫలమైన స్పెక్యులేటివ్ ఆపరేషన్ విస్మరించబడుతుంది, కానీ దాని ఎగ్జిక్యూషన్ యొక్క ఆనవాళ్లు ప్రాసెసర్ కాష్లో మిగిలి ఉంటాయి. కాష్ చేయబడిన మరియు కాష్ చేయబడని డేటా యొక్క యాక్సెస్ సమయాలలో మార్పును విశ్లేషించడం ఆధారంగా కాష్ కంటెంట్లను నిర్ధారించే పద్ధతులలో ఒకదానిని ఉపయోగించి వాటిని వెలికితీయవచ్చు.
AMD Zen 3 ప్రాసెసర్లకు జోడించబడిన PSF టెక్నాలజీ, రీడ్లు మరియు రైట్ల మధ్య ఉన్న సంబంధం యొక్క అంచనా ఆధారంగా రీడ్ ఆపరేషన్లను ఊహాజనితంగా అమలు చేసే STLF (స్టోర్-టు-లోడ్-ఫార్వార్డింగ్) పద్ధతిని ఆప్టిమైజ్ చేస్తుంది. క్లాసిక్ STLFతో, ప్రాసెసర్ "లోడ్" మరియు "స్టోర్" ఇన్స్ట్రక్షన్లలో ఉపయోగించిన అడ్రస్లు సరిపోలుతున్నాయని నిర్ధారించుకున్న తర్వాత, ఫలితం మెమరీకి వ్రాయబడే వరకు వేచి ఉండకుండా, మునుపటి "స్టోర్" ఇన్స్ట్రక్షన్ నుండి నేరుగా ఫార్వార్డ్ చేయబడిన డేటాతో "లోడ్" ఆపరేషన్ను నిర్వహిస్తుంది. PSF ఆప్టిమైజేషన్ అడ్రస్ తనిఖీని ఊహాజనితంగా చేస్తుంది మరియు ఒకే అడ్రస్ను మార్చే స్టోర్/లోడ్ జత గతంలో అమలు చేయబడి ఉంటే, అడ్రస్ గణనను పూర్తి చేయడానికి ముందే "లోడ్" ఆపరేషన్ను అమలు చేస్తుంది. అంచనా తప్పు అయితే, స్టేట్ రోల్ బ్యాక్ చేయబడుతుంది, కానీ డేటా కాష్లోనే ఉంటుంది.
PSF దాడి కేవలం ఒకే ప్రివిలేజ్ స్థాయిలో మాత్రమే సాధ్యమవుతుంది, ప్రస్తుత ప్రాసెస్ కాంటెక్స్ట్ను మాత్రమే కవర్ చేస్తుంది మరియు అడ్రస్ స్పేస్ ఐసోలేషన్ పద్ధతులు లేదా హార్డ్వేర్ శాండ్బాక్సింగ్ మెకానిజమ్ల ద్వారా నిరోధించబడుతుంది. అయితే, ప్రాసెస్లలోని సాఫ్ట్వేర్ శాండ్బాక్సింగ్ పద్ధతులు ప్రభావితమయ్యే అవకాశం ఉంది. ఒకే ప్రాసెస్లో థర్డ్-పార్టీ కోడ్ను అమలు చేసే బ్రౌజర్లు, వర్చువల్ మెషీన్లు మరియు JITల వంటి సిస్టమ్లకు ఈ దాడి ప్రమాదాన్ని కలిగిస్తుంది (ఈ దాడి ఫలితంగా, విశ్వసనీయత లేని శాండ్బాక్స్డ్ కోడ్ ఇతర ప్రాసెస్ డేటాను యాక్సెస్ చేయగలదు).
PSFను పూర్తిగా లేదా ఎంపికగా నిలిపివేయడానికి AMD అనేక పద్ధతులను అందించింది, కానీ చాలా అప్లికేషన్లకు ప్రమాదం తక్కువగా ఉన్నందున, ఈ ఆప్టిమైజేషన్ను డిఫాల్ట్గా నిలిపివేయవద్దని సిఫార్సు చేసింది. విశ్వసనీయత లేని కోడ్ను అమలు చేయడం నుండి వేరు చేయబడిన ప్రాసెస్లను ఎంపికగా రక్షించడానికి, వ్యక్తిగత థ్రెడ్లతో సహా "SSBD" మరియు "PSFD" MSR బిట్లను సెట్ చేయడం ద్వారా PSFను నిలిపివేయాలని ప్రతిపాదించబడింది. కెర్నల్ కొరకు, Linux PSFను ఎనేబుల్ మరియు డిసేబుల్ చేయడాన్ని నియంత్రించే "psfd" మరియు "nopsfd" అనే కమాండ్ లైన్ ఆప్షన్లను అమలు చేస్తూ ప్యాచ్లు సిద్ధం చేయబడ్డాయి.
మూలం: opennet.ru
