Неге nosuid VPN көмекшісінің root болуына кедергі жасайды
Шифрланған үй қалтасы мен nosuid-пен тіркеу — әртүрлі қасиеттер. Көмекшіге сенімді орнату жолы мен өзінің артықшылық битін құрметтейтін іске қосу контексті қажет.
Дискіні шифрлау мен nosuid-пен тіркеу бір идеяның нұсқаларындай естіледі, бірақ олардың мүлдем байланысы жоқ. Бірі тыныштықтағы деректерді қорғайды, екіншісі бағдарлама іске қосылатын сәтте ядроның артықшылық битін құрметтейтінін шешеді. Күткен тепе-теңдігіне жете алмаған көмекші екіншісі туралы шағымданады. Біріншісі кінәлі деген болжам адамдарды ешқашан бұзылмаған клиенттерді қайта орнатуға жібереді.
Екі байланыссыз қасиет
Дискіні шифрлау машина өшірулі кезде блоктарды кім оқи алатынына жауап береді. Тіркеу опциясы біреу файлды орындағанда ядроның оның режим биттерімен не істейтініне жауап береді. Біріншісінде екіншісін ештеңе шектемейді, және толық шифрланған ноутбук барлық шектеулерімен файлдық жүйені тіркей алады.
Оларды бір қасиет ретінде оқу шифрланған үй қалтасы root қатынасына кедергі жасайды деген теорияны тудырады. Бұл теория екі симптом бір машинада пайда болатындықтан сақталады, ортақ себебі бар болғандықтан емес.
Ауысуды шын мәнінде не басады
execve анықтамасы set-user-ID бар орындалатын файл жаңа процестің тиімді тепе-теңдігін файл иесінің тепе-теңдігіне қалай өзгертетінін сипаттайды. Сол бет осы ауысуды басатын шарттарды және топ идентификаторлары үшін олардың баламасын тізеді: no_new_privs параметрі, nosuid-пен тіркелген файлдық жүйе және бақыланып жатқан процесс. Файл мүмкіндіктері сол шарттарда ескерілмейді. Осы төрт ереже осы тектес есептердің барлығын дерлік қамтиды.
Бұл тізім ls басып шығаратын режимнің ешқашан толық авторизация тарихы болмайтынын түсіндіреді. Ол қай шарттың нақты қате хабарламасын тудырғанын айтпайды, және қолданба сол сөздермен байланыссыз тіркелгі операциясы туралы хабарлауы мүмкін. Қорытынды жасамас бұрын нақты бағдарламаны, іске қосқышты және қателер ретін жазып алыңыз.
Қолдау көрсетілетін пакет орнатқан орындалатын файлды, оның иесін, нақты жолын және оны ұстайтын файлдық жүйенің саясатын анықтаңыз. Жүктеулер қалтасында жатқан көшірме — орнатылған көмекші емес, оның режимі не десе де.
Бұл туралы не істеуге болмайды
Тексерілмеген бинарға set-user-ID биттерін қою және шектеу жоғалғанша оны осылай жылжыту — жөндеу емес. Ол сіз түсінбеген саясатты аудиттей алмайтын артықшылықпен алмастырады, ал көмекшіге қолданылған сол әдіс — белгілі эскалация жолы. Тіркеуден nosuid-ті алып тастау одан да нашар, өйткені ол сол файлдық жүйедегі әр бағдарламаға әсер етеді, біреуіне ғана емес.
Қолдау көрсетілетін жол — әкімші орындайтын, клиенттің құжатталған көмекші немесе қызмет орнатуы, ол бинарды саясат күтетін жерге қояды. Осылайша екі емес, бір артықшылық механизмі қалады.
Нақты іске қосу контекстін растаңыз
Рұқсат етілген түзетуден кейін көмекшіні өнім іске қосатындай іске қосыңыз, root shell-інен емес. Root ретіндегі сәттілік қарапайым пайдаланушы жүретін жол туралы ештеңе дәлелдемейді, және осы екі контекстің айырмашылығы — сәтсіздіктің нақты тақырыбы.
Содан кейін көмекші бар болатын желілік операцияны растаңыз. Іске қосылатын, бірақ интерфейсті конфигурациялай алмайтын көмекші мәселені бір кезеңге жылжытты, шешкен жоқ.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
Тіркеу опциялары мен көмекшінің иелігін бір жазбаға жазыңыз. Әйтпесе бұны жөндейтін келесі адам шифрлау теориясын қайтадан басынан бастайды.