Brukerkonto-kontroll - User Account Control

Brukerkontokontroll i Windows 10
Brukerkontokontroll "Windows Security" varsler i Windows 10 i lysmodus. Fra topp til bunn: blokkert app , app med ukjent utgiver, app med en kjent/klarert utgiver.

User Account Control ( UAC ) er en obligatorisk tilgangskontroll håndhevelse funksjon introdusert med Microsoft 's Windows Vista og Windows Server 2008 operativsystemer , med en mer avslappet versjon 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 . Den tar sikte på å forbedre sikkerheten til Microsoft Windows ved å begrense applikasjonsprogramvaren til standard brukerrettigheter til en administrator godkjenner en økning eller forhøyelse. På denne måten kan bare applikasjoner som brukeren stoler på, motta administrative privilegier, og skadelig programvare bør hindres i å kompromittere operativsystemet. Med andre ord kan en brukerkonto ha administratorrettigheter tilordnet den, men programmer som brukeren kjører, arver ikke disse rettighetene med mindre de er godkjent på forhånd eller brukeren eksplisitt autoriserer det.

UAC bruker obligatorisk integritetskontroll for å isolere kjørende prosesser med forskjellige privilegier. For å redusere muligheten for at programmer med lavere privilegier kommuniserer med programmer med høyere privilegier, brukes en annen ny teknologi, User Interface Privilege Isolation , sammen med brukerkontokontroll for å isolere disse prosessene fra hverandre. En fremtredende bruk av dette er Internet Explorer 7s "Protected Mode".

Operativsystemer på mainframes og på servere har differensiert mellom superbrukere og brukerland i flere tiår. Dette hadde en åpenbar sikkerhetskomponent, men også en administrativ komponent, ved at det forhindret brukere i å ved et uhell endre systeminnstillinger.

Tidlig Microsoft hjem driftssystemer (for eksempel MS-DOS , Windows 95 - nittiåtte og Windows Me ) ikke har et konsept av forskjellige brukerkontoer på samme maskin. Senere versjoner av Windows- og Microsoft-applikasjoner oppmuntret til bruk av ikke-administrator brukerlogginger, men noen applikasjoner fortsatte å kreve administratorrettigheter. Microsoft sertifiserer ikke programmer som Windows-kompatible hvis de krever administratorrettigheter; slike applikasjoner kan ikke bruke den Windows-kompatible logoen med emballasjen.

  • MS-DOS og Windows versjoner 1.0 til 3.11: alle applikasjoner hadde privilegier som tilsvarer operativsystemet;
  • Windows 9x og Windows Me : alle applikasjoner likte systemdekkende privilegier som konkurrerer om selve operativsystemet;
  • Alle versjoner av Windows NT opp til Windows XP : introduserte flere brukerkontoer, men i praksis fortsatte de fleste brukerne å fungere som administrator for sine normale operasjoner. Noen applikasjoner krever videre at brukeren er administrator for at noen eller alle funksjonene deres skal fungere.
  • Windows Vista : Microsoft utviklet Vista -sikkerhet først fra Limited User Account (LUA), og omdøpte deretter konseptet til User Account Protection (UAP) før det til slutt ble sendt brukerkontokontroll (UAC). Brukerkontokontroll (UAC) bleintrodusert i Windows Vista , og tilbyr en tilnærming for å oppmuntre til "superbruker når det er nødvendig". Nøkkelen til UAC ligger i dens evne til å heve privilegier uten å endre brukerkonteksten (brukeren "Bob" er fortsatt brukeren "Bob"). Som alltid er det vanskelig å introdusere nye sikkerhetsfunksjoner uten å bryte kompatibiliteten med eksisterende applikasjoner.
    • Når noen logger på Vista som en standardbruker, setter systemet opp en påloggingsøkt og tildeler et token som bare inneholder de mest grunnleggende rettighetene. På denne måten kan den nye påloggingsøkten ikke gjøre endringer som vil påvirke hele systemet.
    • Når en person logger på som en bruker med medlemskap i gruppen Administratorer, tilordner systemet to separate tokens: det første tokenet inneholder alle privilegier som vanligvis tildeles en administrator, og det andre er et begrenset token som ligner på hva en standardbruker ville motta.
      • Brukerprogrammer, inkludert Windows Shell , starter deretter med det begrensede tokenet, noe som resulterer i et redusert privilegium-selv når det kjøres under en administratorkonto.
      • Når en applikasjon ber om høyere rettigheter eller når en bruker velger alternativet "Kjør som administrator", vil UAC be standardbrukere om å angi legitimasjonen til en administratorkonto og be administratorer om bekreftelse, og hvis samtykke er gitt, fortsette eller starte prosessen ved hjelp av et ubegrenset tegn.
  • Windows 7 : Microsoft inkluderte et brukergrensesnitt for å endre brukerkontokontrollinnstillinger, og introduserte en ny varslingsmodus: standardinnstillingen . Som standard ber UAC ikke om samtykke når brukere gjør endringer i Windows -innstillinger som krever forhøyet tillatelse gjennom programmer som er lagret i % SystemRoot % og signert digitalt av Microsoft. Programmer som krever tillatelse for å kjøre, utløser fortsatt en melding. Andre innstillinger for brukerkontokontroll som kan endres gjennom det nye brukergrensesnittet, kunne ha blitt åpnet gjennom registret i Windows Vista.
  • Windows 8 og 8.1 : legg til en designendring. Når UAC utløses, blir alle applikasjoner og oppgavelinjen skjult når skrivebordet er nedtonet.
  • Windows 10 : kopierer samme oppsett som Windows 8 og 8.1 , men jubileumsoppdateringen har et mer moderne utseende. Windows 10 legger også til støtte for Windows Hello i dialogboksen Kontroll av brukerkonto.

