SWAPGS - CPU స్పెక్యులేటివ్ ఎగ్జిక్యూషన్ మెకానిజంలో కొత్త దుర్బలత్వం

Bitdefender నుండి పరిశోధకులు గుర్తించారు కొత్త దుర్బలత్వం (CVE-2019-1125) ఆధునిక CPUల ఊహాజనిత సూచనల అమలు విధానంలో, దీనికి SWAPGS అని పేరు పెట్టారు, ఇది సమస్యకు కారణమయ్యే ప్రాసెసర్ సూచనల పేరుకు అనుగుణంగా ఉంటుంది. దుర్బలత్వం ఇది అనుమతిస్తుంది కెర్నల్ మెమరీ ప్రాంతాలు లేదా రన్నింగ్ వర్చువల్ మిషన్‌ల కంటెంట్‌లను గుర్తించడానికి అన్‌ప్రివిలేజ్డ్ అటాకర్‌ను అనుమతించండి. సమస్య ధ్రువీకరించారు Intel ప్రాసెసర్‌లలో (x86_64) మరియు పాక్షికంగా ప్రభావితం చేస్తుంది ప్రధాన దాడి వెక్టర్ కనిపించని AMD ప్రాసెసర్‌లు. Intel ప్రాసెసర్‌లను ఉపయోగిస్తున్నప్పుడు స్పెక్టర్ మరియు మెల్ట్‌డౌన్ దుర్బలత్వాలను ఎదుర్కోవడానికి గతంలో అమలు చేయబడిన పద్ధతులు SWAPGS దాడి నుండి రక్షించవు, అయితే Linux, ChromeOS, Android మరియు Windows కోసం పరిష్కారాలు ఇప్పటికే ప్రతిపాదించబడ్డాయి.

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

కొత్త దాడి యొక్క ప్రత్యేకత ఏమిటంటే, SWAPGS సూచనల ఊహాజనిత అమలు సమయంలో సంభవించే లీక్‌ను ఉపయోగించడం, ఇది వినియోగదారు స్థలం నుండి OS కెర్నల్‌కు (GS) నియంత్రణ వెళ్ళినప్పుడు GS రిజిస్టర్ విలువను భర్తీ చేయడానికి ఆపరేటింగ్ సిస్టమ్‌లలో ఉపయోగించబడుతుంది. వినియోగదారు స్థలంలో ఉపయోగించిన విలువ కెర్నల్‌లోని కార్యకలాపాల సమయంలో ఉపయోగించిన విలువతో భర్తీ చేయబడుతుంది ). Linux కెర్నల్‌లో, GS కెర్నల్ డేటాను యాక్సెస్ చేయడానికి ఉపయోగించే per_cpu పాయింటర్‌ను నిల్వ చేస్తుంది మరియు వినియోగదారు స్థలం TLS (థ్రెడ్ లోకల్ స్టోరేజ్)కు పాయింటర్‌లను నిల్వ చేస్తుంది.

కెర్నల్ స్థలం నుండి కెర్నల్‌ను మళ్లీ యాక్సెస్ చేస్తున్నప్పుడు లేదా GS రిజిస్టర్ మార్పు అవసరం లేని కోడ్‌ని అమలు చేస్తున్నప్పుడు SWAPGS సూచనలకు రెండుసార్లు కాల్ చేయకుండా ఉండటానికి, సూచనకు ముందు చెక్ మరియు షరతులతో కూడిన శాఖ నిర్వహించబడుతుంది. స్పెక్యులేటివ్ ఎగ్జిక్యూషన్ ఇంజిన్ చెక్ రిజల్ట్ కోసం ఎదురుచూడకుండా SWAPGS సూచనతో కోడ్‌ని అమలు చేయడానికి ముందస్తుగా కొనసాగుతుంది మరియు ఎంచుకున్న శాఖ ధృవీకరించబడకపోతే, ఫలితాన్ని విస్మరిస్తుంది. అందువలన, SWAPGS అమలు చేయని శాఖ ఊహాజనితంగా ఎంపిక చేయబడినప్పుడు పరిస్థితి ఏర్పడవచ్చు, కానీ ఊహాజనిత అమలు సమయంలో GS రిజిస్టర్ విలువ SWAPGS సూచన ద్వారా మార్చబడుతుంది మరియు CPU కాష్‌లో ముగిసే డిపెండెంట్ మెమరీ ఆపరేషన్‌లలో ఉపయోగించబడుతుంది.

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

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

