Brugerkontokontrol - User Account Control

Brugerkontokontrol i Windows 10
Brugerkontokontrol "Windows Security" -advarsler i Windows 10 i lys tilstand. Fra top til bund: blokeret app , app med ukendt udgiver, app med en kendt/betroet udgiver.

User Account Control ( UAC ) er en obligatorisk adgangskontrol håndhævelse funktion introduceret med Microsofts 's Windows Vista og Windows Server 2008 operativsystemer , med en mere afslappet udgave også til stede i Windows 7 , Windows Server 2008 R2 , Windows 8 , Windows Server 2012 , Windows 8.1 , Windows Server 2012 R2 og Windows 10 . Det har til formål at forbedre sikkerheden i Microsoft Windows ved at begrænse applikationssoftware til standard brugerrettigheder, indtil en administrator godkender en stigning eller forhøjelse. På denne måde er det kun applikationer, som brugeren har tillid til, der kan modtage administrative rettigheder, og malware bør undgås at kompromittere operativsystemet. Med andre ord kan en brugerkonto have administratorrettigheder tildelt den, men programmer, som brugeren kører, arver ikke disse rettigheder, medmindre de er godkendt på forhånd, eller brugeren udtrykkeligt godkender det.

UAC bruger obligatorisk integritetskontrol til at isolere kørende processer med forskellige privilegier. For at reducere muligheden for, at programmer med lavere privilegier kommunikerer med programmer med højere privilegier, bruges en anden ny teknologi, User Interface Privilege Isolation , sammen med brugerkontokontrol til at isolere disse processer fra hinanden. En fremtrædende brug af dette er Internet Explorer 7 's "Beskyttet tilstand".

Operativsystemer på mainframes og på servere har i årtier differentieret mellem superbrugere og brugerland . Dette havde en indlysende sikkerhedskomponent, men også en administrativ komponent, idet den forhindrede brugere i at ved et uheld ændre systemindstillinger.

Tidlig Microsoft hjem operativsystemer-systemer (såsom MS-DOS , Windows 95 - 98 og Windows Me ) ikke har et begreb om forskellige brugergrupper-konti på samme maskine. Efterfølgende versioner af Windows- og Microsoft-applikationer tilskyndede til brug af ikke-administratorbruger-login, men nogle applikationer krævede fortsat administratorrettigheder. Microsoft certificerer ikke programmer som Windows-kompatible, hvis de kræver administratorrettigheder; sådanne applikationer må ikke bruge det Windows-kompatible logo med deres emballage.

  • MS-DOS og Windows version 1.0 til 3.11: alle applikationer havde privilegier svarende til operativsystemet;
  • Windows 9x og Windows Me : alle applikationer nød system-dækkende privilegier, der konkurrerer med selve operativsystemet;
  • Alle versioner af Windows NT op til Windows XP : introducerede flere brugerkonti, men i praksis fortsatte de fleste brugere med at fungere som administrator for deres normale drift. Nogle applikationer kræver endvidere, at brugeren er administrator for at nogle eller alle deres funktioner fungerer.
  • Windows Vista : Microsoft udviklede Vista -sikkerhed først og fremmest fra den begrænsede brugerkonto (LUA), og omdøbte derefter konceptet til brugerkontobeskyttelse (UAP), før det endelig sendte brugerkontokontrol (UAC). Brugerkontokontrol (UAC), der blevintroduceret i Windows Vista , tilbyder en tilgang til at opmuntre til "superbruger, når det er nødvendigt". Nøglen til UAC ligger i dens evne til at hæve privilegier uden at ændre brugerkonteksten (bruger "Bob" er stadig bruger "Bob"). Som altid er det svært at introducere nye sikkerhedsfunktioner uden at bryde kompatibiliteten med eksisterende applikationer.
    • Når nogen logger på Vista som en standardbruger, opretter systemet en logonsession og tildeler et token, der kun indeholder de mest grundlæggende privilegier. På denne måde kan den nye logonsession ikke foretage ændringer, der ville påvirke hele systemet.
    • Når en person logger ind som en bruger med medlemskab i gruppen Administratorer, tildeler systemet to separate tokens: det første token indeholder alle privilegier, der typisk tildeles en administrator, og det andet er et begrænset token svarende til, hvad en standardbruger ville modtage.
      • Brugerprogrammer, herunder Windows Shell , starter derefter med det begrænsede token, hvilket resulterer i et miljø med reducerede privilegier-selv når de kører under en administratorkonto.
      • Når et program anmoder om højere rettigheder, eller når en bruger vælger en "Kør som administrator" -indstilling, vil UAC bede standardbrugere om at indtaste legitimationsoplysninger for en administratorkonto og bede administratorer om bekræftelse, og hvis der gives samtykke, fortsætte eller starte processen vha. et ubegrænset tegn.
  • Windows 7 : Microsoft inkluderede en brugergrænseflade til at ændre brugerkontokontrolindstillinger og introducerede en ny meddelelsestilstand: standardindstillingen . Som standard beder UAC ikke om samtykke, når brugere foretager ændringer i Windows -indstillinger, der kræver forhøjet tilladelse via programmer, der er gemt i % SystemRoot % og digitalt signeret af Microsoft. Programmer, der kræver tilladelse til at køre, udløser stadig en prompt. Andre brugerkontokontrolindstillinger, der kan ændres via det nye brugergrænseflade, kunne have været tilgængelige via registreringsdatabasen i Windows Vista.
  • Windows 8 og 8.1 : tilføj en designændring. Når UAC udløses, er alle applikationer og proceslinjen skjult, når skrivebordet er dæmpet.
  • Windows 10 : kopierer det samme layout som Windows 8 og 8.1 , men jubilæumsopdateringen har et mere moderne udseende. Windows 10 tilføjer også support til Windows Hello i dialogboksen Kontrol af brugerkonto.