Oppgaver som utløser en UAC -melding

Oppgaver som krever administratorrettigheter vil utløse en UAC -melding (hvis UAC er aktivert); de er vanligvis merket med et sikkerhetsskjermikon med de fire fargene på Windows -logoen (i Vista og Windows Server 2008) eller med to paneler gule og to blå (Windows 7, Windows Server 2008 R2 og nyere). Når det gjelder kjørbare filer, vil ikonet ha et sikkerhetsskjermoverlegg. Følgende oppgaver krever administratorrettigheter:

  • Kjører et program som administrator
  • Endringer i systemdekkende innstillinger
  • Endringer i filer i mapper som standardbrukere ikke har tillatelser til (for eksempel % SystemRoot % eller % ProgramFiles % i de fleste tilfeller)
  • Endringer i en tilgangskontrolliste (ACL) , ofte referert til som fil- eller mappetillatelser
  • Installere og avinstallere programmer utenfor:
    • Det % USERPROFILE% (for eksempel C: \ brukere \ {innlogget bruker}) mappen og dens undermapper.
      • Mesteparten av tiden er dette i %APPDATA %. (f.eks. C: \ Users \ {logget inn bruker} \ AppData), som standard er dette en skjult mappe.
        • Chrome og Firefox installatør ber om administratorrettigheter under installasjonen. Hvis det er gitt, installeres Chrome i Program Files -mappen og kan brukes for alle brukere, hvis Chrome nektes, installeres Chrome i % APPDATA % -mappen i stedet og bare kan brukes av den nåværende brukeren.
    • The Microsoft Store .
    • Mappen til installasjonsprogrammet og dets undermapper.
      • Steam installerer spillene sine i / steamapps / undermappen, og krever derfor ikke UAC. Noen spill krever at forutsetninger er installert, noe som kan føre til UAC.
  • Installere enhetsdrivere
  • Installere ActiveX -kontroller
  • Endre innstillinger for Windows -brannmur
  • Endre UAC -innstillinger
  • Konfigurere Windows Update
  • Legge til eller fjerne brukerkontoer
  • Endre brukerens kontonavn eller -type
  • Opprette en ny konto eller slette en brukerkonto
  • Slå på gjestekonto (Windows 7 til 8.1)
  • Slå på nettverksoppdagelse, fil- og skriverdeling, Offentlig mappedeling, slå av passordbeskyttet deling eller slå på mediestreaming
  • Konfigurere foreldrekontroll (i Windows 7) eller familiesikkerhet (Windows 8.1)
  • Running Task Scheduler
  • Sikkerhetskopiere og gjenopprette mapper og filer
  • Slå sammen og sletter nettverkssteder
  • Slå på eller rengjøre logging i Innstillinger for ekstern tilgang
  • Løpende fargekalibrering
  • Endre fjernkontroll, systembeskyttelse eller avanserte systeminnstillinger
  • Gjenopprette sikkerhetskopierte systemfiler
  • Visning eller endring av en annen brukers mapper og filer
  • Kjører Diskdefragmentering , Systemgjenoppretting eller Windows enkel overføring (Windows 7 til 8.1)
  • Kjører Registerredigering
  • Kjøre Windows Experience Index vurderingen
  • Feilsøk lydopptak og avspilling, maskinvare / enheter og strømbruk
  • Endre strøminnstillinger, slå av Windows -funksjoner, avinstaller, endre eller reparer et program
  • Endre dato og klokkeslett og synkroniser med en Internett -tidsserver
  • Installere og avinstallere skjermspråk
  • Endre brukervennlige administrasjonsinnstillinger

