Software Restriction Policy’ler

Abdullah Şahin

Altın Üye
Altın Üye
Kayıt
3 Nisan 2008
Mesaj
2.630
Tepki
89
Bu ayki yazımızda Software Restriction Policy’leri inceleyeceğiz. Software Restriction Policy’ler yardımıyla bilgisayarlarda hangi programların çalışıp hangilerinin çalışamayacağına karar verebilirsiniz. Bu özelliği lokal bilgisayarda kullanabileceğiniz gibi Site, Domain yada OU (Organizational Unit) ‘ya bağlayacağınız bir GPO’da yapacağınız tanımlamalarla yaptığınız tüm ayarların bu scope’larda da geçerli olmasını sağlayabilirsiniz. Internet kullanımının artması beraberinde virüslerin ve trojan’ların etkisinin de artmasına ve dolayısıyla bu virüslerden ve trojan’lardan etkilenen bilgisayar sayısının artmasına sebep olmuştur. Bu konuda en çok sıkıntıyı çekenler ise network yöneticileridir. Çünkü sistemlere bulaşan virüslerin ve trojan’ların sisteme vermiş oldukları zararların yanında bunların sistemlerden temizlenmeside ciddi bir zaman kaybına sebep olmaktadır. İşte bu noktada biz sistem yöneticilerinin imdadına Software Restriction Policy’ler yetişiyor. Network genelinde çalışmasını istemediğimiz uygulamaları, oluşturacağımız Software Restriction Policy yardımıyla tanımlayarak zararlı programların çalışmasını engelleyebiliriz.



Group Policy’de Software Restriction Policy’leri Computer Configuration yada User Configuration ‘ın altında tanımlayabilirsiniz. Computer Configuration’da yaptığınız değişiklikler o Group Policy’in etki ettiği tüm bilgisayarda etkili olacaktır. Aynı şekilde User Configuration kısmında oluşturacağınız Software Restriction Policy’ler ise o Group Policy’in etkiledeği tüm kullanıcılarda etkili olacaktır. Varsayılan olarak Şekil-1’de görüldüğü gibi yeni tanımlanmış bir GPO’da herhangi bir Software Restriction Policy tanımlı halde gelmez.





Şekil-1:Başlangıçta herhangi bir Software Restriction Policy tanımlı halde gelmez.

Software Restriction Policy oluşturmak için ilgili GPO’daki Computer Configuration yada User Configuration (hangisinin altında oluşturacağınız sizin ihtiyaçlarınıza bağlı olarak değişebilir) kısmında bulunan Software Restriction Policies’e sağ tıklayıp açılan menüden New Software Restriction Policies’i seçiyoruz. Bu işlemden sonra Software Restriction Policies’in altında Security Levels ve Additional Rules isimli iki yeni konteynır oluşur. Security Levels konteynırında yapacağınız ayarlarla sistemin güvenlik seviyesini belirliyorsunuz. Burada sitemin güvenlik seviyesi olarak seçebileceğiniz iki seçenek mevcuttur. Bunlar ;

Unrestricted: Sisteminizin güvenlik seviyesi olarak bu seçeneği seçerseniz bilgisayarlardaki tüm programların çalışmasına izin vermiş olursunuz. Bu durumda çalışmasını engellemek istediğiniz programları Additional Rules kısmında tanımlamanız gerekir. Software Restriction Policy’i ilk oluşturduğunuzda varsayılan güvenlik seviyesi olarak Unrestricted seçilir.
Disallowed : Sisteminizin güvenlik seviyesi olarak bu seçeneği seçerseniz bilgisayarlardaki hiç bir programın çalışmasına izin verilmez. Eğer sizin bu bilgisayarlarda çalıştırılmasını istediğiniz programlar varsa bunları Additional Rules kısmında tanımlamanız gerekir.
Software Restriction Policies’in varsayılan güvenlik seviyesini değiştirmek için Security Levels konteynırında listelenen seviyelerden varsayılan yapılmak istenilen seviye üzerine mouse ile sağ tıklanıp açılan menüden “Set as default” seçilmelidir.