Opgaver, der udløser en UAC -prompt

Opgaver, der kræver administratorrettigheder, udløser en UAC -prompt (hvis UAC er aktiveret); de er typisk markeret med et sikkerhedsskjoldikon med de fire farver på Windows -logoet (i Vista og Windows Server 2008) eller med to paneler gule og to blå (Windows 7, Windows Server 2008 R2 og senere). I tilfælde af eksekverbare filer har ikonet et sikkerhedsskjoldsoverlay. Følgende opgaver kræver administratorrettigheder:

  • Kører et program som administrator
  • Ændringer i systemomfattende indstillinger
  • Ændringer af filer i mapper, som standardbrugere ikke har tilladelser til (f.eks. % SystemRoot % eller % ProgramFiles % i de fleste tilfælde)
  • Ændringer i en adgangskontrolliste (ACL) , der normalt kaldes fil- eller mappetilladelser
  • Installation og afinstallation af applikationer uden for:
    • Den % USERPROFILE% (f.eks C: \ Brugere \ {indloggede bruger}) mappen og dens undermapper.
      • Det meste af tiden er dette i %APPDATA %. (f.eks. C: \ Brugere \ {logget ind bruger} \ AppData), som standard er dette en skjult mappe.
        • Chrome og Firefox installatør beder om administratorrettigheder under installationen, hvis det er givet, installeres Chrome i mappen Programfiler og kan bruges til alle brugere, hvis det nægtes, installeres Chrome i mappen % APPDATA % i stedet og kan kun bruges af den nuværende bruger.
    • Den Microsoft Store .
    • Installationsprogrammets mappe og dens undermapper.
      • Steam installerer sine spil i / steamapps / undermappen og beder derfor ikke om UAC. Nogle spil kræver forudsætninger for at blive installeret, hvilket kan bede UAC.
  • Installation af enhedens drivere
  • Installation af ActiveX -kontroller
  • Ændring af indstillinger for Windows Firewall
  • Ændring af UAC -indstillinger
  • Konfiguration af Windows Update
  • Tilføjelse eller fjernelse af brugerkonti
  • Ændring af en brugers kontonavn eller -type
  • Oprettelse af en ny konto eller sletning af en brugerkonto
  • Aktivering af gæstekonto (Windows 7 til 8.1)
  • Aktivering af netværksopdagelse, fil- og printerdeling, deling af offentlig mappe, deaktivering af adgangskodebeskyttet deling eller aktivering af mediestreaming
  • Konfiguration af forældrekontrol (i Windows 7) eller familiesikkerhed (Windows 8.1)
  • Kører Task Scheduler
  • Sikkerhedskopiering og gendannelse af mapper og filer
  • Fletning og sletning af netværksplaceringer
  • Aktivering eller rengøring af logning i præferencer for fjernadgang
  • Løbende farvekalibrering
  • Ændring af fjernbetjening, systembeskyttelse eller avancerede systemindstillinger
  • Gendannelse af sikkerhedskopierede systemfiler
  • Visning eller ændring af en anden brugers mapper og filer
  • Kører Diskdefragmentering , Systemgendannelse eller Windows Easy Transfer (Windows 7 til 8.1)
  • Kører registreringseditor
  • Kørsel af Windows Experience Index vurdering
  • Fejlfinding af lydoptagelse og afspilning, hardware / enheder og strømforbrug
  • Ændre strømindstillinger, slukke for Windows -funktioner, afinstallere, ændre eller reparere et program
  • Skift dato og klokkeslæt, og synkroniser med en internettids -server
  • Installation og afinstallation af displaysprog
  • Skift Øget tilgængelighed administrative indstillinger

