Dela via


Princip för begränsning av programvara

SRP-inställningarna (Software Restriction Policy) introducerades i och med lanseringen av Windows XP för att skydda system från okänd och eventuellt farlig kod. SRP tillhandahåller en mekanism där endast betrodd kod ges obegränsad åtkomst till en användares behörigheter. Okänd kod, som kan innehålla virus eller kod som står i konflikt med installerade program, tillåts endast köras i en begränsad miljö (kallas ofta sandbox-) där det inte är tillåtet att komma åt säkerhetskänsliga användarbehörigheter. Korrekt användning av SRP kan göra ditt företag mer agilt eftersom det ger ett proaktivt ramverk för att förebygga problem, snarare än ett reaktivt ramverk som förlitar sig på det kostsamma alternativet att återställa ett system när ett problem har uppstått.

SRP är beroende av att tilldela förtroendenivåer till den kod som kan köras på ett system. För närvarande finns det två förtroendenivåer: Obegränsad och Otillåten. Kod som har en obegränsad förtroendenivå ges obegränsad åtkomst till användarens behörigheter, så den här förtroendenivån bör endast tillämpas på fullständigt betrodd kod. Kod med en otillåten förtroendenivå tillåts inte att komma åt säkerhetskänsliga användarbehörigheter och kan endast köras i en sandbox-miljö så att obegränsad kod inte kan läsa in den otillåtna koden i adressutrymmet.

SRP-konfigurationen av enskilda COM-program görs via värdet SRPTrustLevel i programmets AppID- nyckel i registret. Om SRP-förtroendenivån inte har angetts för ett COM-program används standardvärdet Otillåtet. Ett COM-program som har en obegränsad förtroendenivå har obegränsad åtkomst till användarens behörigheter, men som bara kan läsa in komponenter med en obegränsad förtroendenivå, medan ett otillåtet COM-program kan läsa in komponenter med valfri förtroendenivå men inte komma åt några säkerhetskänsliga användarbehörigheter.

Förutom SRP-förtroendenivåerna för enskilda COM-program avgör två andra SRP-egenskaper hur SRP används för alla COM-program. Om SRPRunningObjectChecks är aktiverat, kontrolleras försök att ansluta till objekt som körs efter lämpliga SRP-förtroendenivåer. Objektet som körs kan inte ha en mindre strikt SRP-förtroendenivå än klientobjektet. Det objekt som körs kan till exempel inte ha en otillåten förtroendenivå om klientobjektet har en obegränsad förtroendenivå.

Den andra egenskapen avgör hur SRP hanterar aktivering som aktiveringsanslutningar. Om SRPActivateAsActivatorChecks är aktiverat jämförs den SRP-förtroendenivå som har konfigurerats för serverobjektet med klientobjektets SRP-förtroendenivå och den strängare förtroendenivån används för att köra serverobjektet. Om SRPActivateAsActivatorChecks inte är aktiverat körs serverobjektet med SRP-förtroendenivån för klientobjektet, oavsett den SRP-förtroendenivå som det konfigurerades med. Som standard är både SRPRunningObjectChecks och SRPActivateAsActivatorChecks aktiverade.