Sisteminizin güvenlik seviyesini belirledikten sonra sıra bu güvenlik seviyesinin dışında tutulacak uygulamaları belirleyeceğimiz kuralları tanımlamaya geldi. Bu kuralların temel amacı yasaklanacak yada kullanımına izin verilecek uygulamaların nasıl tanımlanacağını belirlemektir. Software Restriction Policies içinde kullanılmak üzere dört farklı kural tanımlayabilirsiniz. Bunlar ;

Hash rules
Certificate rules
Path rules
Internet zone rules
Şimdi tanımlayabileceğimiz bu kuralları detaylı olarak inceleyelim.



Hash Rule: Yasaklanacak yada kullanımına izin verilecek uygulamayı tanımlamak için uygulamanın içeriğini hash değeri ve uygulamanın boyutu kullanılır. Uygulamanın hash değerini hesaplarkan Hash algoritmaları kullanılır. Software Restriction Policies içinde hash algoritması olarak MD5 yada SHA-1 kullanılabilir. Eğer uygulamanın hash değerini Software Restriction Policies kendisi hesaplayacaksa MD5 algoritmasını kullanır. Eğer uygulama dijital olarak imzalanmışsa bu imza içerisinde uygulamaya ait hash değeri ve bu hash değerinin MD5 mı yoksa SHA-1 kullanılarakmı hesaplandığı yer alacaktır.
Bu şekilde tanımlanan bir uygulama bilgisayarlar tarafından çalıştırılmak istendiğinde uygulamanın hash değeri ile policy’de tanımlı hash değeri karşılaştırılır ve hash değerleri aynıysa o policy’de belirlenen aksiyon alınır Yani uygulamanın çalıştırılıp çalıştırılmayacağına karar verilir. Hash değeri uygulamanın kendisi baz alınarak hesaplandığı için uygulamanın yerinin değiştirilmesi yada isminin değiştirilmesi hiç bir şekilde policy’i devre dışı bırakamayacaktır. Policy ancak uygulamanın kendisinin değiştirilmesiyle devre dışı kalabilir.

Yeni bir Hash rule oluşturmak için Additional Rules kısmına sağ tıklayıp açılan menüden New Hash Rule seçeneğini seçiyoruz. Karşımıza Şekil-2’deki pencere çıkacaktır.



Şekil-2 :Yeni bir Hash Rule oluşturuyoruz.

Bu pencereki Browse butonuna basıp hash değeri hesaplanacak uygulamayı gösterdiğinizde bu dosyanın hash değerinin otomatik olarak hesaplandığını görürsünüz. File hash kısmına yazılan bu hash değerinin haricinde iki değişkenin daha burada yer aldığını görüyoruz. Aslında File hash kısmında bulunan ve birbirlerinden “:” işaretiyle ayrılan alanlardan ilki dosyanın hash değerini, ikinci kısım dosyanın byte olarak boyutunu ve sonuncusu da kullanılan hash algoritmasının ID’sini belirtir. Örneğin bizim oluşturduğumuz kuraldaki File hash kısmında yazan değer 2b9adce1cfc34f9b2253fc64b6fc0515:1713755:32771 şeklinde. Burada ICQLite.exe programının hash değerinin 2b9adce1cfc34f9b2253fc64b6fc0515 olduğunu, boyutunun 1713755 byte olduğunu ve kullanılan hash algoritmasının ID’sinin 32771 olduğunu (ki bu ID MD5’ın ID’sidir) söyleyebiliriz. Bu penceredeki File information kısmında uygulamanın kendisi hakkında bilgiler bulabilirsiniz. Security level kısmı ise bu hash değerine sahip uygulamanın çalışmasına izin verip vermeyeceğinizi belirleyeceğiniz seçeneklerin bulunduğu kısımdır. Eğer buradaki seçeneklerde Disallowed’ı seçerseniz uygulamanın çalıştırılmamasını sağlamış olursunuz. Unrestricted seçilirse uygulama çalıştırılabilir demektir.

NOT

Hash kuralları sadece Designated File Types listesinde tanımlı olan uzantılara sahip dosyalar için tanımlanabilir. Designated File Types listesi hakkında geniş bilgiyi yazının ilerleyen bölümlerinde bulabilirsiniz.