Almindelige opgaver, f.eks. Ændring af tidszonen, kræver ikke administratorrettigheder (selvom ændring af selve systemtiden gør det, da systemtiden normalt bruges i sikkerhedsprotokoller, f.eks. Kerberos ). En række opgaver, der krævede administratorrettigheder i tidligere versioner af Windows, f.eks. Installation af kritiske Windows -opdateringer, kræver ikke længere administratorrettigheder i Vista. Ethvert program kan køres som administrator ved at højreklikke på dets ikon og klikke på "Kør som administrator", undtagen MSI- eller MSU-pakker, da der på grund af deres art vil være behov for administratorrettigheder, der normalt vil blive vist en prompt. Skulle dette mislykkes, er den eneste løsning at køre et kommandoprompt som administrator og starte MSI- eller MSP -pakken derfra.

Funktioner

Brugerkontokontrol beder om legitimationsoplysninger i en Secure Desktop -tilstand, hvor hele skærmen er midlertidigt nedtonet, Windows Aero deaktiveret og kun autorisationsvinduet ved fuld lysstyrke, for kun at vise brugergrænsefladen for højde (UI). Normale programmer kan ikke interagere med det sikre skrivebord. Dette hjælper med at forhindre spoofing, f.eks. At lægge forskellig tekst eller grafik oven på højdeforespørgslen eller justere musemarkøren for at klikke på bekræftelsesknappen, når det ikke er det, brugeren havde til hensigt. Hvis en administrativ aktivitet kommer fra en minimeret applikation, minimeres den sikre desktop -anmodning også for at forhindre fokus i at gå tabt. Det er muligt at deaktivere Secure Desktop , selvom dette ikke kan anbefales fra et sikkerhedsperspektiv.

I tidligere versioner af Windows oplevede programmer, der var skrevet med den antagelse, at brugeren kører med administratorrettigheder, problemer, når de køres fra begrænsede brugerkonti, ofte fordi de forsøgte at skrive til hele maskinen eller systemmapper (f.eks. Programfiler ) eller registreringsdatabase nøgler (især HKLM ). UAC forsøger at afhjælpe dette ved hjælp af File and Registry Virtualization , som omdirigerer skriver (og efterfølgende læsninger) til et sted pr. Bruger inden for brugerens profil. Hvis et program f.eks. Forsøger at skrive til et bibliotek, f.eks. "C: \ Program Files \ appname \ settings.ini", hvortil brugeren ikke har skrivetilladelse, omdirigeres skrivningen til "C: \ Users \ brugernavn \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini ". Omdirigeringsfunktionen findes kun til ikke-forhøjede 32-bit applikationer, og kun hvis de ikke indeholder et manifest, der anmoder om bestemte rettigheder.

