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