Certificate Rule: Yasaklanacak yada kullanımına izin verilecek uygulamayı tanımlamak için uygulamayı geliştiren firmanın güvenilen bir CA (Certification Authority)’den aldığı ve kodları imzalamak için kullandığı digital sertifika kullanılır. Program geliştiriciler bu sertifikayı third-party CA’lerden örneğin VeriSign, Globalsign gibi firmalardan alabilecekleri gibi Windows Server 2000/2003 yüklü bir bilgisayarda kurulu olan CA’den de alabilirler. Ve aldıkları bu sertifikayı kullanarak geliştirdikleri yazılımları imzalayabilirler. Sizde bu firmaların sertifikalarını kullanarak bu firmalar tarafından yazılan uygulamaların çalışmasına yada çalışmamasına karar verebilirsiniz.


NOT

Software Restriction Policy içinde varsayılan olarak Certificate Rule’ları kullanamazsınız. Bu durumu değiştirmek için aşağıdaki policy’de değişiklik yapmanız gerekmektedir.

Computer Configuration-> Windows Settings-> Security Settings-> Local Policies-> Security Options konteynırına gidin
Buradaki System settings: Use Certificate Rules on Windows Executables for Software Restriction Policies’e çift tıklayarak Şekil-3’deki pencereyi açın.



Şekil-3: Software Restriction Policy içinde Certificate Rule’ları kullanabilmeniz için tanımlamanız gereken policy.

Bu penceredeki Define these policy settings seçeneğini seçip Enable’ı işaretleyin.

Yeni bir Certificate Rule oluşturmak için Additional Rules kısmına sağ tıklayıp açılan menüden New Certificate Rule seçeneğini seçiyoruz. Karşımıza Şekil-4’deki pencere çıkacaktır.





Şekil-4:Yeni bir Certificate Rule oluşturmak için kullanacağınız pencere

Bu penceredeki Browse butonuna basarak yazılımları imzalamak için kullandığınız sertifikayı gösteriyorsunuz. Details butonuna basarsanız bu sertifika hakkında daha detaylı bilgilere sahip olabileceğiniz bir pencere ile karşılaşırsınız. Security level kısmında ise bu sertifika kullanılarak imzalanan yazılımların çalışmasına izin verip vermeyeceğinizi belirtiyorsunuz. Örneğin ben oluşturmuş olduğum “Deneme amacli sertifika (turkmcse.com)” sertifikasını kullanarak bilgisayarımda bulunan ve Visual Basic Scripting ile yazılan bir script’i imzaladım. Ardından oluşturduğum Certificate Rule ile bu sertifika tarafından imzalanan uygulamaların çalışmalarını yasakladım. Ve bu script’i çalıştırdığımda Şekil-5’deki mesaj ile karşılaştım.





Şekil-5: Certificate Rule ile yasaklanan bir sertifika tarafından imzalanmış uygulamanın çalıştırılmasıyla karşımıza yukarıdaki mesaj çıktı.

NOT

Dijital sertifikalarla yazılımları imzalama konusunda test yapmak için “Authenticode for Internet Explorer 5.0” paketini kullanabilirsiniz. Bu paketi Microsoft’un sitesindeki http://msdn.microsoft.com/downloads/default.aspx sayfasından ücretsiz indirebilirsiniz.


Bu yöntem yani uygulamaların çalışıp çalışmayacaklarına karar verirken Certificate Rule’ları kullanmak, yazılımları üreten firmaların ürettikleri yazılımları imzalayıp imzalamadıklarıyla doğru orantılı olarak efektiklik kazanır. Eğer yasaklamak yada kullanımına izin vermek istediğiniz yazılımlar, o yazılımı üreten firma tarafından imzalanmamışsa Software Restriction Policies içindeki diğer kurallarla bu uygulamayı tanımlayabilirsiniz.

Path Rule: Yasaklanacak yada kullanımına izin verilecek uygulamayı
tanımlamak için uygulamanın bilgisayarda kurulu olduğu yolu belirtiyoruz. Tanımlayacağınız Path Rule içerisinde eğer bir klasör belirtmişseniz bu klasörün içindeki ve bu klasörün altındaki tüm diğer klasörlerin içinde bulunan uygulamaları tanımlamış olursunuz. Ayrıca Path Rule içerisinde hem local hemde UNC yol tanımı yapabilirsiniz. Yeni bir Path Rule oluşturmak için Additional Rules kısmına sağ tıklayıp açılan menüden New Path Rule seçeneğini seçiyoruz. Karşımıza Şekil-6’deki pencere çıkacaktır.




