Device Guard teknolojisini, yönetmiş olduğumuz organizasyona yaygınlaştırmadan önce kurumumuzun kullanmış olduğu bütün uygulamaları analiz etmemiz gerekmektedir. Device Guard Mimarisi makalemiz içinde bahsettiğimiz gibi Code Integrity Politikaları içinde olmayan hiçbir yazılım biz imzalamadığımız sürece çalışmayacaktır. Yanlış bir planlama sonrasında kendimize çok fazla iş yükü getirebilir, ihtiyaç duyulacak bir yazılımın çalışmamasını neden olabiliriz.
Her projede olduğu gibi Device Guard teknolojisini sağlıklı kullanabilmek için iyi bir plan yapmak gerekmektedir. Bu makalemiz içinde kurumumuz için yeni CodeIntegrity Policy lerini oluşturacağız ve kullanacak olduğumuz komut seti Windows 10 ile birlikte geliştirilen New-CIPolicy Power Shell komutlarıdır. Policy i oluşturmadan önce Golden imajımızı incelemek ve temel gereksinimlerini kontrol etmemiz gerekmektedir.
Get-WmiObject
Device Guard projesinde oluşturacak olduğumuz Golden imajın önemi çok büyüktür. Golden bilgisayarımızın imajını almadan önce kurumumuz içinde kullanılmakta olan bütün uygulamaları bu golden bilgisayar üzerine yüklememiz gerekmektedir. Golden imaj organizasyon seviyesinde alınması ileride oluşabilecek iş yüklerinin önüne geçecektir. Departman bazlı golden imaj zorunluluğu bulunmamaktadır.
SCCM veya benzeri bir yönetim aracı ile organizasyonumuz içinde kullanılan bütün uygulamaların listesini almak ve sonrasında bu uygulamaların her birisini golden imajımıza yükleme işlemi projenin başlangıcı olacaktır.
Yüklemiş olduğunuz uygulamaları Get-WmiObject -Class Win32_Product komutu ile listeleyerek doğrulayabilmekteyiz.
Hatırlatmakta fayda görüyorum golden imaj üzerine yüklemediğiniz hiçbir uygulamaya Device Guard güvenlik çözümü uygulandıktan sonra güvenilmeyecektir. Kısaca CodeIntegrity Policy içinde imzalanmamış bir yazılım olarak kalacaktır.
Generation 2
Golden imajın domainde olmaması ve sıfırdan kurulmuş bir işletim sistemi olması ve son güncelleştirmelere sahip olması önerilmektedir. Eğer Golden imajı bir sanal sistem üzerinde oluşturacaksanız bu sunucu sanallaştırma teknolojisinin Hyper-V olması gerekmektedir ve sanal sunucunun versiyonunun Generation2 olması gerekmektedir.
Get-HotFix
Get-Hotfix | Sort-object InstalledOn -Descending | Select -First 3 komutu ile golden imajımıza yüklenmiş olan en son güncelleştirmeleri kontrol etmemiz önerilmektedir.
windows10
Golden imajımızın Enterprise sürümünde ve en az 1607 versiyonuna sahip olması gerekmektedir. Winver komutu ile golden imajımızın sürümünü kontrol etmekteyiz.
Device Guard Virtualization Based Security
Systeminfo bilgilerini kontrol ettiğimiz zaman Device Guard Virtulization based security yapılandırmasının yapılmadığını görebilmekteyiz.
Golden imajımızı alacak olduğumuz bilgisayarımız üzerinde bütün kontrolleri yaptıktan sonra aşağıdaki komutlar ile golden imajımızı almaya başlıyoruz.
ConvertFrom-CIPolicy
$s1 = (gwmi -List Win32_ShadowCopy).Create(“c:\”,”ClientAccessible”)
$s2 = gwmi win32_shadowcopy |? {$_.id -eq $s1.ShadowID}
$d = $s2.deviceObject + “\”
Cmd /C mklink /d c:\scpy “$d”
New-CIPolicy -l PcaCertificate -f C:\Policy1.xml –s C:\scpy -Userpes
Set-RuleOption –option 3 –FilePath C:\Policy1.xml
ConvertFrom-CIPolicy C:\Policy1.xml C:\Policy1.bin
cp C:\Policy1.bin c:\Windows\System32\CodeIntegrity\SIPolicy.p7b
Code Integrity
Çalıştırmış olduğumuz komutlar golden bilgisayarımız üzerinde c:\scpy klasörü altına bir imaj almış durumda. Bu imaj golden bilgisayarımız üzerinde yüklü bulunan bütün uygulamaların ve işletim sisteminin bilgilerini kapsamaktadır.
SIPolicy.p7b
İşlemleri sırası ile gerçekleştirdiğimiz zaman Policy1.xml dosyasını Policy1.bin dosyasına çevirdik ve bin dosyasını ise SIPolicy.p7b dosyasına dönüştürdük. Oluşturmuş olduğumuz p7b dosyası c:\Windows\System32\CodeIntegrity yolu altında barınmaktadır.
Deploy Code Integrity Policy
Computer Configuration\Administrative template\System\Device Guard\Deploy Code Integrity Policy politikasını aktif duruma getiriyoruz ve oluşturmuş olduğumuz sertifikanın yolunu gösteriyoruz.
Audit Mode
Golden bilgisayarımız üzerinde system bilgilerini kontrol ettiğimiz zaman Device Guard User Mode Code Integrity yapılandırmasının Audit mode olarak çalıştığını görebilmekteyiz. Bu mode izlemek için kullanılmaktadır ve Device Guard herhangi bir eylem gerçekleştirmez.
Device Guard ı Audit Mode olarak yapılandırdığımız zaman kullanıcılarımız kullanmış oldukları bilgisayar üzerinde istedikleri gibi uygulama yükleyebilmektedirler.
Örnek senaryomuz içinde son kullanıcımız bilgisayarı üzerine WordViewerSkus uygulamasını yüklemeye çalışıyor ve kullanıcımız engellenmiyor, başarılı bir şekilde işlemini tamamlayabiliyor. Olay günlükleri içine herhangi bir olay günlüğü düşmemesinin nedeni Golden imajımız içinde Office Word Viewer kurulum dosyasının bulunmuş olması ve Golden imaj üzerine yüklenip, Code Integrety policy si tarafından imzalanmış olmasından kaynaklıdır.
Aynı bilgisayarımız üzerinde başka bir yazılımı yüklemeye çalışıyoruz. Bu yazılımda zararsız, 7zip uygulaması. Device Guard politikasını uygulamış olduğumuz bilgisayarımız üzerine 7zip uygulamasını yükleyebiliyoruz.
Code Integrety Audit Mode
Kullanıcımız, her iki uygulamayı bilgisayarı üzerine yükleyebildi fakat imzalanmayan 7zip uygulaması yüklenirken daha doğrusu ilk çalıştırıldığında Code Integrety olay günlüklerinde 3076 olay günlüğü oluştu. Yapılandırmamız Audit Mode olduğu için Device Guard bir eylem yapmayacak sadece olay günlüğü oluşturacaktır.