spacer.png, 0 kB
Bilgi için: bilgi at bilgiguvenligi gov tr   

 

spacer.png, 0 kB
spacer.png, 0 kB
EMET 4.0 ile Uygulamaların Sıkılaştırılması ve Denetimi Yazdır E-posta
Veysel Hataş, TÜBİTAK BİLGEM   
13.01.2014

Microsof'un kendi uygulamalarında sağladığı SEHOP, DEP, ASLR,  EAF gibi yazılım korsanlarına karşı koruma mekanizmaları, kullandığımız diğer uygulamalarda  varsayılan  olarak kapalı olabiliyor. Bu da exploit camiasında günümüzde halen kullanılan temel güvenlik açıklarının kullanılabilmesini  sağlamakta  ve   Windows sürümleri ile birlikte gelen ve gün geçtikçe geliştirilen koruma mekanizmalarının  atlatılmasına (bypass)  neden olabilmektedir. Kullandığımız güvenlik duvarları ve antivirüs programları dışında bunları da kontrol etmemiz gerekiyor.

Microsoft un geliştirdiği  Enhanced Mitigation Experience Toolkit (EMET),  yazılım güvenlik açıklıklarından kaynaklanan exploit girişimlerini engelleyen bir  araçtır. Koruma mekanizmalarının hangi uygulamalarda açık/kapalı olduğunu görebilme ve bu mekanizmaları uygulama bazlı açıp kapatabilme olanağı sağlar (Configure> Application Configuration).

NOT:  EMET,  bir  antivirüs  programı  değildir. İmza tabanlı çalışma yerine çalışma anındaki davranışlarına göre koruma sağlar. Ayrıca  uygulamadaki  mantıksal kodlama hatalarına (logic bug)  karşı iyi değildir. Dolayısıyla API’lerdeki bug’lar istismara (exploitation) neden olabilir.  Ek olarak,  çoğu uygulamalar tarafından desteklense de bazı uygulamalar tarafından EMET desteklenmemektedir.

EMET ile benzer işi yapan  ZeroVulnerabilityLabs’ın geliştirdiği  ExploitShield programı,  yeni adıyla Anti Exploit BETA uygulaması gibi farklı uygulamalar da bulunmaktadır. Biz Microsoft’un geliştirdiği EMET programı üzerine yoğunlaşacağız.

Microsoft'un Ücretsiz Anti-Exploit Kiti (EMET 4.0)

Nisan ayında yayınlanan  EMET 4.0 BETA sürümüyle başlayan ve Windows 8  desteğinden  sonra  17 Haziran 2013’te yayınlanan EMET 4.0, yeni sürümüyle birlikte önemli ek kabiliyetler kazanmıştır. Bunlar:

  • Saldırganlar tarafından geliştirilen  yeni exploit tekniklerine  karşı kolay bir şekilde  update  edilebiliyor. Bu çok önemli, çünkü EMET’in kullandığı koruma mekanizmaları  (heap spray yöntemindeki gibi) her an bypass edilebilir. Bu yüzden koruma mekanizmalarının güncellenmesi gereklidir.

  • Certificate Trust  olarak  adlandırılan  SSL/TLS sertifikası  bağlama  (pinning)  özelliği ile  PKI’dan yararlanılan  sahte SSL sertifikaları ile yapılan Ortadaki Adam (Man in the middle - MITM) ataklarını tespit etmeyi amaçlamaktadır.

  • ROP exploitation yöntemiyle yapılan saldırılar engellenmektedir.

  • Erken Uyarı Sistemi  (Early Warning),  Microsoft  ile enterprise müşterileri arasında saldırı  ve koruma raporlarını paylaşılmaktadır.

  • Denetim Modu, test ortamında basit explitation girişimleriyle birlikte olası uyumluluk sorunlarını da rapor eder.

EMET 4.0  desteklediği client  ve server işletim sistemleri Windows 8, Windows 7 bütün servis paketleri, Vista SP1 ve üstü, XP SP3 ve üstü, Server 2012, Server 2008 R2 tümü, Server 2008 bütün servis paketleri ve  Server 2003 SP1 ve üstünü desteklemektedir.  EMET 3.0, Microsoft .NET Framework 2.0 gerektirir. EMET 4.0, Microsoft .NET Framework 4.0 gerektirir. Ayrıca, EMET'in Windows 8'de Internet Explorer 10 ile çalışması için KB2790907 yüklü olmalıdır.

EMET’in Sağladığı Exploit Önleme Teknolojileri;

 DEP (Data Execution Preventation)

  • Stack, Data ve Heap olarak adlandırılan bellek (memory) alanlarında kod çalıştırılmasını engeller.

  • EMET işlem (process) içerisine enjekte edildiğinde, SetProcessDEPPolicy API’yi çağırarak DEP’i aç/kapa yapar.

