కీస్ కుక్, kernel.org యొక్క మాజీ చీఫ్ సిస్టమ్ అడ్మినిస్ట్రేటర్ మరియు ఉబుంటు సెక్యూరిటీ టీం యొక్క నాయకుడు, ఇప్పుడు Android మరియు ChromeOSలను సురక్షితం చేయడంలో Googleలో పని చేస్తున్నారు, సిస్టమ్ కాల్లను ప్రాసెస్ చేస్తున్నప్పుడు కెర్నల్ స్టాక్లోని ఆఫ్సెట్లను ర్యాండమైజ్ చేయడానికి ప్యాచ్ల సెట్ను ప్రచురించారు. ప్యాచ్లు స్టాక్ ప్లేస్మెంట్ను మార్చడం ద్వారా కెర్నల్ భద్రతను మెరుగుపరుస్తాయి, స్టాక్పై దాడులను మరింత కష్టతరం చేయడం మరియు తక్కువ విజయవంతం చేయడం. ప్రారంభ అమలు ARM64 మరియు x86/x86_64 ప్రాసెసర్లకు మద్దతు ఇస్తుంది.
ప్యాచ్ యొక్క అసలు ఆలోచన PaX RANDKSTACK ప్రాజెక్ట్కి చెందినది. 2019 లో, ఇంటెల్ నుండి ఇంజనీర్ అయిన ఎలెనా రెషెటోవా ప్రధాన లైనక్స్ కెర్నల్లో చేర్చడానికి అనువైన ఈ ఆలోచన యొక్క అమలును రూపొందించడానికి ప్రయత్నించారు. తరువాత, కీస్ కుక్ చొరవ తీసుకున్నారు, అతను కెర్నల్ యొక్క ప్రధాన సంస్కరణకు తగిన అమలును అందించాడు. ప్యాచ్లను 5.13 విడుదలలో భాగంగా చేర్చాలని ప్లాన్ చేస్తున్నారు. మోడ్ డిఫాల్ట్గా నిలిపివేయబడుతుంది. దీన్ని ప్రారంభించడానికి, కెర్నల్ కమాండ్ లైన్ పరామితి “randomize_kstack_offset=on/off” మరియు CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT సెట్టింగ్ ప్రతిపాదించబడ్డాయి. మోడ్ను ఎనేబుల్ చేయడంలో ఓవర్హెడ్ సుమారు 1% పనితీరు నష్టంగా అంచనా వేయబడింది.
ప్రతి సిస్టమ్ కాల్ కోసం యాదృచ్ఛిక స్టాక్ ఆఫ్సెట్ను ఎంచుకోవడం ప్రతిపాదిత రక్షణ యొక్క సారాంశం, ఇది మెమరీలో స్టాక్ లేఅవుట్ను గుర్తించడం కష్టతరం చేస్తుంది, చిరునామా డేటాను స్వీకరించిన తర్వాత కూడా, తదుపరి సిస్టమ్ కాల్ స్టాక్ యొక్క మూల చిరునామాను మారుస్తుంది. PaX RANDKSTACK అమలు కాకుండా, కెర్నల్లో చేర్చడానికి ప్రతిపాదించబడిన ప్యాచ్లలో, రాండమైజేషన్ ప్రారంభ దశలో (cpu_current_top_of_stack) నిర్వహించబడదు, కానీ pt_regs నిర్మాణాన్ని సెట్ చేసిన తర్వాత, ఇది యాదృచ్ఛిక ఆఫ్సెట్ను నిర్ణయించడానికి ptrace-ఆధారిత పద్ధతులను ఉపయోగించడం అసాధ్యం చేస్తుంది. దీర్ఘకాలిక సిస్టమ్ కాల్ సమయంలో.
మూలం: opennet.ru