Vanlige oppgaver, for eksempel å endre tidssonen, krever ikke administratorrettigheter (selv om du endrer systemtiden i seg selv, siden systemtiden ofte brukes i sikkerhetsprotokoller som Kerberos ). En rekke oppgaver som krevde administratorrettigheter i tidligere versjoner av Windows, for eksempel installering av viktige Windows -oppdateringer, krever ikke lenger administratorrettigheter i Vista. Ethvert program kan kjøres som administrator ved å høyreklikke på ikonet og klikke "Kjør som administrator", bortsett fra MSI- eller MSU-pakker, ettersom det på grunn av deres natur vil være nødvendig med administratorrettigheter, vises det vanligvis en melding. Skulle dette mislykkes, er den eneste løsningen å kjøre en kommandoprompt som administrator og starte MSI- eller MSP -pakken derfra.

Funksjoner

Brukerkontokontroll ber om legitimasjon i en sikker skrivebordsmodus , der hele skjermen er midlertidig nedtonet, Windows Aero deaktivert, og bare autorisasjonsvinduet med full lysstyrke, for bare å vise brukergrensesnittet for høyde (UI). Normale programmer kan ikke samhandle med Secure Desktop. Dette bidrar til å forhindre forfalskning, for eksempel å legge over annen tekst eller grafikk på toppen av høydeforespørselen, eller justere musepekeren for å klikke på bekreftelsesknappen når det ikke er det brukeren hadde til hensikt. Hvis en administrativ aktivitet kommer fra et minimert program, vil den sikre skrivebordsforespørselen også bli minimert for å forhindre at fokus går tapt. Det er mulig å deaktivere Secure Desktop , selv om dette ikke er tilrådelig fra et sikkerhetsperspektiv.

I tidligere versjoner av Windows opplevde programmer skrevet med forutsetningen om at brukeren vil kjøre med administratorrettigheter problemer når de kjøres fra begrensede brukerkontoer, ofte fordi de forsøkte å skrive til maskinomfattende eller systemkataloger (for eksempel programfiler ) eller register nøkler (særlig HKLM ). UAC prøver å avhjelpe dette ved hjelp av File and Registry Virtualization , som omdirigerer skriver (og påfølgende lesninger) til et sted per bruker i brukerens profil. For eksempel, hvis et program prøver å skrive til en katalog som "C: \ Program Files \ appname \ settings.ini" som brukeren ikke har skrivetillatelse til, blir skriveren omdirigert til "C: \ Users \ brukernavn \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini ". Omdirigeringsfunksjonen er bare tilgjengelig for ikke-forhøyede 32-biters applikasjoner, og bare hvis de ikke inneholder et manifest som krever spesifikke privilegier.

