ఇంటెల్ ప్రాసెసర్‌ల MMIO మెకానిజంలో దుర్బలత్వాలు

ఇంటెల్ ప్రాసెసర్‌ల మైక్రోఆర్కిటెక్చరల్ స్ట్రక్చర్‌ల ద్వారా కొత్త తరగతి డేటా లీక్‌ల గురించి సమాచారాన్ని వెల్లడించింది, ఇది MMIO (మెమరీ మ్యాప్డ్ ఇన్‌పుట్ అవుట్‌పుట్) మెకానిజం యొక్క మానిప్యులేషన్ ద్వారా ఇతర CPU కోర్లలో ప్రాసెస్ చేయబడిన సమాచారాన్ని గుర్తించడానికి అనుమతిస్తుంది. ఉదాహరణకు, ఇతర ప్రక్రియలు, Intel SGX ఎన్‌క్లేవ్‌లు లేదా వర్చువల్ మెషీన్‌ల నుండి డేటాను సంగ్రహించడానికి దుర్బలత్వాలు అనుమతిస్తాయి. దుర్బలత్వాలు ఇతర తయారీదారుల నుండి ఇంటెల్ CPUలకు మాత్రమే నిర్దిష్టంగా ఉంటాయి;

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

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

మైక్రోకోడ్ వైపు, ఇంటెల్ CPUల (IPU 2022.1) కోసం మే మైక్రోకోడ్ నవీకరణలో రక్షణను అమలు చేయడానికి అవసరమైన మార్పులు ప్రతిపాదించబడ్డాయి. Linux కెర్నల్‌లో, కొత్త తరగతి దాడుల నుండి రక్షణ 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 మరియు 4.9.319 విడుదలలలో చేర్చబడింది. MMIOలో సిస్టమ్ యొక్క దుర్బలత్వాలను తనిఖీ చేయడానికి మరియు నిర్దిష్ట రక్షణ మెకానిజమ్‌ల కార్యాచరణను అంచనా వేయడానికి, “/sys/devices/system/cpu/vulnerabilities/mmio_stale_data” ఫైల్ Linux కెర్నల్‌కు జోడించబడింది. రక్షణను చేర్చడాన్ని నియంత్రించడానికి, కెర్నల్ బూట్ పరామితి “mmio_stale_data” అమలు చేయబడింది, ఇది “పూర్తి” విలువలను తీసుకోగలదు (వినియోగదారు స్థలానికి మరియు VMలో వెళ్లేటప్పుడు బఫర్‌లను శుభ్రపరచడాన్ని అనుమతిస్తుంది), “పూర్తి, nosmt” ( “పూర్తి” + అదనంగా SMT/హైపర్-థ్రెడ్‌లను నిలిపివేస్తుంది) మరియు “ఆఫ్” (రక్షణ నిలిపివేయబడింది). Xen హైపర్‌వైజర్ మరియు క్యూబ్స్ ఆపరేటింగ్ సిస్టమ్ కోసం ప్రత్యేక పరిష్కారాలు అందించబడ్డాయి.

గుర్తించబడిన దుర్బలత్వ తరగతి యొక్క సారాంశం ఏమిటంటే, కొన్ని కార్యకలాపాలు ఇతర CPU కోర్లపై ఒక మైక్రోఆర్కిటెక్చరల్ బఫర్ నుండి మరొకదానికి అమలు చేసిన తర్వాత మిగిలిన డేటాను కాపీ చేయడం లేదా తరలించడం జరుగుతుంది. MMIOలోని దుర్బలత్వాలు ఈ అవశేష డేటాను వివిక్త మైక్రోఆర్కిటెక్చరల్ బఫర్‌ల నుండి అప్లికేషన్-కనిపించే రిజిస్టర్‌లు లేదా CPU బఫర్‌లకు బదిలీ చేయడానికి అనుమతిస్తాయి. MMIO ద్వారా అవశేష డేటాను సంగ్రహించడానికి మూడు పద్ధతులు గుర్తించబడ్డాయి:

  • DRPW (పరికర రిజిస్టర్ పాక్షిక వ్రాత, CVE-2022-21166) అనేది కొన్ని MMIO రిజిస్టర్‌లకు వ్రాసిన తప్పుల నిర్వహణలో సమస్య. వ్రాసిన డేటా పరిమాణం రిజిస్టర్ పరిమాణం కంటే తక్కువగా ఉంటే, పూరక బఫర్‌ల నుండి అవశేష సమాచారం కూడా రిజిస్టర్‌లోకి కాపీ చేయబడుతుంది. ఫలితంగా, MMIO రిజిస్టర్‌కి అసంపూర్తిగా వ్రాసే ఆపరేషన్‌ను ప్రారంభించే ప్రక్రియ ఇతర CPU కోర్‌లలో నిర్వహించబడే కార్యకలాపాల నుండి మైక్రోఆర్కిటెక్చరల్ బఫర్‌లలో మిగిలి ఉన్న డేటాను పొందవచ్చు.
  • SBDS (షేర్డ్ బఫర్స్ డేటా శాంప్లింగ్, CVE-2022-21125) అనేది అన్ని కెర్నల్‌లకు సాధారణమైన ఇంటర్మీడియట్ బఫర్‌ల నుండి కదలిక ఫలితంగా కెర్నల్-బౌండ్ ఫిల్ బఫర్ నుండి అవశేష డేటా లీక్.
  • SBDR (షేర్డ్ బఫర్స్ డేటా రీడ్, CVE-2022-21123) - సమస్య SBDS మాదిరిగానే ఉంటుంది, అయితే అవశేష డేటా అప్లికేషన్‌లకు కనిపించే CPU నిర్మాణాలలో ముగుస్తుంది. SBDS మరియు SBDR సమస్యలు క్లయింట్ సిస్టమ్‌ల ప్రాసెసర్‌లలో మరియు Intel Xeon E3 సర్వర్ ఫ్యామిలీలో మాత్రమే కనిపిస్తాయి.

ఇంటెల్ ప్రాసెసర్‌ల MMIO మెకానిజంలో దుర్బలత్వాలు


మూలం: opennet.ru

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