Şekil-6: Yeni bir Path Rule oluşturmak için kullandığımız pencere

Bu penceredeki Patuh kısmına kullanımını yasaklayacağımız yada kullanımına izin vereceğimiz uygulamanın yolunu yazıyoruz. Dikkat ederseniz ben örneğinizde sistemin kurulu olduğu yeri belirtmek için %SystemRoot% değişkenini kullandım. Değişkenleri kullanarak Path Rule tanımlamak size bir hayli esneklik sağlayacaktır. Mesela örneğimizde %SystemRoot% değişkeni yerine C:\Windows yazsaydım bu durumda işletim sistemlerini D:\ partitionuna kuran kişilere tanmladığımız bu kural etki etmeyecekti. Bu durumun önüne geçmek için Path Rule tanımlarında genellikle değişkenler kullanılır. %SystemRoot% değişkenini haricinde en çok kullanılan değişkenler %ProgramFiles%,%UserProfile%, %windir%, %appdata%, and %temp% değişkenleridir. Kullanılabilecek değişkenlerin tam listesini internetden bulabilirsiniz.

Path Rule içerisinde “?” ve “*” karakterlerini de kullanarak kural tanımlayabilirsiniz. Örneğin Path Rule içerisinde \\Server??\yazilimlar şeklinde bir yol belirtirseniz bu kural tanımı içerisine hem \\Server01\yazilimlar hemde \\Server02\yazilimlar girer. Bunun haricinde bir klasörün altındaki aynı uzantıya sahip tüm dosyaları yada klasörün altımdaki yüm dosyaları belirtmek için “*” karakterini kullanabilirsiniz. Örneğin “c:\*.vbs” tanımı tüm c:\ partition’u altındaki vbs uzantılı dosyaları belirtirken “c:\win*” şeklindeki bir tanımlama hem c:\Winnt hem de c:\Windows’u tanımlar.

Bazı yazılımlar kurulacakları yerin seçimini kullanıcıya bırakırlar. Böyle bir durumda bu uygulamayı Path Rule içerisinde tanımlarken problemlerle karşılaşabilirsiniz. Örneğin varsayılan olarak Program Files klasörünün altına kurulan bir uygulamayı kullanıcı başka bir klasörün altına kurmuş olabilir. Ve siz Path Rule içerisinde Program Files klasörünü kullanarak bir tanım yaparsanız bu kullanıcı için yapmış olduğunuz tanım başarısız olacaktır. Kurulacakları klasöleri kullanıcılara seçtiren uygulamaların büyük çoğunluğu kuruldukları yerin bilgisini registry’de tutarlar. Bu özelliği kullanarak Path Rule tanımını yaparsak kullanıcıların hangi klasöre kurduklarını önceden bilmeye gerek kalmadan ilgili kuralı tanımlayabiliriz. Bunun için oluşturacağımız Path Rule “Registry Path Rule” ismiyle alınır. Örneğin network’deki bilgisayarlarda Kazaa++’ın kullanımını Registry Path Rule kullanarak gerçekleştirmek istiyorsak ilk önce Kazaa++’ın bilgisayardaki hangi klasöre kurulduğunu belirten registry kaydını buluyoruz. Bunun için regedit.exe uygulamasını çalıştırarak HKEY_LOCAL_MACHINE\SOFTWARE\Kazaa\k-lite alt anahtarına gidiyoruz. Ve bu alt anahtarın içindeki “Installdir” kaydı Kazaa++’in bilgisayardaki hangi klasörde yüklü olduğunu gösteriyor. Bu bilgiler ışığında bulduğumuz bu registry yolunu kullanarak yeni bir Path Rule tanımlıyoruz. Tanımlayacağımız bu Path Rule’daki Path kısmına registry’deki kaydın tam yolunu başına ve sonuna % işareti koyarak %HKEY_LOCAL_MACHINE\SOFTWARE\Kazaa\k-lite\Installdir% şeklinde

