BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Software Restriction Policies w kilku krokach

19-01-2006 09:00 | Dawid Kuboszek
Software Restriction Policies to usługi kontrolujące aplikacje, jakie są uruchamiane przez użytkowników. Dzięki wdrożeniu SRP administator uzyskuje możliwość dopuszczenia do użytku wybranych programów lub zablokowaniu dostępu do konkretnych aplikacji. W niniejszym artykule omawiana jest prosta konfiguracja SRP - zapraszamy do lektury!

Software Restriction Policies zostały wprowadzone w Windows XP oraz w rodzinie Windows Server 2003. Służą do ograniczenia możliwości wykonywania programów oraz blokowania dostępu instalacji oprogramowania z witryn internetowych. Dzięki temu firmowa infrastruktura IT staje się jeszcze bardziej bezpieczna. Użytkownicy bowiem mają w zwyczaju pobieranie różnorakich plików z Internetu, nie sprawdzając wcześniej ich autentyczności (np. poprzez weryfikację sum kontrolnych). Często przynoszą też własne niezaufane dla sieci firmowej nośniki. Wszystko to powoduje poważne zagrożenie bezpieczeństwa sieci. Jest jednak sposób, aby temu zaradzić - Software Restriction Policies (restrykcje programowe). Wprowadzając SRP w infrastrukturę IT zapewnimy sieci o wiele wyższy poziom bezpieczeństwa i dodatkową pomoc w zakresie:

  • przeciwdziałaniu wirusom
  • ograniczaniu możliwości pobierania kontrolek ActiveX
  • kontroli wykonywania skryptów *.vbs, *.cmd, *.bat itp.
  • kontroli oprogramowania
  • zablokowania stacji roboczej (tzw. pełna restrykcja)

Podstawy

Restrykcje programowe wprowadza się poprzez GPO. Dzięki temu zarządzanie nimi staje się bardzo łatwym i przyjemnym zadaniem. Istnieje kilka reguł restrykcji:

  • Hash — to unikalny odcisk pliku nie związany z jego nazwą oraz ścieżką. Jest to najlepsza metoda ograniczenia aplikacji, jeżeli może ona występować w różnych miejscach na dysku. Reguła przedstawia się w sposób następujący:
    [MD5 lub SHA1 wartość hasha]:[wielkość pliku]:[id algorytmu haszującego]
    Przykładowo dla programu putty.exe będzie to:
    f6918ab9914b9e90d957c2bc58a80371:421888:32771
  • Certyfikat—Istnieje możliwość podpisania pliku, skryptu czy też kontrolki ActiveX certyfikatem, który będzie pozwalał, bądź zabraniał uruchomienia. Aby wystawić certyfikat można skorzystać z własnego CA lub firm trzecich, takich jak np. VeriSign
  • Ścieżka—Istnieje możliwość zezwolenia aplikacjom znajdującym się w danej ścieżce (UNC) na uruchomienie. Jeśli stosowana będzie właśnie ta metoda, należy uważać na przydzielane uprawnień do katalogów, ponieważ jeżeli użytkownik będzie miał możliwość zapisu w takim katalogu, to będzie też w stanie uruchomić każdą aplikacje. Podczas definiowania ścieżki można korzystać ze znaków * lub ?. Przykładowo zezwalając użytkownikowi na uruchomienie aplikacji znajdujących się w katalogu C:\Prog*\aplikacj?\ ma on możliwość uruchomienia wszystkich programów spełniających tę regułę, np.
    C:\Programy\aplikacja\
    C:\Progra\aplikacj1\
    itd.
    Wiadomo, że każdy użytkownik może zainstalować Office w dowolnym katalogu, nie koniecznie musi to być C:\Program Files\Microsoft Office\ ale nie jest to znaczący problem. Istnieje możliwość pobierania ścieżki prosto z rejestru systemowego klienta. Stosuje się to w następujący sposób:
    %[Gałąź Rejestru]\[Klucz]\[Wartośc]%
    Znak % musi znajdowac się na początku i na końcu scieżki

    Dla Office 2003 będzie to:
    % HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\InstallRoot\Path%
  • Strefy—Strefy internetowe. Dzięki restrykcjom istnieje możliwość zabronienia użytkownikom, którzy korzystają z Internet Explorer pobieranie plików *.MSI z:
    • Internetu
    • lokalnego Internetu
    • zaufanych witryn
    • witryn z ograniczeniami
    • swojego komputera