EAF (Export Address Table Filtering)

  • Dışa aktarım  adres tablosuna  (Export Address Table-EAT) erişimler filtrelenmiş oluyor.  Bu filtreleme ile günümüzdeki birçok zararlı kod (Shellcode) önlenmiş olur.

HeapSpray Protection

  • EMET ile  exploit yöntemlerinde shellcode yerleştirilmesi için  yaygın olarak kullanılan  bazı  sayfa alanları önceden tahsis edilir. Böylece bu sayfaları kontrol etme girişimi engellenmiş olur.

SEHOP (Structured Exception Handler Ovewrite Protection )

  • Saldırganların uygulamalardaki SEH zincirini kontrol etmesini ve zinciri kırmasını engeller.

  • Windows Vista sonrası işletim sistemleri tarafından desteklenmektedir.

Mandatory ASLR

  • KB2639308 ile işletim sistemi tarafından sağlanır. Adres alanlarının rastgele yerleşimine zorlar.

BottomUp ASLR

  • Aşağıdan yukarıya ayrılan Heap, Stack gibi sanal hafıza alanlarını (8 bit entropi) randomize eder.

Reserve NULL Page

  • Kullanıcı modunda (user mode)  oluşması muhtemel  Null Dereference [1] sorunlarını önlemeye çalışır. Günümüzde bilinen bir istismar yöntemi yoktur.

ROP (Return Oriented Programming) Önleme (ROP => DEP koruma mekanizmasını atlatma yöntemi)

  • Stack pivot

Stack (yığın) alanının pivotlanmış [2] olup olmadığını tespit etmektedir.

  • Simulate execution flow

ROP gadget (farklı amaçlar için bir araya getirilen komut parçacıkları) sonrası kritik fonksiyonlar çağırılmasını tespit eder.

  • Caller checks

Kritik fonksiyonlara  RET yerine CALL  ile ulaşıldığından emin olmaktır. Bu,  ROP Gatget’ları önlemek için çok önemli bir yöntemdir.

  • Memory protection change (Hafıza koruma API’lerinin özel kontrolü)

Genelde shellcode ve ROP gadget’lar ile sağlanan stack alanında kod kalıştırılmasını engeller.

  • Loading DLLs from UNC path

Çağırılan bütün  LoadLibrary API fonksiyonlarını  görüntüler  ve UNC  (Evrensel Adlandırma Kuralı) yoluyla uzak sunuculardan yüklenen bütün DLL (dinamik kütüphane)’leri engeller.

Hardened Protection (Gelişmiş Ek ROP Önleme Yöntemleri)

  • Deep hooks

kernel32!VirtualAlloc  kritik API fonksiyonu yanında  kernelbase!VirtualAlloc  ve  ntdll!NtAllocateVirtualMemory gibi alt seviye fonksiyonlarına hook (kanca) [3] ve koruma sağlar.

  • Anti Detours

Detour’ları [4] kullanarak prologue’u [5] atlatan fonksiyonları kullanan shellcode’ları engeller.

  • Banned APIs

Bu versiyonda sadece ntdll!LdrHotPatchRoutine  API’sini  kötüye kullanımı engellemek için  bu API  yapılandırılmıştır.

Kurulum ve Sıkılaştırma

Son sürüm olan  EMET 4.0 kurulum dosyasını buradan indiriyoruz. Öncesinde bilgisayarda Microsoft .NET Framwork 4 platformu gerektirmektedir.  Windows kurucu paketini (.msi) indirdikten sonra kurulum esnasında resimde gösterilen Use Recommended Settings  (Önerilen Ayarlarını Kullan)  seçeneğini seçiyoruz. Ya  da kurum  bittikten  sonra bu işlemi Wizard  (sihirbaz)  ikonu tıklayarak  da  bu arayüze erişebiliyoruz.  Böylece varsayılan  olarak  Internet Explorer, Java, Wordpad, Adobe Reader, Microsoft Office vs. korumasını sağlamış oluyoruz.

image1.png

Şekil 1 -EMET kurulum

Kurulum işlemi bittiğinde aşağıdaki yönetim paneli karşımıza çıkacak.  Ekranda  Reporting (raporlama) bölümünde Windows Event Log (Windows olay günlüğü) ve Tray Icon (exploit girişimlerini pop-up uyarısı  ile görebilmek için) seçeneklerini seçiyoruz. System Status (sistem durumu) bölümündeki ayarlamada  DEP ve SEHOP  için Always On (Bütün uygulamalar için koruma mekanizması açık ve çalışma anında disable edilemez/kapatılamaz), ASLR için Aplication Opt-In (Belirli sistem uygulama ve modüller için açık)  ve Certificate Trust  için  Enabled (açık)  seçeneğini seçiyoruz. Ya da Quick Profile Name (hızlı profil için) kısmından Maximum Security Setting (maksimum güvenlik ayarları) seçeneğini seçiyoruz.

