Software Restriction Policy

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.

 

1000000085_image001

Ş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 file://server01/yazilimlar hemde \Server02yazilimlar 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_MACHINESOFTWAREKazaak-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_MACHINESOFTWAREKazaak-liteInstalldir% ş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_MACHINESOFTWAREMicrosoftWindows NT

CurrentVersionSystemRoot%

● %HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NT

CurrentVersionSystemRoot%*.exe

● %HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NT

CurrentVersionSystemRoot%System32*.exe

● %HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows

CurrentVersionProgramFilesDir%

 

 

 

 

 

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:Folder1Folder2FileName.Extension

● Drive:Folder1Folder2*.Extension

● *.Extension

● Drive:Folder1Folder2

● 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

\Server01Scriptslogon.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.

 

Exit mobile version