Kolejność reguł

Reguły są stosowane według specyficznej kolejności:

  • 4 Reguła oparta na hashach
  • 3 Reguła oparta na certyfikatach
  • 2 Reguła oparta na ścieżce
  • 1 Reguły stref internetowych
  • 0 Domyśla reguła

Oznacza to, że jeżeli zabroni się wykonywania programów w ścieżce c:\Brak_Wykonywania\, a będzie się tam znajdował program putty.exe, który będzie posiadał regułę opartą na hashu zezwalającą na jego wykonanie, program się wykona.

Konfiguracja Software Restriction Policies

Na początek polecamy stworzenie konta nowego użytkownika (test) oraz nowego GPO, z którego należy usunąć uprawnienia stosowania dla użytkowników uwierzytelnionych i dodanie na to miejsce użytkownika test.

Konfiguracja ogólna

W celu podstawowego skonfigurowania usług SRP, należy otworzyć okno GPO zgodnie z instrukcją na poniższym rysunku, a następnie:

Rysunek 1
  1. Kliknąć prawym klawiszem myszy w Software Restriction Policies i wybierać New Software Restriction Policies. Od tego momentu restrykcje dla użytkowników są włączone.
    Rysunek 2
  2. Wybrać opcję Enforcement
    Rysunek 3

    Jak widać istnieją tutaj dwie opcje. Większość programów, takich jak np. Word czy Excel oprócz plików wykonywalnych posiadają także znaczną ilość bibliotek DLL. Jeżeli opcja All software files zostanie włączona, do restrykcji będą musiały być dołączane również pliki *.DLL. Dlatego też polecamy pozostawienie zaznaczonej opcji All software files exept…, gdyż jeśli nie pozwala się na uruchomienie pliku exe, to nie ma dużego sensu zmieniać tę opcję (chyba, że w celu zabezpieczenia środowiska przed wirusami, które infekują owe biblioteki). Pomijanie kont administracyjnych pozwoli zaś na niestosowanie restrykcji dla administratorów.

  3. Wybrać opcję Designated File Types
    Rysunek 4

    W tym miejscu znajdują się wszystkie pliki uważane za wykonywalne lub stanowiące zagrożenie. Można dodać dodatkowe rozszerzenia, jeżeli zaistnieje taka konieczność.

  4. Trusted Publisher
    Rysunek 5
  5. Przejść do Security Levels. Aby zastosować restrykcje, należy zmienić wartość domyślą na Disallowed.

Od tej pory użytkownik nie uruchomi żadnego programu nie objętego regułą Zezwalaj. Domyślnie strefy internetowe są zezwolone i użytkownik może w pełni korzystać z przeglądarki. Zakładając, że ściągnie jakąkolwiek aplikację, nie będzie mógł jej uruchomić, dopóki nie otrzyma na to zezwolenia w postaci jednej z poniższych reguł:

  • Reguła oparta na haszach
  • Reguła oparta na ścieżce
  • Reguła oparta na certyfikatach

Reguła oparta na haszach

Reguła oparta na haszach to prawdopodobnie najbardziej odpowiednia reguła zezwalająca na wykonywanie programów.

Pobieramy program putty.exe i wracamy powrotem do GPO.

Rysunek 6

Wybieramy program putty.exe

Rysunek 7

Odświeżamy GPO na kliencie (gpupdate /Force) putty.exe działa niezależnie od tego, gdzie jest i jaką ma nazwę, czas modyfikacji itd.

Reguła oparta na ścieżce

Aby dodać regułę opartą na ścieżce, należy kliknąć prawym klawiszem myszy na Additional Rules i wybrać New path rule.

Rysunek 8