image2.png

Şekil 2 -EMET kullanıcı arayüzü

EMET grafik arayüzünün alt tarafında ise o an çalışan işlemlerin  (processes)  listesi bulunuyor. İstediğimiz process ya da process’leri  sağ tıklayıp  Configure Process  diyoruz. Çıkan  Application configuration (uygulama konfigürasyonu) ekranında uygulamayı ya da uygulamaları sağ tıklayıp  Enable All Mitigation (bütün korumaları aç)  seçiyoruz.  Ayrıca Default Action (varsayılan olay)  bölümünde  Stop on exploit (exploiti durdur)  seçiyoruz ve  Mitigation Setting bölümünden de hepsini (Deep Hooks, Anti Detours, Banned Functions) seçili hale getiriyoruz.

NOT: Sorun çıkaran başlangıç (startup) uygulamalar olabilir, bunlardaki bazı koruma mekanizmalarını tekrar kaldırmanız gerekebilir.

image3.png

Şekil 3 - EMET Uygulama ayarları

Ayrıca EMET’in bize sağladığı Bazı güvenlik profillerini (CertTrust, Popular Software, Recommended Software) Import (ekle)  ikonu altındaki XML dosyalarını  ekliyoruz. Ek olarak kendi oluşturduğumuz gurup politikalarını (group policy) XML olarak girebiliyoruz.

image4.png

Şekil 4 - EMET ekleme ayarları

Yaptığımız değişiklikler sonrası işletim sistemimizi yeniden başlatmamız  gerekiyor. Yeniden başlatma (restart) işlemi sonrasında  EMET ile birlikte çalışan uygulamaları aşağıdaki resimdeki gibi görebilirsiniz.

image5.png

Şekil 5 - EMET ile çalışan uygulamalar

image6.png

Şekil 6 - EMET sertifika güven ayarları

Herhangi bir exploitation veya bir güvenlik mekanizmalarını atlatma (bypass) girişimi olduğunda EMET engelleyecektir ve bize ekranın sağ alt köşesinde  uyarı mesajı  (pop up) çıkartarak bilgilendirmede bulunacaktır.  Son olarak yapmamız gereken  önemli  noktalardan biri de Windows güncelleme (Windows Update) üzerinden EMET’in son güncellemelerini aldığını kontrol etmektir.

NOT: EMET’ in sağladığı koruma mekizmalarının testine bu yazıda değinilmedi, ayrı bir yazıda değinilecektir.

MAKALE GÜNCELLEME

Aralık ayında yayınlanan yeni EMET 4.1 sürümü ile göze çarpan iyileştirmeler;

  • varsayılan olarak gelen koruma profilleri, Sertifika Güven kuralları ve Grup Politikası nesne yapılandırması  güncellenmesi,

  • EMET’in kurulduğu Windows sunucularda EMET kurulduğunda Uzak Masaüstü Paylaşımının artık desteklenmesi,

  • false-positive [9] raporlarında azaltma şeklinde sıralayabiliriz. Yeni sürümünü burdan indirebilirsiniz. 

Referanslar

[1] http://www.hpenterprisesecurity.com/vulncat/en/vulncat/cpp/null_dereference_dereference_after_store.html

[2] https://www.corelan.be/exploit-writing-tutorial-part-10-chaining-dep-with-rop-the-rubikstm-cube/

[3] http://www.csharpnedir.com/articles/read/?id=290

[4] http://resources.infosecinstitute.com/api-hooking-detours/

[5] http://en.wikipedia.org/wiki/Function_prologue

[6] http://krebsonsecurity.com/2013/06/windows-security-101-emet-4-0/

[7] http://technet.microsoft.com/en-us/security/dn283932

[8] http://www.microsoft.com/emet

[9] http://ahmetceyhan.com/?p=24 


Favori olarak ekle (0) | Görüntüleme sayısı: 9905

Bu yazıya ilk yorumu yazın

Sadece kayıtlı kullanıcılar yorum yazabilir.
Lütfen sisteme giriş yapın veya kayıt olun.

 
spacer.png, 0 kB
spacer.png, 0 kB
Copyright 2017 TÜBİTAK-BİLGEM. Sitenin teknik altyapısında Joomla kullanılmıştır. Yazar ve site referans gösterilmeden alıntı yapılamaz. Görüşleriniz
spacer.png, 0 kB