Der er en række konfigurerbare UAC -indstillinger. Det er muligt at:

  • Kræv, at administratorer indtaster deres adgangskode igen for at øge sikkerheden,
  • Kræv brugeren til at trykke på Ctrl+Alt+Del som en del af godkendelsesprocessen for øget sikkerhed;
  • Deaktiver kun virtualisering af filer og registreringsdatabaser
  • Deaktiver Admin -godkendelsestilstand (UAC -prompts til administratorer) helt; Bemærk, at selvom dette deaktiverer UAC-bekræftelsesdialogerne, deaktiverer det ikke Windows 'indbyggede LUA- funktion, hvilket betyder, at brugere, selv dem, der er markeret som administratorer, stadig er begrænsede brugere uden reel administrativ adgang.

Kommandopromptvinduer , der kører forhøjede, vil præfikat vinduet med ordet "Administrator", så en bruger kan se, hvilke instanser der kører med forhøjede rettigheder.

Der skelnes mellem elevationsanmodninger fra en underskrevet eksekverbar og en usigneret eksekverbar; og hvis førstnævnte, om udgiveren er 'Windows Vista'. Farven, ikonet og ordlyden på meddelelserne er forskellige i hvert tilfælde; for eksempel at forsøge at formidle en større advarselsfornemmelse, hvis den eksekverbare fil er usigneret, end hvis ikke.

Internet Explorer 7s funktion "Beskyttet tilstand" bruger UAC til at køre med et "lavt" integritetsniveau (et standardbrugertoken har et integritetsniveau på "medium"; et forhøjet (Administrator) -token har et integritetsniveau på "højt") . Som sådan kører den effektivt i en sandkasse, ude af stand til at skrive til det meste af systemet (bortset fra mappen midlertidige internetfiler) uden at hæve via UAC. Da værktøjslinjer og ActiveX -kontroller kører inden for Internet Explorer -processen, vil de også køre med lave rettigheder og vil være stærkt begrænset i, hvilken skade de kan gøre på systemet.

Anmoder om højde

Et program kan anmode om forhøjelse på en række forskellige måder. En måde for programudviklere er at tilføje en requestPrivileges -sektion til et XML -dokument, kendt som manifestet , der derefter er integreret i applikationen. Et manifest kan angive afhængigheder, visuelle stilarter og nu den relevante sikkerhedskontekst:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
    <v3:security>
      <v3:requestedPrivileges>
        <v3:requestedExecutionLevel level="highestAvailable"/>
      </v3:requestedPrivileges>
    </v3:security>
  </v3:trustInfo>
</assembly>

Indstilling af niveauattributten for requestExecutionLevel til "asInvoker" får programmet til at køre med det token, der startede det, "højeste tilgængelige" vil præsentere en UAC -prompt for administratorer og køre med de sædvanlige reducerede privilegier for standardbrugere, og "requireAdministrator" kræver højde . I både højest tilgængelige og kræverAdministrator -tilstande resulterer manglende bekræftelse i, at programmet ikke startes.

En eksekverbar fil, der er markeret som " requireAdministrator" i sit manifest, kan ikke startes fra en ikke-forhøjet proces ved hjælp af CreateProcess(). I stedet ERROR_ELEVATION_REQUIREDvil blive returneret. ShellExecute()eller ShellExecuteEx()skal bruges i stedet. Hvis HWNDder ikke leveres en, vises dialogen som et blinkende element på proceslinjen.

Det anbefales ikke at inspicere et eksekverbart manifest for at afgøre, om det kræver højde, da højde kan være påkrævet af andre årsager (opsætning af eksekverbare filer, applikationskompatibilitet). Det er dog muligt at programmatisk registrere, om en eksekverbar fil vil kræve forhøjelse ved at bruge CreateProcess()og indstille dwCreationFlagsparameteren til CREATE_SUSPENDED. Hvis højde er påkrævet, ERROR_ELEVATION_REQUIREDvil den blive returneret. Hvis elevation ikke er påkrævet, returneres en succesreturkode, hvorefter man kan bruge den TerminateProcess()på den nyoprettede, suspenderede proces. Dette tillader ikke en at opdage, at en eksekverbar fil kræver forhøjelse, hvis man dog allerede udfører i en forhøjet proces.