Ścieżka może przyjmować następujące wartości:

  • C:\Windows - Ścieżka lokalna
  • \\SERVER\UDZIAL - Udział sieciowy
  • %[Gałąź Rejestru]\[Klucz]\[Wartośc]% - Wartość rejestru
  • C:\Windows\System?? - Można stosować ?
  • C:\Windows\System\Temp\Dow* - Można stosować *
  • %[Gałąź Rejestru]\[Klucz]\[Wartośc]%katalog - Mixed mode
Jeżeli użytkownik będzie mógł zapisać do katalogu, w którym administrator zezwala na uruchamianie programów, cała operacja nie ma sensu!

Reguła oparta na certyfikatach

Stosuje się ją głównie do podpisywania skryptów. Można zdobyć certyfikat podpisu poprzez:

  • wystawienie przez własne CA
  • zamówienie u firm trzecich, takich jak VeriSign.
  • skorzystanie z narzędzi Authenticode for Internet Explorer 5.0 (makecert.exe)

Podpisywanie pliku korzystając z narzędzi Authenticode

Po zainstalowaniu Authenticode należy przejść do wiersza poleceń i wpisać po kolei:

Makecert.exe –n „cn=CERTYFIKAT TESTOWY” –ss my –eku 1.3.6.1.5.5.7.3.3 - Tworzymy certyfikat

Setreg.exe 1 true

echo msgbox "Przykładowy skrypt" >> c:\test.vbs - Tworzymy przykładowy skrypt

signcode.exe -cn "CERTYFIKAT TESTOWY" -t http://timestamp.verisign.com/scripts/timstamp.dll c:\test.vbs - Podpisujemy skrypt

chktrust.exe c:\test.vbs - Sprawdzamy podpis

certmgr.exe -put -c -v -n "CERTYFIKAT TESTOWY" -s my c:\test.cer - Instalujemy podpis

CA

Zażądać certyfikatu można na kilka sposobów: przez enrollment lub przez certsrv. W tym przypadku do uzyskania certyfikatu wykorzystany zostanie enrollment. Przed żądaniem certyfikatu należy dodać do posiadanego CA odpowiedni szablon. Aby tego dokonać, należy:

W wierszu poleceń wpisać:

mmc.exe

W konsoli MMC wejść do menu File, wybrać Add/remove snap-in, następnie Add, po czym wybrać Certificate templates, ponownie Add i kliknąć OK.

Rysunek 8a

stworzyć własny certyfikat:

Rysunek 8b

w zakładce General nadać unikalną nazwę certyfikatowi oraz zaznaczyć, że certyfikat ma zostać opublikowany w Active Directory

Rysunek 8c

W zakładce Request Handling:

Rysunek 8d

Przejść do zakładki Security; aby użytkownik, który będzie podpisywał skrypty mógł otrzymać certyfikat poprzez Autoenrollment, musi mieć poniższe uprawnienia:

Rysunek 8e

Kliknąć OK. Teraz należy dodać szablon do CA, który go roześle. Należy przejsc do sekcji Szblony certyfikatow w naszym CA i dodac nowy szblon

Rysunek 8f

Następnie wybrać Code Signing

Teraz włączyć w GPO (Default Domain Policy) Autoenrollment

Rysunek 10

Kliknąć OK. W wierszu poleceń wpisać gpupdate /force i poczekać na nasz certyfikat. Po kilku minutach w zasobniku systemowym powinna pojawić się nowa ikona. Należy w nią kliknąć.

Rysunek 8g

Rozpoczyna się proces pobierania certfikatu.

Po uzyskaniu certyfikatu

Po uzyskaniu certyfikatu trzeba nim podpisać posiadane skrypty. Należy użyć do tego celu jednego z wcześniej pobranych narzędzi, a mianowicie signcode.exe Po uruchomieniu ukazuje się kreator, gdzie należy wybrać skrypt, który ma zostać podpisany. Następnie należy wybrać opcję Custom.

Rysunek 12

Po wybraniu Select from store należy wskazać certyfikat, który został wystawiony dla danego użytkownika, który będzie podpisywał skrypty.

Rysunek 13

