Microsoft SmartScreen, Microsoft ürünleri (Microsoft Edge, Internet Explorer ve Windows gibi) ile entegre olan bulut tabanlı bir kimlik avı ve kötü amaçlı yazılımlara karşı koruma bileşenidir. Kullanıcıları kötü niyetli web sitelerinden ve indirmelerden korumak için tasarlanmıştır.
Bu makalenın amacı BT ekiplerinde ve kullanıcılarda farkındalık yaratmaktır.
Temel Özellikler:
- URL Reputation: SmartScreen, ziyaret edilen URL’leri Microsoft’un sunucularındaki black listesindeki URL’lerle karşılaştırır. Eğer URL, listedeki bir siteyle eşleşirse, kullanıcıyı uyarır veya siteye erişimi engeller.
- Uygulama Reputation: Kullanıcı bir uygulama indirdiğinde, SmartScreen bu uygulamanın diğer kullanıcılar tarafından nasıl değerlendirildiğine bakar. Eğer uygulama şüpheli olarak değerlendirilmişse, kullanıcıyı indirmeden önce uyarır.
- Kimlik Avı Koruması: SmartScreen, web sayfalarını kimlik avı belirtileri açısından analiz eder ve kişisel bilgileri çalmaya çalışan bir site tespit ederse kullanıcıyı uyarır.
- Kötü Amaçlı Yazılım Koruması: Sistem, potansiyel olarak zararlı yazılımları tanımlayabilir ve kullanıcı cihazında çalışmasını engelleyebilir.
- Windows Defender ile Entegrasyon: SmartScreen, Windows Defender ile birlikte çalışarak tehditlere karşı kapsamlı bir güvenlik katmanı sağlar.
Nasıl Çalışır?
- URL ve Uygulama Kontrolleri: Kullanıcı bir web sitesini ziyaret etmeye veya bir uygulama indirmeye çalıştığında, SmartScreen bu URL veya uygulamanın bilgilerini sunucularına iletir.
- Sunucu Kontrolü: Sunucu, bu bilgileri veritabanında kontrol eder ve kullanıcıya bir sonuç döner.
- Sonuç: Tarayıcı veya işletim sistemi, bu sonuca dayanarak kullanıcıya uyarı verir, erişimi engeller ya da işlemi onaylar.
- Telemetri ve Geri Bildirim: SmartScreen, kullanıcıların etkileşimlerinden elde edilen verileri toplayarak tehdit algılama algoritmalarını zamanla daha da iyileştirir.
Smart App Control (SAC)
Smart App Control (SAC), Windows’ta çalışan zararlı veya istenmeyen uygulamaları engellemek için tasarlanmış bir güvenlik özelliğidir. Windows Defender Application Control’ün (WDAC) bir evrimi olan SAC, bulut tabanlı zeka ve makine öğrenimini kullanarak gelişmiş koruma sağlar.
Temel Özellikler:
- Predictive Protection: SAC, büyük miktarda veri üzerinde eğitilmiş makine öğrenimi modellerini kullanarak bir uygulamanın güvenli olup olmadığını tahmin eder. Riskli olduğu düşünülen veya iyi bir itibara sahip olmayan uygulamaları engeller.
- Cloud-Based Intelligence: SAC, Microsoft’un bulut altyapısını kullanarak tehdit istihbaratını sürekli günceller, böylece koruma her zaman güncel kalır.
- Zero Trust Model: SAC, varsayılan olarak tüm uygulamaların güvenilmez olduğunu kabul eder ve sadece güvenli olduğu kanıtlanmış uygulamaların çalışmasına izin verir.
- Seamless User Experience: SAC, güvenilir uygulamaların çalışmasına izin verirken zararlı olabilecek uygulamaları sessizce engeller. Kullanıcılara, engellendiğinde net bildirimler ve yönergeler sunar.
- Policy Enforcement: BT yöneticileri, kurumsal cihazlarda uygulama çalıştırma politikalarını tanımlayarak güvenlik standartlarına uyumu sağlayabilir.
Nasıl Çalışır?
- Uygulama Analizi: Bir uygulama çalışmaya çalıştığında, SAC bu uygulamanın meta verilerini buluta gönderir.
- Bulut Servisi: Bulut servisi, uygulamanın risk seviyesini belirlemek için makine öğrenimi modelleri ve tehdit istihbaratını kullanarak uygulamayı değerlendirir.
- Karar Verme: Eğer uygulama güvenli olarak değerlendirilirse çalışmasına izin verilir. Eğer riskli veya bilinmeyen olarak değerlendirilirse, engellenir ve kullanıcıya engeli kaldırma seçeneği sunulur (yeterli yetkilere sahiplerse).
- Politika Uygulaması: SAC politikaları, tüm yönetilen cihazlarda tutarlı güvenlik önlemlerini sağlamak için özelleştirilebilir ve uygulanabilir.
Microsoft SmartScreen ve SAC’i Bypass Etmenin Beş Yolu
1. Geçerli Dijital İmzalı Zararlı Yazılımla SmartScreen ve SAC’i Bypass Etmek
Geçerli Dijital İmzalar:
- Çalınmış Sertifikalar: Siber suçlular, meşru yazılım geliştiricilerinden geçerli dijital sertifikaları çalabilir. Zararlı yazılımlarını bu çalınmış sertifikalarla imzalayarak, SmartScreen ve SAC gibi güvenlik özelliklerine güvenilir gibi görünür.
- Satın Alınan Sertifikalar: Saldırganlar, yeterince inceleme yapmayan sertifika otoritelerinden (CA) sertifika satın alabilirler. Bu sertifikalar daha sonra zararlı yazılımları imzalamak için kullanılabilir.
Kompromize Edilmiş Sertifika Otoriteleri:
Bir Sertifika Otoritesi (CA) ele geçirildiğinde, saldırganlar zararlı yazılımlarına geçerli sertifikalar alabilirler. Bu şekilde imzalanan zararlı yazılım, güvenilir bir kaynak olarak görünebilir.
Timing Saldırıları:
Saldırganlar, bir sertifika verildiğinde ve iptal edilene kadar geçen süreyi kullanarak, zararlı yazılımın güvenlik kontrollerini aşması için kullanabilir.
Orjinal Yazılım Bileşenlerinin Kullanımı:
Saldırganlar, zararlı yazılımlarını orjinal yazılım bileşenleriyle entegre edebilirler. Bu, zararlı kodun güvenilir bir uygulama gibi görünmesine neden olur ve güvenlik özellikleri tarafından fark edilmez.
Sosyal Mühendislik:
Saldırganlar, kullanıcılara güvenlik uyarılarını göz ardı etmeleri konusunda ikna edici sosyal mühendislik tekniklerini kullanabilir. Örneğin, bir uygulama SmartScreen veya SAC tarafından engellenirse, saldırgan kullanıcıyı engeli manuel olarak aşması için kandırabilir.
İtibar Saldırıları ile SmartScreen ve SAC’i Bypass Etmek
Ele Geçirilmiş Güvenilir Web Siteleri:
Saldırganlar, itibarı yüksek olan güvenilir bir web sitesini ele geçirip zararlı içerik veya yazılım yerleştirir. SmartScreen, sitenin geçmişteki itibarı nedeniyle kullanıcıyı uyarmayabilir.
Güvenilir Alan Adları ve Sertifikalar:
Saldırganlar, güvenilir sertifika otoritelerinden geçerli SSL sertifikaları ile donatılmış alan adlarını kullanarak zararlı yazılım barındırabilir. SmartScreen ve SAC, geçerli bir sertifikayı güvenli kabul ettiği için bu tür siteler kolayca kontrolleri aşabilir.
Orjinal Yazılıma Zararlı Yazılım Entegre Etmek:
Saldırganlar, orjinal yazılıma zararlı kod enjekte eder. Güvenilir bir yazılım güncellemesi gibi görünen bu işlem, zararlı yazılımı herhangi bir uyarı vermeden sistemlere taşır.
3. Reputation seeding ile SmartScreen ve SAC’i Bypass Etmek
Reputation seeding, saldırganların zararlı alan adları, yazılımlar veya e-posta hesapları için uzun süre boyunca olumlu bir itibar oluşturma taktiğidir. SmartScreen ve SAC bu itibara dayanarak zararlı yazılımların güvenli olduğunu düşünebilir.
- Başlangıçta Zararsız Faaliyetler: Saldırganlar, itibarı artırmak için başlangıçta zararsız içerik barındırır.
- Yavaş Yavaş Zararlı İçerik Eklemek: Olumlu itibar sağlandıktan sonra saldırganlar yavaş yavaş zararlı içerik eklemeye başlar.
- Kazanılan Güvene Dayanarak Büyük Ölçekli Saldırılar: Güçlü bir itibar oluşturulduktan sonra, saldırganlar güvenlik önlemlerini atlayarak büyük ölçekli saldırılar düzenler.
Reputation seeding Zaman Çizelgesi
Web Siteleri:
- Kısa Dönem (Haftalar): Web sitesinin başlangıçta zararsız içerik ve temel kullanıcı etkileşimleri ile kurulması.
- Orta Dönem (Aylar): Geri bağlantılar kazanmak, trafiği artırmak ve daha kapsamlı içerik oluşturmak.
- Uzun Dönem (6+ Ay): Yoğun trafik, olumlu kullanıcı etkileşimleri ve güven kazanmış bir web sitesinin oluşturulması.
Yazılımlar:
- Kısa Dönem (Haftalar): İlk dağıtım ve temel güvenlik kontrollerinin geçilmesi.
- Orta Dönem (Aylar): İndirme sayısının artması, olumlu kullanıcı yorumları ve düzenli güncellemeler.
- Uzun Dönem (6+ Ay): Yaygın kullanım, sürekli pozitif geri bildirimlerle güçlü bir itibar kazanmış yazılım.
E-posta Hesapları:
- Kısa Dönem (Haftalar): Başlangıçta yasal e-postalar ve normal etkileşimler.
- Orta Dönem (1-2 Ay): Düzenli, zararsız iletişimle güven inşa edilmesi.
- Uzun Dönem (3+ Ay): Tutarlı, zararsız faaliyetlerle yerleşik bir güven kazanılması.
4. Reputation tampering ile SmartScreen ve SAC’i Bypass Etmek
Saldırganlar, SAC’in dosya itibarını nasıl değerlendirdiğini öğrenip dosyalardaki bazı kısımları değiştirebilir. Bu küçük değişiklikler, dosyanın güvenilir görünmesini sağlarken zararlı yazılımı gizler.
Fuzzy Hashing:
- Yöntem: Geleneksel kriptografik hashleme yöntemlerinde, dosyada yapılan herhangi bir değişiklik hash değerini tamamen değiştirirken, fuzzy hashing (bulanık hashleme) dosyada küçük değişiklikler yapılmasına rağmen hash değerinin büyük ölçüde değişmemesini sağlar. Bu, küçük modifikasyonlar yapılan dosyaların hala orijinal dosyayla benzer olarak kabul edilebileceği anlamına gelir.
- Saldırı: Saldırganlar, dosyanın fuzzy hash değerini önemli ölçüde etkilemeyen bölümlerini değiştirerek dosyanın itibarını korumasını sağlar.
Temelli Benzerlik Karşılaştırmaları:
- Yöntem: SAC, dosyaları değerlendirmek için özellik temelli benzerlik karşılaştırmaları kullanabilir. Bu özellikler, meta verileri, yapısal özellikleri veya bilinen güvenilir dosyalarla tutarlı belirli kod desenlerini içerebilir.
- Saldırı: Saldırganlar, hangi özelliklerin kullanıldığını öğrenip bu özellikleri değiştirmeden dosyanın diğer kısımlarını modifiye ederek dosyanın iyi itibarını koruyabilir.
Makine Öğrenimi Modelleri:
Saldırı: Saldırganlar, deneme yanılma yöntemiyle hangi kod bölümlerinin değiştirilip genel modelin güvenilir olarak tanıdığı kalıbı bozmadan zararlı kod enjekte edilebileceğini belirler.
Yöntem: Bulut tabanlı makine öğrenimi modelleri, büyük bir iyi ve kötü dosya veri kümesi üzerinden öğrenilen desenlere dayanarak dosyaları analiz edebilir. Bu modeller, basit hash değerlerinden öte bir dizi göstergeler kullanabilir.
5. LNK Stomping ile Microsoft SmartScreen ve SAC’in Aşılması
LNK stomping, saldırganların, orjnial gibi görünen LNK (kısayol) dosyalarını değiştirerek zararlı kod çalıştırmalarına olanak tanıyan bir teknikt. LNK dosyalarının esnekliği ve yeteneklerinden faydalanarak saldırganlar Microsoft SmartScreen ve Smart App Control (SAC) gibi güvenlik özelliklerini atlatabilirler.
LNK Stomping Nasıl Çalışır?
Zararlı Bir LNK Dosyası Oluşturmak:
- Yöntem: Saldırganlar, güvenli bir dosya veya belgeye işaret eden bir LNK dosyası oluşturur ancak bu dosyaya ek komutlar veya zararlı kod çalıştıran scriptler ekler.
- Örnek: Bir LNK dosyası bir PDF belgesini açıyor gibi görünebilir ancak gerçekte zararlı yazılımı indiren ve çalıştıran bir PowerShell scripti çalıştırır.
Mevcut LNK Dosyalarını Değiştirmek:
- Yöntem: Saldırganlar, hedef sistemdeki mevcut LNK dosyalarını değiştirebilir ve bu dosyaların orijinal görünüm ve işlevselliğini korurken zararlı komutlar ekleyebilirler.
- Örnek: Yaygın olarak kullanılan bir uygulama (örneğin bir web tarayıcısı) için olan bir LNK dosyası, önce zararlı bir scripti çalıştırmak üzere değiştirilir ve ardından uygulamayı başlatır.
Zararlı Kodu Gömme:
- Yöntem: Saldırganlar, doğrudan LNK dosyasının içine zararlı kod gömer ve dosyanın yapısından ve özelliklerinden yararlanır.
- Örnek: Bir LNK dosyası, açıldığında gömülü shell komutlarını çalıştırabilir.
LNK Dosyası Manipülasyonu ile MOTW (Web İşaretlemesi) Bypass Etmek
Mark of the Web (MOTW), internetten indirilen dosyaları işaretleyerek bu dosyaların antivirüs (AV) ve uç nokta tespiti ve yanıt (EDR) sistemleri tarafından ek incelemeye tabi tutulmasını sağlayan kritik bir güvenlik özelliğidir. Ancak, bazı tekniklerle bu özellik atlatılabilir ve zararlı dosyalar tespit edilmeden çalıştırılabilir.
Standart Olmayan Path’e Sahip LNK Dosyasının Manuel Olarak Oluşturulması
- PowerShell Script Path: Örneğin, C:\Scripts\MyScript.ps1 gibi bir PowerShell script path’e sahip olduğunuzdan emin olun.
- Kısayolu Oluşturun: Masaüstünde veya kısayolu oluşturmak istediğiniz klasörde sağ tıklayın.
- Yeni > Kısayolu seçin.
- Path’i Girin: “Öğenin konumunu girin” alanına şu komutu standart olmayan bir yolla girin:
powershell.exe -File "C:\Scripts\MyScript.ps1."
- Kısayolu Adlandırın: Kısayolunuz için bir ad girin (örneğin, “Run MyScript Non-Standard”).
- Bitiş’e Tıklayın.
- Hedef Yolunu Doğrulayın: Yeni oluşturulan kısayola sağ tıklayın ve Özellikleri seçin.
- Hedef alanında şunu görmelisiniz:
powershell.exe -File "C:\Scripts\MyScript.ps1."
- Değişiklikleri kaydetmek için Tamam‘a tıklayın.
- Hedef alanında şunu görmelisiniz:
Bu adımları izleyerek, SmartScreen ve SAC gibi güvenlik özelliklerinin bu tür dosyalarla nasıl etkileşimde bulunduğunu test etmek için standart olmayan bir hedef yola sahip bir LNK dosyası oluşturabilirsiniz.
Standart LNK Dosyasının Manuel Olarak Oluşturulması
- PowerShell Script Path: Örneğin, .\Scripts\MyScript.ps1 gibi dizin yapısındaki PowerShell script path’esahip olduğunuzdan emin olun.
- Kısayolu Oluşturun: Masaüstünde veya kısayolu oluşturmak istediğiniz klasörde sağ tıklayın.
- Yeni > Kısayolu seçin.
- Path’i Girin: “Öğenin konumunu girin” alanına şu komutu göreceli bir yolla girin:
powershell.exe -File ".\Scripts\MyScript.ps1"
- İleri’ye Tıklayın.
- Kısayolu Adlandırın: Kısayolunuz için bir ad girin (örneğin, “Run MyScript Relative”).
- Bitiş’e Tıklayın.
- Path’i Doğrulayın: Yeni oluşturulan kısayola sağ tıklayın ve Özellikleri seçin.
powershell.exe -File ".\Scripts\MyScript.ps1"
- Değişiklikleri kaydetmek için Tamam‘a tıklayın.
Multi Path’e Sahip LNK Dosyasının Manuel Olarak Oluşturulması
Multi bir path’e sahip bir LNK dosyası oluşturmak için, LNK dosyasının iç yapısını standart olmayan bir hedef yol içerecek şekilde değiştirmemiz gerekir.
PowerShell ve LNK dosyalarıyla çalışmak için Python tabanlı bir kütüphane olan pylnk3 kullanarak böyle bir LNK dosyasını oluşturabilirsiniz.
Gereksinimler:
- Python’ı Kurun: Python yüklü değilse, resmi web sitesinden indirip kurun: Python.org.
- pylnk3 Kütüphanesini Yükleyin: Bir komut istemi veya terminal açın ve aşağıdaki komutu çalıştırın:
pip install pylnk3
Multi Path’e Sahip Bir LNK Dosyası Oluşturma
- Bir Python script Oluşturun: Aşağıdaki içerikle bir Python scripti (örneğin,
create_lnk.py
) oluşturun.
import lnk
# Define the path for the new shortcut
shortcut_path = "C:\\Users\\Public\\Desktop\\MyScriptShortcutMultiLevel.lnk"
# Create a new LNK file
lnk_file = lnk.lnk_file()
# Set the target path with multi-level path entries
lnk_file.add_target_path_entry("..\\..\\Scripts\\MyScript.ps1")
# Set the arguments for the target executable
lnk_file.command_line_arguments = "-File .\\Scripts\\MyScript.ps1"
# Save the LNK file
with open(shortcut_path, "wb") as f:
lnk_file.write(f)
print(f"Shortcut created at: {shortcut_path}")
- Python Scriptini Çalıştırın:
Komut istemi veya terminalde Python betiğinizin bulunduğu dizine gidin ve şu komutu çalıştırın:python create_lnk.py
Açıklama:
- lnk.lnk_file(): Yeni bir LNK dosyası nesnesi oluşturur.
- add_target_path_entry: Hedef path’e girişler ekler. Burada, mutli bir path’i simüle etmek için yol (
..\\..\\Scripts\\MyScript.ps1
) kullanılmıştır. - command_line_arguments: Hedef çalıştırılabilir dosyaya iletilen argümanları ayarlar. Bu durumda,
-File .\Scripts\MyScript.ps1
argümanını geçiyoruz. - write: LNK dosyasını belirtilen yola kaydeder.
Ek Notlar:
- Path: Hedef path girişlerindeki yollar (
..\\..\\
), LNK dosyasının içinde multi bir path yapısı oluşturulmasını sağlar. - Standart Olmayan Yapılar: LNK dosyasının iç yapısını manipüle ederek bazı güvenlik kontrollerini atlatabilecek yollar oluşturabiliriz.
LNK Dosyasını Çalıştırma:
LNK dosyasını oluşturduktan sonra, çift tıklayarak dosyanın davranışını test edebilirsiniz. Oluşturulan LNK dosyası PowerShell betiğini çalıştırmalıdır.
LNK stomping ve diğer zararlı yazılım teknikleri, Microsoft SmartScreen ve Smart App Control (SAC) gibi güçlü güvenlik özelliklerini aşmak için siber suçlular tarafından yaygın olarak kullanılan yöntemlerdir. LNK dosyalarının esnek yapısı, bu dosyaların zararlı komutlar barındırmasına olanak tanırken, kullanıcılar ve güvenlik sistemleri tarafından genellikle meşru dosyalar gibi algılanırlar. Aynı şekilde, fuzzy hashing, itibar tohumlaması ve sosyal mühendislik saldırıları, zararlı yazılımın sistemlere sızmasını kolaylaştıran diğer tekniklerdir.
Bu saldırılara karşı savunma geliştirmek, yalnızca teknolojiye dayalı değil, aynı zamanda kullanıcı farkındalığını da içeren kapsamlı bir yaklaşım gerektirir.
Sistemlerin düzenli olarak güncellenmesi, güvenlik politikalarının titizlikle uygulanması ve kullanıcıların bilinçlendirilmesi, bu tür saldırıların başarıya ulaşmasını engellemek için hayati önem taşır.