Şüphesiz Microsoft tarafından geliştirilmesi sürdürülen Windows Defender, sektörde birçok kişinin ilgisini çekmektedir. Son yıllarda birçok anti-virüs firmalarına göre ön plana çıkmayı başaran Defender, zararlı yazılımlara yönelik fonksiyonlarıyla kritik olabilecek birçok zararlı kod betiklerini yakalamaktadır. Peki ya Defender bu gücünü neye borçlu?
Öncelikle belirtmek gerekir ki, Defender yazılımının diğer güvenlik ürünlerine göre birçok artısı bulunmaktadır. Ancak en büyük artısı Microsoft tarafından geliştirilen Windows işletim sistemlerinde gömülü olarak gelmesi ve sistemi diğer güvenlik yazılımlarına göre daha iyi tanımasıdır. Gömülü gelmesi sebebiyle, sistem üzerinde bulunan kritik fonksiyonlara (Windows API) gönderilen parametreleri eş zamanlı olarak izleyerek, olası saldırıları çalışma esnasında tespit etmektedir.
Aşağıda Defender güvenlik yazılımının olası saldırıları tespit etme aşamasındaki aldığı aksiyonları inceleyeceğiz. Privia Security olarak geliştirdiğimiz ve henüz güvenlik yazılımları tarafından keşfedilmemiş zararlıyı, Defender ile karşı karşıya getireceğiz. Gerçekleştirilecek senaryolar, çalışma prensibinin daha iyi anlaşılması adına adım adım uygulanacaktır. İlk olarak Defender yazılımının, zararlı yazılımlar ile karşılaştığındaki gösterdiği aksiyonu, uygulamalı olarak işleyeceğiz.
Zararlı yazılımlar çoğu zaman sonraki sistem başlangıcında çalıştırılmak ve sistem üzerinde kalıcılığını sürdürebilmek amacıyla kendilerini kritik olabilecek ve kullanıcının rahatlıkla silemeyeceği, görüntülemeyeceği dizinlere kopyalamak isterler. Buradaki amaç, Defender yazılımının yapay zekasını test etmek olacaktır. Aşağıda Visual Basic dilinde geliştirilen ve tıklandığında kendisini Windows dizini altına kopyalamaya çalışan uygulamayı görmekteyiz;
Projeyi derlemenin ardından Defender ile karşı karşıya getirmek adına sanal makinaya kopyaladığımızda Defender’ın henüz aksiyon almadığı ve temiz olarak algıladığı görülmektedir.
Ancak uygulamanın tıklanmasıyla birlikte çalışma zamanında yapay zeka teknolojisi ile analiz edilerek zararlı olarak algılandığı ve engellendiği görülmektedir.
Defender bu esnada, çalıştırılan uygulamanın Windows handle, tetiklenen fonksiyonlar gibi birçok soruya cevap arasa da, ilk sorduğu sorulardan bir tanesi; “Çalıştırılabilir uygulama yüklenme olmaksızın kendisini niçin Windows dizini altına kopyalamaya çalışmaktadır” sorusudur. Keza Windows, uygulamaların kendilerini kurması amacıyla “Program Files” dizinlerini sunmaktadır. Uygulamanın kendisini “Program Files” dizinlerine kopyalamasını sağlayabiliriz ancak bu kısımda yeniden Defender, çalıştırılan uygulamanın herhangi bir forma sahip olmadığı ve tetiklediği diğer fonksiyonlardan dolayı tespit etmektedir. Defender, kullanıcılardan edindiği bilgi birikimini yapay zeka teknolojisi ile güçlendirerek daha güvenli bir ortam sağlamayı hedeflemektedir.
Son yıllarda birçok kuruma finansal zararlara uğratan, ransomware yazılımları ile ilgili Defender üzerinde birçok güvenlik fonksiyonları bulunması, güvenlik yazılımları sektöründe bir adım öne çıkarmaktadır. Bu kısımda ise test amaçlı geliştirdiğimiz ransomware zararlısını, Defender ile karşı karşıya getireceğiz. Aşağıda geliştirilen zararlı yazılımın kaynak kodları yer almaktadır. Yazılımın çalıştırılması ile birlikte sistem üzerindeki belirli Windows kütüphanelerini kullanarak kritik olabilecek kullanıcı dosyalarını taramaktadır.
Daha öncede bahsedildiği üzere Defender, zararlı yazılımların en çok kullandığı Windows fonksiyonlarını dinleyerek, zararlı olabilme tehlikelerine karşı eş zamanlı olarak koruma sağlamaktadır. Geliştirilen ransomware zararlısı ilk etapta, sistem üzerinde kaydedilmiş “shadow copy” görüntülerini silmekte ve “C:\” dizini altındaki tüm pdf, doc,docx ve txt uzantılara sahip dosyaları taramaktadır. Peki bir uygulama niçin “shadow copy” görüntülerini silerek, sistem üzerinde aynı anda ilgili uzantıları aramaya başlar? Defender bu sorunun cevabını öğrenmek adına uygulamayı analize başlar. Analiz esnasında;
- Uygulamanın geliştirilme ve derlenme zamanı
- Var ise dijital imza bilgileri ve onaylanması
- Çalıştırılabilir uygulamanın geliştirilme dili
- Veri tabanı içerisindeki imza (hash + offset) bilgileri karşılaştırılması (Yerel + Bulut)
- Uygulama içerisindeki ve çalıştırılması ile birlikte bellek üzerindeki değişkenler
- Uygulamanın çalıştırılma zamanı ve fonksiyonların tetiklenme aşamasındaki zaman farkı
- Windows kütüphanelerine gönderilen parametrelerin değerlendirilmesi
Gibi birçok kritere cevap arar ve güvenlik değerlendirmesi ile ilgili uygulamayı puanlamaya başlar. Birçok güvenlik yazılımı Windows kütüphanelerine gönderilen parametreleri dinlemek istememektedir. Windows üzerinde o kütüphaneleri kullanan yüzlerce uygulamayı sürekli dinlemek performans açısından sistemi yormaktadır. Ancak Defender buradaki yapay zeka teknolojisi ile hangi yazılımı ne kadar süre analiz edeceğini, uzun yıllar süren bilgi birikimi ile sistem performansını etkilemeyecek şekilde çözüme kavuşturmuştur.
Bahsi geçen ransomware zararlısının, Defender ile karşılaştırılma zamanında yakalandığı tespit edilmiştir. Aşağıda ise saldırganların çoğunlukla kullandığı framework (Metasploit) içerisinde yer alan “meterpreter” ajanlarıyla karşı karşıya getireceğiz. Buradaki amaç, network üzerinden sömürülen bir zafiyet ile direk olarak bellek içerisinde çalıştırılan meterpreter payloadlarının yakalanma durumlarını test edeceğiz. Günümüzde birçok güvenlik yazılımlarının bu konuda yetersiz kaldığı gartner karşılaştırma raporlarında görülmektedir. Peki ya Defender bu konuda ne kadar güçlü?
Metaploit-Framework içerisinde yer alan psexec ile, Defender’ın aktif ve korumakta olduğu sisteme, saldırganların en çok ilerleme methodlarından biri olan Pass the Hash tekniği ile meterpreter ajanı tetiklenmeye çalışılmış ve bunun sonucunda Defender’ın zararlı aktiviteyi tespit ederek engellendiği görülmüştür.
Kodun çalıştırılması ile birlikte Defender güvenlik yazılımının aktiviteyi tespit ederek engellediği görülmüş ve meterpreter payloadlarının hedef sistem üzerinde çalışmasını engellemiştir.
Bu kısımda dikkat edilecek husus ise, powershell üzerinden çalıştırılacak olan meterpreter ajanının Defender tarafından hangi şekilde tespit edildiği hususudur. Normal şartlar altında IT yönetimi tarafından AD kontrolü adına çalıştırılan powershell betikleri zararsız olarak algılanırken, process injection betiklerine sahip kodların engellendiğini görmekteyiz. Buradan anlaşılacağı üzere Defender, sezgisel tarama mekanizmaları ile betik içerisindeki kodu analiz ederek, zararlı olduğunu kullanıcıya bildirmektedir. Günümüzde birçok güvenlik mekanizması, sistem kaynaklarını daha az tüketmek adına bu işlevi gerçekleştirmemektedir.
Analizlerini gerçekleştirdiğimiz Meterpreter zararlılarının Windows Defender tarafından tespit edilme durumunu öğrenmek için farklı payload türleri de denenmiştir. Windows Defender’ın aşağıdaki payload türlerini de herhangi bir etkileşime gerek kalmaksızın tespit ettiği anlaşılmıştır.
- generic/shell_reverse_tcp
- windows/format_all_drives
- windows/meterpreter/bind_named_pipe
- windows/meterpreter/bind_tcp_rc4
- windows/meterpreter/reverse_tcp
- windows/meterpreter/bind_tcp
- windows/x64/meterpreter/reverse_tcp
- windows/x64/meterpreter/reverse_tcp
- windows/meterpreter/reverse_tcp_dns
- windows/meterpreter/reverse_tcp_rc4
- windows/metsvc_reverse_tcp
- windows/patchupmeterpreter/reverse_nonx_tcp
- windows/pingback_reverse_tcp
- windows/shell/bind_tcp_uuid
- windows/shell/reverse_tcp_dns
- windows/speak_pwned
- windows/vncinject/bind_tcp
- windows/vncinject/reverse_tcp_rc4
Windows Defender, bilinen tüm meterpreter payloadlarını ve bu payloadların varyasyonlarını tespit edip, etkileşime gerek kalmaksızın temizleyebilmektedir. Yukarıda liste halinde verdiğimiz payloadların bazılarının diğer endpoint ürünleri tarafından tespit edilemediği de görülmüştür. Ayrıca yukarıda yer alan payloadlar ve varyasyonları ile birlikte aşağıdaki encryption (şifreleme) modülleri sayesinde gönderilen payloadlar şifrelenmiştir. Yapılan analizlerde Windows Defender’ın anti-virüs uygulamalarını atlatmak için kullanılan Metasploit Encoders modüllerinin de engellendiği anlaşılmıştır.
- generic/none
- x64/xor
- x64/xor_dynamic
- x64/zutto_dekiru
- x86/alpha_mixed
- x86/alpha_upper
- x86/avoid_underscore_tolower
- x86/call4_dword_xor
- x86/context_cpuid
- x86/context_time
- x86/fnstenv_mov
- x86/shikata_ga_nai
- x86/xor_dynamic
Günümüzde zafiyetlerin çoğunlukla üçüncü parti yazılımlardan kaynaklandığı bilinmektedir. IT ve güvenlik çalışanlarının sık aralıklarla Windows işletim sistemlerini güncellese ve birçok kritik olabilecek portları güvenlik duvarları üzerlerinden kısıtlasalar dahi, üçüncü parti bir yazılımın verebileceği zararlardan tedirginlik yaşamaktadırlar.
Sisteme girmiş bir saldırganın, verebileceği zararları minimize etmek adına diğer sunuculara ve sistemlere yatay yayılmanın önüne geçilmesi gerekmektedir. Saldırganlar, diğer sunuculara yayılabilmesi için, girdiği sunucu üzerindeki bellek dökümünü kullanarak, daha önce giriş yapmış kullanıcıların bilgilerini almak ister.
Bunun sonucunda ise SMB veya diğer LDAP mekanizmaları kullanarak diğer sunuculara ilerlemektedir. Defender tarafından geliştirilen bellek koruma mekanizması ile artık saldırganların bellek dökümüne erişimi kısıtlanmıştır. Saldırganlar bellek dökümündeki kritik bilgilere erişmek amacıyla Mimikatz vb. araçlar kullanmaktadırlar. Mimikatz aracının birçok varyasyonu hali hazırda güvenlik yazılımları tarafından tespit edilmektedir. Ancak saldırı sırasında IT yönetimine gidebilecek uyarıları minimize etmek ve gizli ilerlemek isteyen saldırganlar, “process dump” araçlarına yönelmektedir.
Özellikle Sysinternals araçları saldırganlar tarafından sıkça kullanılmaktadır. Karşılaştırmalı testlerimizde process dump aracı ile farklı güvenlik yazılımlarını test ettiğimizde herhangi uyarı ile karşılaşmaksızın bellek dökümünün elde edildiğini, ancak Defender güvenlik ürününün aktif olduğu sistem üzerinde test ettiğimizde ise lsass.exe işlemine erişimin engellendiğini görmekteyiz.
Mimikatz veya Process Dump araçlarının yanı sıra, yetkili olarak sisteme gerçekleştirilen RDP bağlantısından sonra, görev yöneticisi üzerinden de lsass işlemine ait bellek dökümünün Defender tarafından engellendiği görülmüştür.
Sonuç olarak emin adımlarla ilerleyen Defender’ın, önümüzdeki günlerde adını çok daha sık duyacağız. Microsoft, endpoint protection tarafını da kendi eko sisteminde sağlamaya çalışacak ve bu tarafta ciddi yatırımlar yapacak.