Det finnes en rekke konfigurerbare UAC -innstillinger. Det er mulig å:

  • Krev at administratorer angir passordet på nytt for økt sikkerhet,
  • Krev brukeren å trykke Ctrl+Alt+Del som en del av godkjenningsprosessen for økt sikkerhet;
  • Deaktiver bare fil- og registervirtualisering
  • Deaktiver administrasjonsgodkjenningsmodus (UAC -forespørsler for administratorer) helt; Vær oppmerksom på at selv om dette deaktiverer UAC-bekreftelsesdialogboksene, deaktiverer det ikke Windows 'innebygde LUA- funksjon, noe som betyr at brukere, selv de som er merket som administratorer, fortsatt er begrensede brukere uten ekte administrativ tilgang.

Kommandoprompt -vinduer som kjører forhøyet, vil prefiks tittelen på vinduet med ordet "Administrator", slik at en bruker kan se hvilke forekomster som kjører med forhøyede rettigheter.

Det skilles mellom høydeforespørsler fra en signert kjørbar og en usignert kjørbar; og hvis førstnevnte, om utgiveren er 'Windows Vista'. Fargen, ikonet og ordlyden på meldingene er forskjellige i hvert tilfelle; for eksempel forsøk på å formidle en større følelse av advarsel hvis den kjørbare filen er usignert enn hvis ikke.

Internet Explorer 7s "Protected Mode" -funksjon bruker UAC til å kjøre med et "lavt" integritetsnivå (et standard brukertoken har et integritetsnivå på "medium"; et forhøyet (administrator) token har et integritetsnivå på "høyt") . Som sådan kjører den effektivt i en sandkasse, og kan ikke skrive til det meste av systemet (bortsett fra mappen Temporary Internet Files) uten å øke via UAC. Siden verktøylinjer og ActiveX -kontroller kjøres i Internet Explorer -prosessen, vil de også kjøre med lave rettigheter, og vil være sterkt begrenset i hvilken skade de kan gjøre på systemet.

Ber om høyde

Et program kan be om høyde på en rekke forskjellige måter. En måte for programutviklere er å legge til en requestPrivileges -seksjon i et XML -dokument, kjent som manifestet , som deretter blir innebygd i programmet. Et manifest kan angi avhengigheter, visuelle stiler og nå den riktige sikkerhetskonteksten:

<?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>

Hvis du angir nivåattributtet for requestExecutionLevel til "asInvoker", vil programmet kjøre med tokenet som startet det, "høyeste tilgjengelige" vil presentere en UAC -melding for administratorer og kjøre med de vanlige reduserte rettighetene for standardbrukere, og "requireAdministrator" vil kreve høyning . I både modusene høyest tilgjengelig og krever administrator, vil manglende bekreftelse resultere i at programmet ikke blir lansert.

En kjørbar som er merket som " requireAdministrator" i manifestet, kan ikke startes fra en ikke-forhøyet prosess med CreateProcess(). I stedet ERROR_ELEVATION_REQUIREDvil bli returnert. ShellExecute()eller ShellExecuteEx()må brukes i stedet. Hvis en HWNDikke følger med, vises dialogboksen som et blinkende element på oppgavelinjen.

Det anbefales ikke å inspisere en kjørbar manifest for å avgjøre om den krever høyde, da høyden kan være nødvendig av andre årsaker (oppsettskjørbare filer, programkompatibilitet). Imidlertid er det mulig å programmatisk oppdage om en kjørbar vil kreve høyning ved å bruke CreateProcess()og sette dwCreationFlagsparameteren til CREATE_SUSPENDED. Hvis høyde er nødvendig, ERROR_ELEVATION_REQUIREDvil den bli returnert. Hvis høyde ikke er nødvendig, vil en suksessreturkode bli returnert, da kan du bruke den TerminateProcess()på den nyopprettede, suspenderte prosessen. Dette vil ikke tillate en å oppdage at en kjørbar krever høyde hvis en allerede utfører i en forhøyet prosess.

