„Win32“ programos izoliavimas yra puiki saugos galimybė, kurią „Microsoft“ pristatė „Windows 11“ praėjusį mėnesį. Štai kaip ji veikia.
Praėjusį mėnesį vykusioje kasmetinėje „Build“ konferencijoje „Microsoft“ paskelbė apie galimybę paleiskite Win32 programas atskirai Windows 11. Bendrovė savo pradiniame tinklaraščio įraše nesileido į daug detalių, tačiau pabrėžė galimybę paleisti Win32 programas smėlio dėžės aplinkoje, kad likusi operacinės sistemos dalis būtų apsaugota nuo potencialiai kenkėjiškų programų programinė įranga. Dabar ji atskleidė daugiau informacijos apie šią konkrečią galimybę, įskaitant tai, kaip ji veikia ir tinka likusiai „Windows“ saugos infrastruktūrai.
„Microsoft“ OS saugumo ir verslo viceprezidentas Davidas Westonas parašė ilgą pranešimą tinklaraščio straipsnis, paaiškinantis Win32 programos izoliavimo pobūdį. Ši funkcija yra dar viena smėlio dėžės saugos parinktis Windows smėlio dėžė ir „Microsoft Defender Application Guard“, tačiau ji pagrįsta „AppContainers“, o ne virtualizacija pagrįsta programine įranga, kaip kitos dvi saugos priemonės. Tiems, kurie to nežino, „AppContainers“ yra būdas kontroliuoti proceso vykdymą, jį įtraukiant ir užtikrinant, kad jis veiktų labai žemu privilegijų ir vientisumo lygiu.
„Microsoft“ primygtinai rekomenduoja naudoti Išmaniųjų programų valdymas (SAC) ir Win32 programos izoliacija kartu, tuo pačiu apsaugodama jūsų Windows aplinką nuo nepatikimų programų, kurios naudoja 0 dienų pažeidžiamumą. Buvęs saugos mechanizmas sustabdo atakas įdiegdamas tik patikimas programas, o pastarasis gali būti naudojamas programoms paleisti izoliuotoje ir saugioje aplinkoje, siekiant apriboti galimą žalą ir apsaugoti vartotoją privatumas. Taip yra todėl, kad Win32 programa, veikianti atskirai, neturi tokio pat privilegijų lygio kaip sistemos naudotojas.
Redmondo technologijų įmonė nustatė kelis pagrindinius „Win32“ programos izoliavimo tikslus. Pirmiausia tai riboja pažeistos programos poveikį, nes užpuolikai turi mažas privilegijas prie kai kurios programos operacinę sistemą, ir jiems reikės grandine surengti sudėtingą kelių etapų ataką, kad galėtų prasiveržti pro savo smėlio dėžę. Net jei jie yra sėkmingi, tai taip pat suteikia daugiau informacijos apie jų procesą, todėl daug greičiau įdiegiami ir pristatomi švelninimo pataisymai.
Tai veikia taip, kad programa pirmą kartą paleidžiama žemu vientisumo lygiu naudojant „AppContainer“, o tai reiškia kad jie turi prieigą prie pasirinktų „Windows“ API ir negali vykdyti kenkėjiško kodo, kuriam reikia didesnių privilegijų lygius. Kitame ir paskutiniame žingsnyje mažiausiai privilegijų principai įgyvendinami suteikiant programai įgaliotą prieigą prie „Windows“ apsaugotų objektų, o tai prilygsta įdiegimui. Diskrecinis prieigos kontrolės sąrašas (DACL) sistemoje Windows.
Kitas „Win32“ programos izoliacijos pranašumas yra mažesnės kūrėjo pastangos, nes programų kūrėjai gali panaudoti „Application Capability Profiler“ (ACP) galima GitHub kad suprastų, kokių leidimų jiems tiksliai reikia. Jie gali įgalinti ACP ir paleisti savo programą „mokymosi režimu“ atskirdami „Win32“ programą, kad gautų žurnalus apie papildomas galimybes, reikalingas programinei įrangai paleisti. ACP veikia „Windows Performance Analyzer“ (WPA) duomenų sluoksnio užpakalinė programa ir įvykių sekimo žurnalai (ETL). Informacija iš žurnalų, sugeneruotų šio proceso metu, gali būti tiesiog įtraukta į programos paketo aprašo failą.
Galiausiai, „Win32“ programos izoliacija siekia pasiūlyti sklandžią vartotojo patirtį. „Win32“ programos izoliavimas palengvina tai, nes reikalauja, kad programos naudotų „isolatedWin32-promptForAccess“ galimybę kad vartotojas būtų paragintas, jei jam reikia prieigos prie savo duomenų, pvz., .NET bibliotekų ir apsaugoto registro raktai. Raginimas turi būti reikšmingas naudotojui, iš kurio gaunamas sutikimas. Kai suteikiama prieiga prie šaltinio, toliau nutinka taip:
Kai vartotojas duoda sutikimą tam tikram atskiros programos failui, izoliuota programa susieja su Windows Tarpininkavimo failų sistema (BFS) ir suteikia prieigą prie failų per mini filtro tvarkyklę. BFS tiesiog atidaro failą ir tarnauja kaip sąsaja tarp izoliuotos programos ir BFS.
Failų ir registro virtualizavimas padeda užtikrinti, kad programos veiktų ir toliau neatnaujinant bazinio failo ar registro. Tai taip pat sumažina bet kokią vartotojo patirtį, kartu išlaikant programų suderinamumą. Apsaugotos vardų erdvės sukuriamos taip, kad būtų galima pasiekti tik programą ir nereikia vartotojo sutikimo. Pavyzdžiui, gali būti suteikta prieiga prie aplanko, kurio ypatybė žinoma tik „Win32“ programai ir reikalinga programos suderinamumui užtikrinti.
„Microsoft“ pabrėžė, kad norint turėti funkcijų paritetą tarp izoliuotų ir neizoliuotų „Win32“ programos, pirmoji gali sąveikauti su failų sistema ir kitomis „Windows“ API, naudodama „Windows“. BFS. Be to, įrašai programos apraše taip pat užtikrina, kad programa galėtų saugiai sąveikauti su „Windows“ elementais, pvz., apvalkalo pranešimais ir piktogramomis sistemos dėkle. Tu gali Sužinokite daugiau apie iniciatyvą „GitHub“ čia.