yazıyoruz. Artık bu tanımlamadan sonra kullanıcılar Kazaa++’ı hangi klasöre kurarlarsa kursunlar sizin tanımlamış olduğunuz kural geçerli olacaktır.

NOT

Kullanıcılar Path Rule tanımlayarak yasakladığınız programları başka bir klasöre taşıyarak çalıştırabilirler. Bunun önüne geçmek için o dosyaların yada programların izinlerini bu tür durumlara imkan tanımayacak şekilde ayarlamanız gerekmektedir.

DİKKAT

Eğer siz varsayılan Security Level’ini Disallowed olarak belirlemişseniz bu durumda işletim sisteminin çalışmasını etkilememek için aşağıdaki registry path rule’lar otomatik olarak oluşturulur ve bu kurallar Unrestricted olarak işaretlenir. Buradaki amaç tamamen sistemin kendi kendisini devre dışı bırakmasını önlemektir.


● %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\

CurrentVersion\SystemRoot%

● %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\

CurrentVersion\SystemRoot%\*.exe

● %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\

CurrentVersion\SystemRoot%\System32\*.exe

● %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\

CurrentVersion\ProgramFilesDir%

Oluşturduğunuz kurallar içinde aynı uygulamayı tanımlayan birden fazla kural olabilir. Bu durumda en spesifik kural geçerli olur. Aşağıda kural içerisinde kullanılabilecek path tanımları yüksek öncelikliden düşük öncelikliye doğru sıralanmıştır.

● Drive:\Folder1\Folder2\FileName.Extension

● Drive:\Folder1\Folder2\*.Extension

● *.Extension

● Drive:\Folder1\Folder2\

● Drive:\Folder1\

Örneğin aşağıdaki gibi iki tane kuralınız olsun;

Kural Path Tanımı Güvenlik Seviyesi

1.Kural *.vbs Disallowed

2.Kural \\Server01\Scripts\logon.vbs Unrestricted

Yukarıda tanımlı kuralları gözönüne aldığımızda 2.Kural’ın daha spesifik olduğunu görüyoruz. Bu durumda kullanıcılar “logon.vbs”yi çalıştırabilecek fakat diğer vbs uzantılı scriptleri çalıştıramayacaklardır.

Zone Rule: Bu kural çeşidinde yazılımların çalıştırılıp çalıştırılmayacağına
karar verilirken bu yazılımın Internet Explorer’da tanımlı hangi zone kategorisi içinde bulunan siteden download edildiğine bakılır. Sadece .msi paketleri için kullanılabilir.


Kuralların Öncelikleri

Tanımladığınız Software Restriction Policy içindeki kurallar belirli bir sıraya göre işlenir. Bu işleme sonucunda bir programı en spesifik şekilde tanımlayan kural geçerli olur. Kuralların işlenme sırası ;

Hash rule
Certificate rule
Path rule
Internet zone rule
Default rule
Group Policy içinde Software Restriction Policies konteynırına tıkladığınızda Enforcement, Designated File Types ve Trusted Publishers olmak üzere üç farklı seçenek görürsünüz. Şimdi bu seçeneklerin ne işe yaradığını inceleyelim.

Enforcement: Şekil-7’deki Enforcement Properties başlıklı penceredeki “Apply software restriction policies to the following” kısmındaki “All software files except libraries (such as DLLs)” seçeneğini seçerseniz uygulanan policy DLL’ler ve diğer kütüphane dosyalarına uygulanmaz. Microsoft tarafından tavsiye edilen ve varsayılan seçenek budur. Eğer policy’nin tüm dosyalara uygulanmasını istiyorsanız bu durumda “All software files” seçeneğini seçin. Bu penceredeki “Apply software restriction policies to the following users” kısmındaki seçenekler yardımıyla Software Restriction policy’lerin Local Administrator kullanıcısına etki edip etmeyeceğini belirliyoruz. Eğer “All users” seçeneğini seçerseniz tüm kullanıcılar bu policy’lerden etkilenecektir. Lokal Administrator kullanıcısının etkilenmemesi için “All users except local Administrator” seçeneğini seçin.





Şekil-7:Enforcement Properties başlıklı pencere


NOT