Należy kontynuować pracę kreatora aż do zakończenia.

Rysunek 14

Wpisać server timestamp= http://timestamp.verisign.com/scripts/timstamp.dll

Rysunek 15

NextàFinish. Od tego momętu skrypt jest podpisany cyfrowo i może zosać wykonany.

Teraz pozostaje jeszcze tylko dodać odpowiednią restrykcje do GPO.

Rysunek 16

Należy kliknąć Browse i wybrać przed chwilą podpisany skrypt.

Rysunek 17

Po kliknięciu OK certyfikat zostanie dodany do restrykcji. Od teraz każdy skrypt, plik itd., który zosanie nim podpisany będzie mógł zostać uruchomiony.

FAQ

Q: Czy można zablokować tylko jedną aplikacje?

A: Tak. Wystarczy dodać dwie reguły: regułę opartą o ścieżkę i nadać jej wartość Path=*, security level=Unrestricted oraz regułę opartą o hash programu który ma zostać zablokowany i security level=Disallowed.

Q: Czy można zablokować dostęp do Internetu poprzez reguły stref internetowych?

A: Nie. Reguły stref internetowych służą do ograniczania lub zezwalania na ściąganie plików instalacyjnych *.MSI w IE.

Q: Jak podpisać sterownik?

A: Wiadomo, że użytkownicy nie mogą instalować urządzeń, których sterowniki nie są podpisane. Można zatem podpisać sterownik (*.cab).

Q: Gdzie SRP posiada najwieksze zastosowanie?

A: SRP najczęściej stosuje sie na serwerach terminalowych.

Autor: Dawid Kuboszek

Spis treści

Komentarze 8

atlon
atlon
21 pkt.
Nowicjusz
19-01-2006
oceń pozytywnie 0
Zastosowanie z nieco zmodyfikowanymi ustawieniami:

http://www.xp.net.pl/art/bezp_surf.html

Dawid Kuboszek VIP
Dawid Kuboszek
2373 pkt.
Guru
ns
19-01-2006
oceń pozytywnie 0
Redakcja niebawem opublikuje Authenticode for Internet Explorer 5.0 bo na stronach MS nie mozna sie tego doszukac :)

______________________________________________________
/* Having knowledge is great, but sharing knowledge is greater - someone intelligent said that */
Szarek
Szarek
13 pkt.
Nowicjusz
19-01-2006
oceń pozytywnie 0
Artykuł bardzo mi się podoba. Gratuluje autorowi. Mam nadzieję, że więcej będzie taki artykułów.

Łukasz Herman Ekspert WSS
Łukasz Herman
3540 pkt.
Guru
19-01-2006
oceń pozytywnie 0
Gratulacje cierpliwości :) Ile ten artykuł leżał? :D
Robert Stuczynski VIP
Robert Stuczynski
8560 pkt.
Guru
MVP
19-01-2006
oceń pozytywnie 0
pewnie z rok :)

________________________________________________
Noise blog - http://spaces.msn.com/members/noiserobert
Galeria zdjęć - http://www.noise.tk
Dawid Kuboszek VIP
Dawid Kuboszek
2373 pkt.
Guru
ns
20-01-2006
oceń pozytywnie 0
eee no nie było tak zle :) od czerwca :) (b) 8-)

______________________________________________________
/* Having knowledge is great, but sharing knowledge is greater - someone intelligent said that */
meragel
meragel
0 pkt.
Nowicjusz
27-01-2006
oceń pozytywnie 0
Tylko szkoda, ze wypuszczony zostal z bledami jezykowymi. Ale moze to nie ma znaczenia? Poza tym jest dobry.
m.
Dawid Kuboszek VIP
Dawid Kuboszek
2373 pkt.
Guru
ns
08-02-2006
oceń pozytywnie 0
Sorki za te błędy ale ostatnimi czasy jestem bardzo zapracowany i w trakcie sesji... ale po całym zamieszaniu postaram sie coś poprawić i napisać coś innego :)

______________________________________________________
/* Having knowledge is great, but sharing knowledge is greater - someone intelligent said that */
pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.