En ny prosess med forhøyede privilegier kan oppstå i et .NET -program ved å bruke " runas" verbet. Et eksempel ved bruk av 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 innfødt Win32 -applikasjon kan det samme runasverbet " " legges til en ShellExecute()eller ShellExecuteEx()ringe:

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

I mangel av et spesifikt direktiv som angir hvilke privilegier programmet ber om, vil UAC anvende heuristikk for å avgjøre om applikasjonen trenger administratorrettigheter eller ikke. For eksempel, hvis UAC oppdager at programmet er et oppsettprogram, fra ledetråder som filnavnet, versjonsfeltene eller tilstedeværelsen av visse bytesekvenser i den kjørbare filen, vil det i fravær av et manifest anta at programmet trenger administrator privilegier.

Sikkerhet

UAC er en praktisk funksjon; det introduserer verken en sikkerhetsgrense eller forhindrer utførelse av skadelig programvare .

Leo Davidson oppdaget at Microsoft svekket UAC i Windows 7 ved unntak av rundt 70 Windows -programmer fra å vise en UAC -melding og presenterte et konseptbevis for en opptrapping av privilegier .

Stefan Kanthak presenterte et konseptbevis for en opptrapping av privilegier via UACs installasjonsdeteksjon og IExpress -installatører .

Stefan Kanthak presenterte et annet bevis på konseptet for vilkårlig kjøring av kode , samt eskalering av privilegier via UACs auto-elevation og binær planting.

Kritikk

Det har blitt klaget på at UAC -varsler reduserer forskjellige oppgaver på datamaskinen, for eksempel den første installasjonen av programvare på Windows Vista . Det er mulig å slå av UAC mens du installerer programvare, og aktivere det på nytt senere. Imidlertid anbefales dette ikke, siden File & Registry Virtualization bare er aktiv når UAC er slått på, kan brukerinnstillinger og konfigurasjonsfiler installeres til et annet sted (en systemkatalog i stedet for en brukerspesifikk katalog) hvis UAC er byttet av enn de ellers ville vært. Også Internet Explorer 7s "Protected Mode", der nettleseren kjører i en sandkasse med lavere rettigheter enn standardbrukeren, er avhengig av UAC; og vil ikke fungere hvis UAC er deaktivert.

Yankee Group -analytiker Andrew Jaquith sa, seks måneder før Vista ble utgitt, at "mens det nye sikkerhetssystemet viser løfte, er det altfor pratsomt og irriterende." Da Windows Vista ble utgitt i november 2006, hadde Microsoft drastisk redusert antall operativsystemoppgaver som utløste UAC -ledetekster, og lagt til fil- og registervirtualisering for å redusere antall eldre programmer som utløste UAC -ledetekster. David Cross, en produktenhetssjef i Microsoft, uttalte imidlertid under RSA -konferansen 2008 at UAC faktisk var designet for å "irritere brukere" og tvinge uavhengige programvareleverandører til å gjøre programmene sine sikrere, slik at UAC -meldinger ikke ble utløst. Programvare skrevet for Windows XP , og mange eksterne enheter, vil ikke lenger fungere i Windows Vista eller 7 på grunn av de omfattende endringene som ble gjort i introduksjonen av UAC. Kompatibilitetsalternativene var også utilstrekkelige. Som svar på denne kritikken endret Microsoft UAC -aktiviteten i Windows 7 . For eksempel blir brukerne som standard ikke bedt om å bekrefte mange handlinger som er startet med musen og tastaturet alene, for eksempel betjening av kontrollpanelappletter.

I en kontroversiell artikkel sa New York Times Gadgetwise-forfatter Paul Boutin "Slå av Vista's altfor beskyttende brukerkontokontroll. Disse popup-vinduene er som å ha moren din svevende over skulderen mens du jobber." Computerworld -journalisten Preston Gralla beskrev NYT -artikkelen som "... en av de verste tekniske rådene noensinne er gitt."

Se også

Referanser

Eksterne linker