పరిష్కారానికి హోస్ట్ సిస్టమ్ మరియు గెస్ట్ ఎన్విరాన్‌మెంట్‌లు రెండింటిలోనూ కెర్నల్ అప్‌డేట్‌ను ఇన్‌స్టాల్ చేయడం అవసరం, దాని తర్వాత సిస్టమ్ రీబూట్ చేయాలి. Linuxలో రక్షణను నిలిపివేయడానికి, "nospectre_v1" ఎంపికను ఉపయోగించవచ్చు, ఇది SWAPGS దుర్బలత్వాన్ని నిరోధించే చర్యలను కూడా నిలిపివేస్తుంది. పరిష్కారము అందుబాటులో ఉంది పాచ్ Linux కెర్నల్ కోసం, ఇది ఇప్పటికే విడుదలలలో చేర్చబడింది 4.19.65, 5.2.7, 4.14.137, 4.9.188 మరియు 4.4.188. Linux పంపిణీల కోసం నవీకరణలు ఇంకా విడుదల కాలేదు (డెబియన్, RHEL, Fedora, ఆర్చ్ లైనక్స్, SUSE/openSUSE, ఉబుంటు) Windowsలో, సమస్య నిశ్శబ్దంగా పరిష్కరించబడింది జూలై నవీకరణ. Google కంపెనీ సిద్ధం ChromeOSతో రవాణా చేయబడిన కెర్నల్ 4.19 కోసం పరిష్కరించండి మరియు ఆండ్రాయిడ్.

Bitdefender నుండి పరిశోధకుల ప్రకారం, గత సంవత్సరం ఆగస్టులో ఇంటెల్‌కు సమస్య గురించి తెలియజేయబడింది. మైక్రోసాఫ్ట్, గూగుల్ మరియు లైనక్స్ కెర్నల్‌కు చెందిన డెవలపర్‌లు ఒక పరిష్కారాన్ని సమన్వయంతో అభివృద్ధి చేయడంలో నిమగ్నమై ఉండేటటువంటి సమస్యను ప్రోగ్రామికల్‌గా పరిష్కరించాలని నిర్ణయించారు. పాత ఇంటెల్ ప్రాసెసర్‌లు, ప్రీ-ఐవీ బ్రిడ్జ్, దోపిడీలో ఉపయోగించిన WRGSBASE సూచనలకు మద్దతు లేకపోవడం వల్ల దాడి చేయడం చాలా కష్టం. ARM, POWER, SPARC, MIPS మరియు RISC-V సిస్టమ్‌లు SWAPGS సూచనలకు మద్దతివ్వనందున సమస్య ప్రభావితం కావు.

సమస్య ప్రధానంగా ఇంటెల్ ప్రాసెసర్ల యజమానులను ప్రభావితం చేస్తుంది -
AMD సిస్టమ్స్‌లో, రెండవ దాడి దృశ్యాన్ని మాత్రమే పునరుత్పత్తి చేయగలిగారు, ఇది GS రిజిస్టర్ యొక్క మూల విలువ యొక్క ఊహాజనిత ప్రాసెసింగ్‌కు పరిమితం చేయబడింది, ఇది యాదృచ్ఛిక మెమరీ ప్రాంతాలలో నిర్దిష్ట విలువలను వెతకడానికి ఉపయోగించబడుతుంది. ఈ దాడి ఎంపికను నిరోధించడానికి చాలు స్పెక్టర్ v1 నుండి రక్షణ కోసం ఇప్పటికే ఉన్న పద్ధతులు.

మూలం: opennet.ru

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