ఐసోలేటెడ్ ఎన్విరాన్మెంట్ల పనిని నిర్వహించడం కోసం టూల్స్ విడుదల బబుల్వ్రాప్ 0.6 అందుబాటులో ఉంది, సాధారణంగా అప్రివిలేజ్డ్ యూజర్ల వ్యక్తిగత అప్లికేషన్లను పరిమితం చేయడానికి ఉపయోగిస్తారు. ఆచరణలో, ప్యాకేజీల నుండి ప్రారంభించబడిన అప్లికేషన్లను వేరుచేయడానికి ఫ్లాట్పాక్ ప్రాజెక్ట్ ద్వారా Bubblewrap ఉపయోగించబడుతుంది. ప్రాజెక్ట్ కోడ్ Cలో వ్రాయబడింది మరియు LGPLv2+ లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
ఐసోలేషన్ కోసం, cgroups, namespaces, Seccomp మరియు SELinux వినియోగం ఆధారంగా సాంప్రదాయ Linux కంటైనర్ వర్చువలైజేషన్ సాంకేతికతలు ఉపయోగించబడతాయి. కంటైనర్ను కాన్ఫిగర్ చేయడానికి ప్రత్యేక కార్యకలాపాలను నిర్వహించడానికి, బబుల్వ్రాప్ రూట్ హక్కులతో (సూయిడ్ ఫ్లాగ్తో ఎక్జిక్యూటబుల్ ఫైల్) ప్రారంభించబడుతుంది మరియు కంటైనర్ ప్రారంభించబడిన తర్వాత ప్రత్యేక అధికారాలను రీసెట్ చేస్తుంది.
నేమ్స్పేస్ సిస్టమ్లో యూజర్ నేమ్స్పేస్ల యాక్టివేషన్, ఇది కంటైనర్లలో మీ స్వంత ప్రత్యేక ఐడెంటిఫైయర్లను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది, ఆపరేషన్ కోసం ఇది అవసరం లేదు, ఎందుకంటే ఇది చాలా డిస్ట్రిబ్యూషన్లలో డిఫాల్ట్గా పని చేయదు (బబుల్వ్రాప్ అనేది ఒక పరిమిత సూయిడ్ ఇంప్లిమెంటేషన్గా ఉంచబడింది. వినియోగదారు నేమ్స్పేస్ సామర్థ్యాల ఉపసమితి - పర్యావరణం నుండి అన్ని వినియోగదారు మరియు ప్రాసెస్ ఐడెంటిఫైయర్లను మినహాయించడానికి, ప్రస్తుతది మినహా, CLONE_NEWUSER మరియు CLONE_NEWPID మోడ్లు ఉపయోగించబడతాయి). అదనపు రక్షణ కోసం, Bubblewrap కింద అమలు చేయబడిన ప్రోగ్రామ్లు PR_SET_NO_NEW_PRIVS మోడ్లో ప్రారంభించబడతాయి, ఇది కొత్త అధికారాలను పొందడాన్ని నిషేధిస్తుంది, ఉదాహరణకు, సెటూయిడ్ ఫ్లాగ్ ఉన్నట్లయితే.
ఫైల్ సిస్టమ్ స్థాయిలో ఐసోలేషన్ డిఫాల్ట్గా కొత్త మౌంట్ నేమ్స్పేస్ని సృష్టించడం ద్వారా సాధించబడుతుంది, దీనిలో tmpfs ఉపయోగించి ఖాళీ రూట్ విభజన సృష్టించబడుతుంది. అవసరమైతే, బాహ్య FS విభజనలు ఈ విభజనకు “mount —bind” మోడ్లో జతచేయబడతాయి (ఉదాహరణకు, “bwrap —ro-bind /usr /usr” ఎంపికతో ప్రారంభించినప్పుడు, /usr విభజన ప్రధాన సిస్టమ్ నుండి ఫార్వార్డ్ చేయబడుతుంది. చదవడానికి-మాత్రమే మోడ్లో). CLONE_NEWNET మరియు CLONE_NEWUTS ఫ్లాగ్ల ద్వారా నెట్వర్క్ స్టాక్ ఐసోలేషన్తో లూప్బ్యాక్ ఇంటర్ఫేస్ను యాక్సెస్ చేయడానికి నెట్వర్క్ సామర్థ్యాలు పరిమితం చేయబడ్డాయి.
సెటూయిడ్ లాంచ్ మోడల్ను కూడా ఉపయోగించే సారూప్య ఫైర్జైల్ ప్రాజెక్ట్ నుండి ప్రధాన వ్యత్యాసం ఏమిటంటే, బబుల్వ్రాప్లో కంటైనర్ సృష్టి పొర అవసరమైన కనీస సామర్థ్యాలను మాత్రమే కలిగి ఉంటుంది మరియు గ్రాఫికల్ అప్లికేషన్లను అమలు చేయడానికి, డెస్క్టాప్తో పరస్పర చర్య చేయడానికి మరియు అభ్యర్థనలను ఫిల్టర్ చేయడానికి అవసరమైన అన్ని అధునాతన ఫంక్షన్లను కలిగి ఉంటుంది. Pulseaudioకి, ఫ్లాట్పాక్ వైపుకు బదిలీ చేయబడుతుంది మరియు ప్రత్యేకాధికారాలు రీసెట్ చేయబడిన తర్వాత అమలు చేయబడుతుంది. ఫైర్జైల్, మరోవైపు, ఒక ఎక్జిక్యూటబుల్ ఫైల్లో అన్ని సంబంధిత ఫంక్షన్లను మిళితం చేస్తుంది, ఇది సరైన స్థాయిలో భద్రతను తనిఖీ చేయడం మరియు నిర్వహించడం కష్టతరం చేస్తుంది.
కొత్త విడుదలలో:
- మీసన్ అసెంబ్లీ సిస్టమ్కు మద్దతు జోడించబడింది. Autotoolsతో బిల్డింగ్ కోసం మద్దతు ప్రస్తుతానికి అలాగే ఉంచబడింది, కానీ భవిష్యత్తులో విడుదలలో తీసివేయబడుతుంది.
- ఒకటి కంటే ఎక్కువ సెకాంప్ ప్రోగ్రామ్లను జోడించడానికి "--add-seccomp" ఎంపిక అమలు చేయబడింది. మీరు "--seccomp" ఎంపికను మళ్లీ పేర్కొంటే, చివరి పరామితి మాత్రమే వర్తింపజేయబడుతుందని హెచ్చరిక జోడించబడింది.
- git రిపోజిటరీలోని మాస్టర్ బ్రాంచ్ మెయిన్గా పేరు మార్చబడింది.
- REUSE స్పెసిఫికేషన్కు పాక్షిక మద్దతు జోడించబడింది, ఇది లైసెన్స్ మరియు కాపీరైట్ సమాచారాన్ని పేర్కొనే ప్రక్రియను ఏకీకృతం చేస్తుంది. చాలా కోడ్ ఫైల్లు SPDX-లైసెన్స్-ఐడెంటిఫైయర్ హెడర్లను జోడించాయి. REUSE మార్గదర్శకాలను అనుసరించడం ద్వారా అప్లికేషన్ కోడ్లోని ఏ భాగాలకు ఏ లైసెన్స్ వర్తిస్తుందో స్వయంచాలకంగా గుర్తించడం సులభం చేస్తుంది.
- కమాండ్ లైన్ ఆర్గ్యుమెంట్ కౌంటర్ (argc) విలువను తనిఖీ చేయడం జోడించబడింది మరియు కౌంటర్ సున్నా అయితే అత్యవసర నిష్క్రమణ అమలు చేయబడింది. ఈ మార్పు పోల్కిట్లో CVE-2021-4034 వంటి పాస్ అయిన కమాండ్ లైన్ ఆర్గ్యుమెంట్లను తప్పుగా నిర్వహించడం వల్ల ఏర్పడే భద్రతా సమస్యలను నిరోధించడంలో సహాయపడుతుంది.
మూలం: opennet.ru