గతంలో జోడించిన రక్షణ పద్ధతులను దాటవేసి, బ్రౌజర్లో జావాస్క్రిప్ట్ కోడ్ని అమలు చేస్తున్నప్పుడు స్పెక్టర్ క్లాస్ దుర్బలత్వాలను ఉపయోగించుకునే అవకాశాన్ని చూపే అనేక దోపిడీ ప్రోటోటైప్లను Google ప్రచురించింది. ప్రస్తుత ట్యాబ్లో వెబ్ కంటెంట్ను ప్రాసెస్ చేస్తున్న ప్రక్రియ యొక్క మెమరీకి ప్రాప్యతను పొందడానికి దోపిడీలను ఉపయోగించవచ్చు. దోపిడీ యొక్క ఆపరేషన్ను పరీక్షించడానికి, సైట్ leaky.page ప్రారంభించబడింది మరియు పని యొక్క లాజిక్ను వివరించే కోడ్ GitHubలో పోస్ట్ చేయబడింది.
ప్రతిపాదిత నమూనా Linux మరియు Chrome 7 వాతావరణంలో Intel Core i6500-88U ప్రాసెసర్లతో సిస్టమ్లపై దాడి చేయడానికి రూపొందించబడింది. ఇతర పరిసరాలకు దోపిడీని వర్తింపజేయడానికి మార్పులు అవసరం. దోపిడీ పద్ధతి ఇంటెల్ ప్రాసెసర్లకు ప్రత్యేకమైనది కాదు - తగిన అనుసరణ తర్వాత, ARM ఆర్కిటెక్చర్ ఆధారంగా Apple M1తో సహా ఇతర తయారీదారుల నుండి CPUలతో కూడిన సిస్టమ్లపై పని చేయడానికి దోపిడీ నిర్ధారించబడింది. చిన్న సర్దుబాట్ల తర్వాత, దోపిడీ ఇతర ఆపరేటింగ్ సిస్టమ్లు మరియు Chromium ఇంజిన్ ఆధారంగా ఇతర బ్రౌజర్లలో కూడా పని చేస్తుంది.
ప్రామాణిక క్రోమ్ 88 మరియు ఇంటెల్ స్కైలేక్ ప్రాసెసర్లపై ఆధారపడిన వాతావరణంలో, సెకనుకు 1 కిలోబైట్ చొప్పున ప్రస్తుత క్రోమ్ ట్యాబ్ (రెండరర్ ప్రాసెస్)లో వెబ్ కంటెంట్ను ప్రాసెస్ చేయడానికి బాధ్యత వహించే ప్రక్రియ నుండి డేటా లీక్ చేయబడింది. అదనంగా, ప్రత్యామ్నాయ నమూనాలు అభివృద్ధి చేయబడ్డాయి, ఉదాహరణకు, 8 మైక్రోసెకన్ల (5 మిల్లీసెకన్లు) ఖచ్చితత్వంతో performance.now() టైమర్ను ఉపయోగిస్తున్నప్పుడు లీక్ రేటును 0.005kB/sకి పెంచడానికి స్థిరత్వాన్ని తగ్గించే ఖర్చుతో అనుమతించే దోపిడీ. . ఒక వేరియంట్ కూడా తయారు చేయబడింది, ఒక మిల్లీసెకన్ టైమర్ ఖచ్చితత్వంతో పని చేస్తుంది, ఇది సెకనుకు 60 బైట్ల వేగంతో మరొక ప్రక్రియ యొక్క మెమరీకి యాక్సెస్ను నిర్వహించడానికి ఉపయోగించబడుతుంది.
ప్రచురించబడిన డెమో కోడ్ మూడు భాగాలను కలిగి ఉంటుంది. CPU సూచనల ఊహాజనిత అమలు ఫలితంగా ప్రాసెసర్ కాష్లో మిగిలిపోయిన డేటాను పునరుద్ధరించడానికి అవసరమైన ఆపరేషన్ల అమలు సమయాన్ని అంచనా వేయడానికి మొదటి భాగం టైమర్ను క్రమాంకనం చేస్తుంది. రెండవ భాగం జావాస్క్రిప్ట్ శ్రేణిని కేటాయించేటప్పుడు ఉపయోగించబడే మెమరీ లేఅవుట్ని నిర్ణయిస్తుంది.
మూడవ భాగం నిర్దిష్ట కార్యకలాపాల యొక్క ఊహాజనిత అమలు కోసం పరిస్థితులను సృష్టించడం ఫలితంగా ప్రస్తుత ప్రక్రియ యొక్క మెమరీ యొక్క కంటెంట్లను గుర్తించడానికి స్పెక్టర్ దుర్బలత్వాన్ని నేరుగా ఉపయోగించుకుంటుంది, దీని ఫలితంగా విఫలమైన అంచనాను నిర్ణయించిన తర్వాత ప్రాసెసర్ విస్మరిస్తుంది, కానీ అమలు జాడలు సాధారణ కాష్లో జమ చేయబడతాయి మరియు కాష్ చేయబడిన మరియు కాష్ చేయని డేటాకు యాక్సెస్ సమయంలో మార్పులను విశ్లేషించే మూడవ పక్ష ఛానెల్ల ద్వారా కాష్ యొక్క కంటెంట్లను నిర్ణయించే పద్ధతులను ఉపయోగించి పునరుద్ధరించబడతాయి.
ప్రతిపాదిత ఎక్స్ప్లోయిటేషన్ టెక్నిక్, performance.now() API ద్వారా అందుబాటులో ఉండే అధిక-నిర్దిష్ట టైమర్లను తొలగిస్తుంది మరియు షేర్డ్అరేబఫర్ రకానికి మద్దతు లేకుండా, ఇది షేర్డ్ మెమరీలో శ్రేణులను సృష్టించడానికి అనుమతిస్తుంది. దోపిడీలో స్పెక్యులేటివ్ కోడ్ అమలుకు కారణమయ్యే స్పెక్టర్ గాడ్జెట్ మరియు సైడ్-ఛానల్ లీక్ ఎనలైజర్ ఉన్నాయి, ఇది కాష్లోకి వచ్చిన ఊహాజనిత అమలు సమయంలో పొందిన డేటాను నిర్ణయిస్తుంది.
గాడ్జెట్ JavaScript శ్రేణిని ఉపయోగించి అమలు చేయబడుతుంది, దీనిలో బఫర్ యొక్క సరిహద్దుల వెలుపల ఉన్న ప్రాంతాన్ని యాక్సెస్ చేయడానికి ప్రయత్నం చేయబడుతుంది, కంపైలర్ ద్వారా జోడించబడిన బఫర్ సైజ్ చెక్ కారణంగా బ్రాంచ్ ప్రిడిక్షన్ బ్లాక్ స్థితిని ప్రభావితం చేస్తుంది (ప్రాసెసర్, ముందుకు చూస్తోంది , ఊహాత్మకంగా యాక్సెస్ను నిర్వహిస్తుంది, కానీ చెక్ తర్వాత స్థితిని వెనక్కి తీసుకుంటుంది). తగినంత టైమర్ ఖచ్చితత్వం లేని పరిస్థితులలో కాష్ యొక్క కంటెంట్లను విశ్లేషించడానికి, ప్రాసెసర్లలో ఉపయోగించే ట్రీ-పిఎల్ఆర్యు కాష్ ఎవిక్షన్ స్ట్రాటజీని మోసం చేసే పద్ధతి ప్రతిపాదించబడింది మరియు చక్రాల సంఖ్యను పెంచడం ద్వారా, తిరిగి వచ్చే సమయంలో తేడాను గణనీయంగా పెంచడానికి అనుమతిస్తుంది. కాష్ నుండి విలువ మరియు కాష్లో విలువ లేనప్పుడు.
స్పెక్టర్ క్లాస్ యొక్క దుర్బలత్వాలను ఉపయోగించి దాడుల యొక్క వాస్తవికతను చూపించడానికి మరియు అటువంటి దాడుల నుండి వచ్చే ప్రమాదాలను తగ్గించే సాంకేతికతలను ఉపయోగించమని వెబ్ డెవలపర్లను ప్రోత్సహించడానికి Google ప్రోటోటైప్ దోపిడీని ప్రచురించినట్లు గుర్తించబడింది. అదే సమయంలో, ప్రతిపాదిత నమూనా యొక్క గణనీయమైన పునర్విమర్శ లేకుండా, ప్రదర్శన కోసం మాత్రమే కాకుండా, విస్తృతమైన ఉపయోగం కోసం కూడా సిద్ధంగా ఉన్న సార్వత్రిక దోపిడీలను సృష్టించడం అసాధ్యం అని Google నమ్ముతుంది.
ప్రమాదాన్ని తగ్గించడానికి, సైట్ యజమానులు ఇటీవల అమలు చేయబడిన క్రాస్-ఆరిజిన్ ఓపెనర్ పాలసీ (COOP), క్రాస్-ఆరిజిన్ ఎంబెడర్ పాలసీ (COEP), క్రాస్-ఆరిజిన్ రిసోర్స్ పాలసీ (CORP), మెటాడేటా అభ్యర్థనను పొందండి, X-ఫ్రేమ్-ఆప్షన్లను ఉపయోగించమని ప్రోత్సహించబడ్డారు, X -కంటెంట్-టైప్-ఐచ్ఛికాలు మరియు సేమ్సైట్ కుక్కీలు. ఈ మెకానిజమ్లు నేరుగా దాడుల నుండి రక్షించవు, అయితే దాడి చేసేవారి జావాస్క్రిప్ట్ కోడ్ని అమలు చేయగల ప్రక్రియలలోకి లీకేజీ నుండి సైట్ డేటాను వేరుచేయడానికి అనుమతిస్తాయి (ప్రస్తుత ప్రక్రియ యొక్క మెమరీ నుండి లీక్ సంభవిస్తుంది, దీనిలో దాడి చేసేవారి కోడ్తో పాటు, డేటా అదే ట్యాబ్లో తెరవబడిన మరొక సైట్ నుండి). విశ్వసనీయత లేని మూలాల నుండి పొందిన మూడవ పక్షం కోడ్ నుండి సైట్ కోడ్ యొక్క అమలును వేర్వేరు ప్రక్రియలలో వేరు చేయడం ప్రధాన ఆలోచన, ఉదాహరణకు, iframe ద్వారా చేర్చబడుతుంది.
మూలం: opennet.ru