Eğer oluşturduğunuz Software Restriction Policies ile kendi kendinizi kısıtladıysanız bu durumda bilgisayarınızı kapatıp Safe Mode’da açın ve bilgisayar lokal Administrator kullanıcısı olarak giriş yapın. Ardından tanımladığınız Software Restriction Policies ‘de gerekli değişiklikleri yapıp sistemi yeniden başlatın.


Designated File Types: Şekil-8’deki “Designated File Types Properties” başlıklı pencerede Software Restriction Policy’lerin uygulandığı dosya tipleri listelenir. Buradaki Designated File kavramı çalıştırılabilir dosyaları ifade eder. Eğer Software Restriction Policy uygulamak istediğiniz dosya tipi bu listede yoksa bu penceredeki File extension kısmına o uygulamanın kullandığı dosya uzantısını yazıp Add butonuna basmanız yeterli olacaktır. Desteklenen dosya tiplerini listesini Tablo-1’de bulabilirsiniz.




Şekil-8: Software Restriction Policy’lerin hangi dosya tiplerine uygulanacağının belirlendiği pencere

Tablo-1:Varsayılan Default Designated File Tipleri

Dosya Uzantısı
Açıklama

. ADE
Microsoft Access Project Extension

. ADP
Microsoft Access Project

. BAS
Visual Basic® Class Module

. BAT
Batch File

. CHM
Compiled HTML Help File

. CMD
Windows NT® Command Script

. COM
MS-DOS® Application

. CPL
Control Panel Extension

. CRT
Security Certificate

. EXE
Application

. HLP
Windows Help File

. HTA
HTML Applications

. INF
Setup Information File

. INS
Internet Communication Settings

. ISP
Internet Communication Settings

. JS
JScript® File

. JSE
JScript Encoded Script File

. LNK
Shortcut

. MDB
Microsoft Access Application

. MDE
Microsoft Access MDE Database

. MSC
Microsoft Common Console Document

. MSI
Windows Installer Package

. MSP
Windows Installer Patch

. MST
Visual Test Source File

. PCD
Photo CD Image

. PIF
Shortcut to MS-DOS Program

. REG
Registration Entries

. SCR
Screen Saver

. SCT
Windows Script Component

. SHS
Shell Scrap Object

. URL
Internet Shortcut (Uniform Resource Locator)

. VB
VBScript File

. VBE
VBScript Encoded Script File

. VBS
VBScript Script File

. WSC
Windows Script Component

. WSF
Windows Script File

. WSH
Windows Scripting Host Settings File


Trusted Publishers: Şekil-9’daki “Trusted Publishers Properties” başlıklı penceredeki seçenekler yardımıyla Active X kontrolleri ve diğer imzalı içerikler ile alakalı ayarları yapabilirsiniz. Bu penceredeki “Allow the following users to select trusted publisher” kısmındaki seçenekler ile kimlerin güvenilen yayıncılara karar verebileceğini belirliyorsunuz. “Before trusting a publisher, check the following to determine if the certificate is revoked” kısmındaki seçenekler yardımıyla da publisher’ın sertifikasının geçerli olup olmadığının nasıl kontrol edileceği belirliyoruz.





Şekil-9:”Trusted Publisher Properties” başlıklı pencere


Kullanıcının çalıştırmak istediği uygulama eğer Software Restriction Policy tarafından yasaklanmışsa kullanıcının bu uygulamayı çalıştırdığı bilgisayardaki System loglarına Şekil-10’daki gibi bir olay kaydedilecektir. Buradaki Event ID değerinin ne anlama geldiğini Tablo-2’den öğrenebilirsiniz.





Şekil-10:System logları yardımıyla kullanıcının Software Restriction Policy tarafından yasaklanmış bir uygulamayı çalıştırmak istediğini anlayabilirsiniz.


Event ID Değeri
Anlamı

865
Uygulamanın çalışması varsayılan güvenlik seviyesi tarafınından engellenmiştir.

866
Uygulamanın çalışması bir Path Rule tarafından engellenmiştir.

867
Uygulamanın çalışması bir Certificate Rule tarafından engellenmiştir.

868
Uygulamanın çalışması bir Zone Rule tarafından engellenmiştir

Kaynak :sistemuzmani.com
 
Yukarı Alt