25 దుర్బలత్వాలు RTOS Zephyrలో, ICMP ప్యాకెట్ ద్వారా దోపిడీ చేయబడిన వాటితో సహా

NCC గ్రూప్ నుండి పరిశోధకులు ప్రచురించిన ఉచిత ప్రాజెక్ట్ ఆడిట్ ఫలితాలు జెఫైర్, అభివృద్ధి చెందుతున్న రియల్-టైమ్ ఆపరేటింగ్ సిస్టమ్ (RTOS), ఇంటర్నెట్ ఆఫ్ థింగ్స్ కాన్సెప్ట్ (IoT, ఇంటర్నెట్ ఆఫ్ థింగ్స్)కు అనుగుణంగా ఉండే పరికరాలను అమర్చడం లక్ష్యంగా పెట్టుకుంది. ఆడిట్‌లో తేలింది 25 దుర్బలత్వాలు Zephyrలో మరియు MCUbootలో 1 దుర్బలత్వం. ఇంటెల్ కంపెనీల భాగస్వామ్యంతో Zephyr అభివృద్ధి చేయబడుతోంది.

మొత్తంగా, నెట్‌వర్క్ స్టాక్‌లో 6, కెర్నల్‌లో 4, కమాండ్ షెల్‌లో 2, సిస్టమ్ కాల్ హ్యాండ్లర్‌లలో 5, USB సబ్‌సిస్టమ్‌లో 5 మరియు ఫర్మ్‌వేర్ అప్‌డేట్ మెకానిజంలో 3 దుర్బలత్వాలు గుర్తించబడ్డాయి. రెండు సమస్యలు క్లిష్టమైనవి, రెండు అధికమైనవి, 9 మధ్యస్థమైనవి, 9 తక్కువగా ఉన్నాయి మరియు 4 పరిశీలనకు ఉన్నాయి. క్లిష్టమైన సమస్యలు IPv4 స్టాక్ మరియు MQTT పార్సర్‌ను ప్రభావితం చేస్తాయి, ప్రమాదకరమైనవి USB మాస్ స్టోరేజ్ మరియు USB DFU డ్రైవర్‌లను ప్రభావితం చేస్తాయి. సమాచారాన్ని బహిర్గతం చేసే సమయంలో, సేవ యొక్క తిరస్కరణకు దారితీసే లేదా అదనపు కెర్నల్ రక్షణ మెకానిజమ్‌లలోని లోపాలతో సంబంధం ఉన్న అత్యంత ప్రమాదకరమైన 15 సమస్యలకు మాత్రమే పరిష్కారాలు సిద్ధం చేయబడ్డాయి;

ప్లాట్‌ఫారమ్ యొక్క IPv4 స్టాక్‌లో రిమోట్‌గా దోపిడీ చేయగల దుర్బలత్వం గుర్తించబడింది, ఇది నిర్దిష్ట మార్గంలో సవరించబడిన ICMP ప్యాకెట్‌లను ప్రాసెస్ చేస్తున్నప్పుడు మెమరీ అవినీతికి దారితీస్తుంది. MQTT ప్రోటోకాల్ పార్సర్‌లో మరొక తీవ్రమైన సమస్య కనుగొనబడింది, ఇది హెడర్ ఫీల్డ్‌ల సరైన పొడవు తనిఖీ లేకపోవడం వల్ల ఏర్పడింది మరియు రిమోట్ కోడ్ అమలుకు దారితీయవచ్చు. IPv6 స్టాక్ మరియు CoAP ప్రోటోకాల్ అమలులో సేవా సమస్యల యొక్క తక్కువ తీవ్రమైన తిరస్కరణ కనుగొనబడింది.

