UAC i Windows 7

UAC, User Account Control, er fortsatt med i Windows 7. Denne grunnleggende OS funksjonaliteten ble innført i Windows Vista og adresserer direkte sikkerhetsutfordringen med at altfor mange brukere kjører som Lokal Administrator til enhver tid (80% av forretningsbrukere og 97% av hjemmebrukere). Dette har for eksempel gjort det langt lettere for virus, bots osv å spre seg. For mer generelt rundt UAC, se tidligere poster.

 

Endringer i Windows 7 UAC

Auto elevation er noe helt nytt. I praksis betyr det at du får færre UAC prompts fordi windows exe filer eleveres automatisk. Dette fungerer på følgende måte:

  • Binær filen må være signert av Microsoft og med Windows sertifikatet. Dette benyttes til å signere all kode som sjekkes inn i Windows OS’et. Auto elevering vil derfor ikke omfatte andre Microsoft programmer.
  • Binær filen må også ligge i en sikker katalog, et sted standard brukere ikke har skrive-rettigheter. Dette inkluderer følgende kataloger: %SystemRoot%\System32 og de fleste underkataloger, %SystemRoot%\Ehome, og enkelte kataloger under %ProgramFiles%
  • Exe filen må ha satt auto-elevate elementet i manifestet sitt.
  • Det finnes enkelte filer som er hardkodet for å skulle auto-eleveres uten å ha det i manifestet, fordi de må kjøre på eldre OS også, og der ville autoelevate elementet medført en feil. Blant annet migwiz.exe, pkgmgr.exe og spinstall.exe
  • MMC får også spesialbehandling. Der sjekkes også plugins om hvorvidt de oppfyller kravene til auto elevering. Dette selvsagt for at man ikke skal kunne autoelevere egne programmer ved å lage de som mmc plugins.
  • Tilsvarende for cmd.exe og rundll32.exe, disse kan brukes til å eksevere annen kode/programmer og det kan lett gjøres fra kommandolinja. Derfor er disse to ikke kompilert med Autoelevate elementet.

 

Vi har fått masse spørsmål om å legge inn muligheter for å ha en white-list over applikasjoner som kan autoeleveres. Det har vi ikke sett at er mulig å gjøre på en god nok måte, derfor er det heller ikke med. En slik liste ville åpnet for mange angrepsvektorer og ikke minst virket mot et av våre mål: få utviklere til å skrive programmene slik at de ikke trenger administrative rettigheter.

 

 

Utover dette er det også lagt enda mer vekt på hvilke oppgaver som faktisk bør kreve admin rettigheter og ikke. Det er også 4 nivåer å velge i nå:

  • Det øverste nivået er det samme som på Vista.
  • Nivået under gjør at Windows 7 vil bruke Autoelevation som beskrevet over
  • Nivået nest nederst er det samme som over, men uten Secure Desktop.
  • Den nederste slår av UAC helt, inkludert tilhørende elementer som fil system og registry virtualisering og Protected Mode i IE 8.

 

Default innstilling er vist i bildet, nivå 3.

 

 

 

 

 

 

 

 

 

 

Angrepsvektorer

Vi vet at malware og annen programvare vil bli utviklet spesielt for å komme seg rundt UAC og det finnes en rekke måter å gjøre dette på faktisk. Men, det vil kreve aktiv utvikling med dette i tankene. UAC er sånn sett med å redusere risikoen for angrep, men kan ikke regnes som en såkalt “security boundary”.

Følgende måter forventer vi vil bli brukt til å komme rundt UAC:

  • Social engeenering. god gammeldags metode, lur brukeren til å elevere.
  • DLL injection. Benytte seg av auto elevering av andre applikasjoner og WriteProcessMemory API til å skrive kode til disse prosessenes minne. Deretter brukte CreateRemoteThread API til å eksekvere denne.
  • Applikasjonsspesifikke angrep. Både utnytte applikasjoner som må kjøres elevert, så vel som å bruke applikasjonen som “dekke” for å lure brukeren til å elevere. Antageligvis gjennom sårbarheter i applikasjonen eller injection.
  • Ikke minst vil det nok komme mer malware som er UAC aware på den måten at de også utvikler for standard brukere. Dette begrenser noe hva man kan gjøre, med de vil jo ha tilgang til alle brukerens data og kan gjemme seg for brukeren. ref user-mode rootkits.

 

Bookmark and Share