En ny proces med forhøjede privilegier kan affødes inden for et .NET -program ved hjælp af runasverbet " ". Et eksempel ved hjælp af C# :

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "C:\\Windows\\system32\\notepad.exe";
proc.StartInfo.Verb = "runas"; // Elevate the application
proc.StartInfo.UseShellExecute = true;
proc.Start();

I en indfødt Win32 -applikation kan det samme runasverbum føjes til et ShellExecute()eller ShellExecuteEx()kalde:

ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);

I mangel af et specifikt direktiv, der angiver, hvilke privilegier ansøgningen anmoder om, vil UAC anvende heuristik for at afgøre, om applikationen har brug for administratorrettigheder. For eksempel, hvis UAC registrerer, at applikationen er et installationsprogram, fra spor som filnavnet, versioneringsfelterne eller tilstedeværelsen af ​​bestemte sekvenser af bytes i den eksekverbare fil, vil det i mangel af et manifest antage, at applikationen har brug for administrator privilegier.

Sikkerhed

UAC er en bekvemmelighedsfunktion ; det hverken indfører en sikkerhedsgrænse eller forhindrer udførelse af malware .

Leo Davidson opdagede, at Microsoft svækkede UAC i Windows 7 ved fritagelse for omkring 70 Windows -programmer fra at vise en UAC -prompt og fremlagde et bevis på konceptet for en eskalering af privilegier .

Stefan Kanthak fremlagde et bevis på konceptet for en eskalering af privilegier via UACs installationsdetektering og IExpress -installatører .

Stefan Kanthak fremlagde endnu et bevis på konceptet for vilkårlig kodeudførelse samt privilegium-eskalering via UACs auto-elevation og binær plantning.

Kritik

Der har været klager over, at UAC -meddelelser bremser forskellige opgaver på computeren, såsom den første installation af software på Windows Vista . Det er muligt at deaktivere UAC, mens du installerer software, og genaktivere det på et senere tidspunkt. Dette anbefales dog ikke, da File & Registry Virtualization kun er aktiv, når UAC er slået til, kan brugerindstillinger og konfigurationsfiler installeres et andet sted (en systemmappe frem for en brugerspecifik bibliotek), hvis UAC skiftes off, end de ellers ville være. Også Internet Explorer 7 's "Protected Mode", hvor browseren kører i en sandkasse med lavere privilegier end standardbrugeren, er afhængig af UAC; og fungerer ikke, hvis UAC er deaktiveret.

Yankee Group -analytiker Andrew Jaquith sagde seks måneder før Vista blev frigivet, at "mens det nye sikkerhedssystem viser løfte, er det alt for chatty og irriterende." Da Windows Vista blev frigivet i november 2006, havde Microsoft drastisk reduceret antallet af operativsystemopgaver, der udløste UAC -prompts, og tilføjede fil- og registreringsvirtualisering for at reducere antallet af ældre programmer, der udløste UAC -prompts. David Cross, produktchef hos Microsoft, udtalte imidlertid under RSA -konferencen 2008, at UAC faktisk var designet til at "irritere brugere" og tvinge uafhængige softwareleverandører til at gøre deres programmer mere sikre, så UAC -prompts ikke blev udløst. Software skrevet til Windows XP og mange eksterne enheder ville ikke længere fungere i Windows Vista eller 7 på grund af de omfattende ændringer, der blev foretaget i introduktionen af ​​UAC. Kompatibilitetsmulighederne var også utilstrækkelige. Som svar på denne kritik ændrede Microsoft UAC -aktivitet i Windows 7 . For eksempel bliver brugere som standard ikke bedt om at bekræfte mange handlinger, der er startet med musen og tastaturet alene, f.eks. Betjening af kontrolpanel -applets.

I en kontroversiel artikel sagde New York Times Gadgetwise-forfatter Paul Boutin "Sluk for Vista's alt for beskyttende brugerkontokontrol. Disse pop-ups er som at have din mor svævende over din skulder, mens du arbejder." Computerworld -journalist Preston Gralla beskrev NYT -artiklen som "... et af de værste tekniske råd, der nogensinde er udsendt."

Se også

Referencer

eksterne links