సేవ యొక్క తిరస్కరణకు లేదా కెర్నల్ స్థాయిలో కోడ్‌ని అమలు చేయడానికి ఇతర సమస్యలను స్థానికంగా ఉపయోగించుకోవచ్చు. ఈ దుర్బలత్వాలలో చాలా వరకు సిస్టమ్ కాల్ ఆర్గ్యుమెంట్‌ల యొక్క సరైన తనిఖీలు లేకపోవటానికి సంబంధించినవి మరియు కెర్నల్ మెమరీ యొక్క ఏకపక్ష ప్రాంతాలకు వ్రాయడం మరియు చదవడం వంటి వాటికి దారితీయవచ్చు. సమస్యలు సిస్టమ్ కాల్ ప్రాసెసింగ్ కోడ్‌కు కూడా విస్తరిస్తాయి-నెగటివ్ సిస్టమ్ కాల్ నంబర్‌కు కాల్ చేయడం వల్ల పూర్ణాంకం ఓవర్‌ఫ్లో అవుతుంది. ASLR రక్షణ (అడ్రస్ స్పేస్ ర్యాండమైజేషన్) మరియు స్టాక్‌పై కానరీ మార్కులను అమర్చే మెకానిజం అమలులో సమస్యలను కూడా కెర్నల్ గుర్తించింది, ఈ మెకానిజమ్‌లు పనికిరావు.

అనేక సమస్యలు USB స్టాక్ మరియు వ్యక్తిగత డ్రైవర్లను ప్రభావితం చేస్తాయి. ఉదాహరణకు, USB మాస్ స్టోరేజ్‌లోని సమస్యలు బఫర్ ఓవర్‌ఫ్లోకి కారణమవుతాయి మరియు పరికరం దాడి చేసేవారిచే నియంత్రించబడే USB హోస్ట్‌కి కనెక్ట్ చేయబడినప్పుడు కెర్నల్ స్థాయిలో కోడ్‌ని అమలు చేయవచ్చు. USB ద్వారా కొత్త ఫర్మ్‌వేర్‌ను లోడ్ చేయడానికి డ్రైవర్ అయిన USB DFUలో ఒక దుర్బలత్వం, గుప్తీకరణను ఉపయోగించకుండా మరియు డిజిటల్ సంతకాన్ని ఉపయోగించి భాగాలను ధృవీకరించడం ద్వారా సురక్షిత బూట్ మోడ్‌ను దాటవేయకుండా మైక్రోకంట్రోలర్ యొక్క అంతర్గత ఫ్లాష్‌లోకి సవరించిన ఫర్మ్‌వేర్ చిత్రాన్ని లోడ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. అదనంగా, ఓపెన్ బూట్‌లోడర్ కోడ్ అధ్యయనం చేయబడింది MCUboot, దీనిలో ఒక నిరపాయమైన దుర్బలత్వం కనుగొనబడింది,
ఇది UARTపై SMP (సింపుల్ మేనేజ్‌మెంట్ ప్రోటోకాల్) ప్రోటోకాల్‌ను ఉపయోగిస్తున్నప్పుడు బఫర్ ఓవర్‌ఫ్లోకి దారి తీస్తుంది.

Zephyrలో, అన్ని ప్రక్రియల కోసం ఒక గ్లోబల్ షేర్డ్ వర్చువల్ అడ్రస్ స్పేస్ (SASOS, సింగిల్ అడ్రస్ స్పేస్ ఆపరేటింగ్ సిస్టమ్) మాత్రమే అందించబడిందని గుర్తుంచుకోండి. నిర్దిష్ట హార్డ్‌వేర్‌పై లోడ్ చేయగల మరియు అమలు చేయగల మోనోలిథిక్ ఎక్జిక్యూటబుల్‌ను రూపొందించడానికి అప్లికేషన్-నిర్దిష్ట కోడ్ అప్లికేషన్-నిర్దిష్ట కెర్నల్‌తో కలిపి ఉంటుంది. అన్ని సిస్టమ్ వనరులు కంపైల్ సమయంలో నిర్ణయించబడతాయి, కోడ్ పరిమాణాన్ని తగ్గించడం మరియు పనితీరును పెంచడం. సిస్టమ్ ఇమేజ్ అప్లికేషన్‌ను అమలు చేయడానికి అవసరమైన కెర్నల్ లక్షణాలను మాత్రమే కలిగి ఉంటుంది.

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

మూలం: opennet.ru

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