Yönetici hakları olmadan mağdur cihazdan veri silmek için Antivirüs ve EDR çözümleri kusurlarından nasıl yararlanılır?



Bir güvenlik araştırmacısı, yaygın olarak kullanılan uç nokta algılama ve yanıt (EDR) ve antivirüs (AV) yazılımlarının veri silme yeteneklerini kullanarak bu programları veri silicilere dönüştürmek için bir teknik keşfetti. Söz konusu yazılım Microsoft, SentinelOne, TrendMicro, Avast ve AVG’dendir.
Veya SafeBreach’te bir araştırmacı olan Yair, hedeflenen bir sistemde mevcut güvenlik özelliklerini kullanma fikrine sahipti. Bu, saldırıları daha gizli hale getirecek ve bir tehdit aktörünün zararlı operasyonlar gerçekleştirebilmesi için ayrıcalıklı bir kullanıcı olması gerekliliğini ortadan kaldıracaktır.

Silme fikri genellikle “silecek” terimini duyduğunuzda akla gelen ilk şeydir. Bununla birlikte, ikisi arasında çizilebilecek temel bir ayrım vardır. Windows’taki belirli bir işlem, DeleteFile() API işlevine bir çağrı yaptığında, bu işlev daha sonra çekirdeğe belirli bir dosyayı kaldırması için bir istekte bulunur. Bundan sonra çekirdek, ana dosya tablosuna (MFT) gider ve orada kullanıma uygun bir öğe belirler. Bu öğe, dosyanın içeriğine bir bağlantıdan başka bir şey değildir. Dosyaların içeriği aslında diskten kaldırılmaz; sabit sürücüde kalırlar. Bu, bir şeyi silmekle onu temizlemek arasındaki temel farktır. Bir şeyin “silinmesi”, içindeki bilgilerin tamamen silindiğini ve hiçbir şekilde kurtarılamayacağını gösterir.

Öte yandan bir silme, silme ile aynı şeyi gerçekleştirmek için kullanılabilir. Microsoft Developer Network’e (MSDN) göre, “Yeni Teknoloji Dosya Sistemi (NTFS) diskindeki dosyalar yok edildiğinde, MFT girişleri ücretsiz olarak işaretlenir ve yeniden kullanılabilir.” Bu, yeni oluşturulan bir dosyanın, zaten varsa, aynı ücretsiz MFT girişini kullanabileceğini gösterir. Bir kullanıcı, daha önce silinen dosya tarafından kullanılan bir MFT girişi atanmış bir dosyaya yazarak, silinen bir dosyanın gerçek içeriğini değiştirebilir. MFT girişi daha önce silinen dosya tarafından kullanıldığından bu mümkündür. Tanınmış modern silicilerin silme ile silme arasındaki boşluğu kapatmak için kullandıkları yöntemler üzerine araştırma yaptıktan sonra, bu silicilerin çoğunun dosyaları kaldırmadığını, bunun yerine onları değiştirdiğini keşfetti. Dosyanın gerçek içeriğini bu şekilde değiştirdiklerini doğrulayabilirler ve sonuç olarak dosyayı başarılı bir şekilde silebilirler.

Bu yöntem, Shamoon, CaddyWiper, DoubleZero, IsaacWiper, KillDisk ve Meteor gibi iyi bilinen siliciler tarafından kullanılır. Temel olarak, bu silecekler, silmek istedikleri dosyaları açar ve ardından dosyanın asıl içeriğinin değiştirilmesini garanti etmek için bunların üzerine yazar. Bununla birlikte, bu yöntem yüksek düzeyde haklar gerektirir. Örneğin, silicinin yönetici hesabıyla ilişkili klasörden belirli dosyaları kaldırabilmesi için, bu dosyalara erişim haklarına sahip olması gerekir. Bu, sistemi oluşturan dosyalar için de geçerlidir. Bunun bir sonucu olarak, bu silecekler genellikle yönetici haklarıyla çalışacaktır.

Bugünün silecekler de diğer tekniklerinden biri olan sürücü imhası olarak bilinen bir yöntemi kullanıyor. Bu yöntemi kullanırken, silici önce sürücüyü bir aygıt olarak açar ve ardından doğrudan sürücüye yazmaya başlar. Bunun bir sonucu olarak, dosyaların içeriklerinin yanı sıra NTFS’nin bir parçası olan önyükleme sırası yapılarını da değiştirebilir. IsaacWiper, KillDisk, Petya silicinin bir varyasyonu, SQLShred, StoneDrill, WhisperGate ve DriveSlayer, bu yaklaşımı kullanan iyi bilinen silicilere örnektir. Ancak, bu seçeneği kullanmak için yönetici özelliklerine sahip olmanız gerekir. Bunun nedeni, normal bir kullanıcının sabit sürücüde depolanan hiçbir şeyi tamamen bozamaması gerektiğidir.

Bu aşamada, EDR’lerin hangi koşullar altında verileri imha etmeye veya karantinaya almaya karar verdiğine dair bir anlayışa sahip olmak faydalı olacaktır. Çoğu EDR’nin, tehlikeli olduğunu belirledikleri dosyaları anında yok etmelerine veya karantinaya almalarına izin veren bir ayarla önceden yapılandırılmış olarak geldiğini buldu. Bazı programlar bunu bir dosya her açıldığında yapar ve bu noktada dosyayı zararlı olarak tanımlar. Bu, diğer EDR’lerin dosyalar yazıldıktan ve ardından kapatıldıktan sonra gerçekleştirdiği bir şeydir. Ve buna rağmen, her iki durumda da daha fazla EDR etkili oluyor. Bununla birlikte, çoğu EDR, bir tarama yürütme yeteneği içerir ve bu, dosya sistemindeki belirli bir yolun özel bir taraması veya tüm sistemin daha kapsamlı bir taraması olabilir.

Ortaya çıkan ilk konsept, normalde güvenli olan bir dosyaya bazı zararlı kodlar eklemek ve ardından EDR’nin bu kodu kaldırmasını beklemekti. Ancak, bu stratejiyi kullanmanın iki sorunu vardır. İlk sorun, silicinin silmek isteyebileceği önemli dosyaların çoğu için gerekli yazma haklarına sahip olmamasıdır. İkinci sorun, bu prosedürün, gerekli olan API çağrıları açısından dosyaların üzerine yazma yöntemine oldukça benzemesidir. Sonuç olarak, fikrinden vazgeçti.

İkinci düşüncesi, EDR’yi, başlangıçta kaldırması gereken rotayı sildiğini ve aynı anda onu silinecek başka bir yola yönlendirdiğini düşünmesi için kandırmaktı. Çoğu durumda, bu güvenlik açıklarından bağlantılar kullanılarak yararlanılabilir. Bağlantı güvenlik açıkları kategorisini ifade eden CWE 59, siber güvenlik sektöründe oldukça iyi bilinmektedir. Microsoft, ayrıcalık yükseltmeye izin veren çok sayıda güvenlik açığında yaygın olarak kullanıldığı için, kullanıcıların sembolik bağlantılar (symlinks) oluşturmasını sağlamak için “sembolik bağlantılar oluştur” kullanıcı hakkı adını verdikleri özel bir kullanıcı hakkı vermesi gerektiğini bile fark etti. . Bu kullanıcıya “sembolik bağ oluştur” kullanıcı hakkı adını verdiler. Bu kullanıcı ayrıcalığı yalnızca yöneticilere otomatik olarak verilir; diğer kullanıcıların buna erişebilmesi için bir yöneticinin bunu manuel olarak yapması gerekir.

Bir NTFS dosya sisteminde yapılabilecek başka bir bağlantı türü, bağlantı noktası olarak adlandırılır. Bağlantı noktaları ve sembolik bağlantılar arasındaki farkı düşünmeye başlaması çok uzun sürmedi. Bir yerel dizin sembolik bağlantısını ve bir bağlantı noktasını incelersek, üst düzey bir bakış açısından ikisi arasında hiçbir fark olmadığını görürüz. Öte yandan, sembolik bir bağlantının aksine, yükseltilmiş ayrıcalıklara sahip olmayan bir kullanıcı tarafından bir bağlantı noktası oluşturulabilir. Bir bağlantı noktası bağlantısından yararlanmamın mümkün olduğu sonucuna hızla vardı, ancak yine de uygun fırsat penceresini bulması gerekiyordu.

Bu fırsat penceresinde bir EDR’nin belirli bir konuma nasıl yönlendirileceğini anlamak için bu senaryoya bir göz atalım. Bir sürücü olan ve dizinde bulunan a.sys dosyasını kaldırmak istediğimizi düşünelim. C:\Windows\System32\drivers. Ancak biz herhangi bir özel izni olmayan normal bir kullanıcıyız. Ayrıcalığı olmayan bir kullanıcı olarak dosyayı kaldıramayacağımız açıktır. Bununla birlikte, kaldırmak istediği yola oldukça benzer benzersiz bir yol oluşturma yeteneğine sahibiz; birincil fark, yolun çoğunluğunun kullanıcı olurken üzerinde yetkiye sahip olduğumuz bir dizinin içinde yer almasıdır. daha düşük bir erişim düzeyi. Bu özel durumda, C:\temp\Windows\System32\driversve bu,.sys dosyasını ürettiğimiz dizindir.

Bir sonraki eylem planı, sistemin yeniden başlatılmasını tetiklemek için oluşturduğu kötü amaçlı dosyanın tanıtıcısını ele geçirme girişiminde bulunmaktı. Bu sonuca, Windows’ta bir dosya açtığımızda veya Windows’ta bir dosya oluşturduğumuzda, işletim sisteminin diğer işlemlerin mümkün olup olmadığını belirlemek için dosya paylaşım modunu seçmemizi istemesi gerçeğine dayanarak ulaşıldı. veya dosyayı silin. Bu nedenle, kötü amaçlı Mimikatz dosyasını oluşturduğunda, bunun oluşması için herhangi bir izin vermemiştir. Bunun yerine, kolu açık bıraktı ve ne gibi sonuçlar doğuracağını görmek için bekledi. Hem EDR’ler hem de AV’ler, tehlikeyi tamamen ortadan kaldırmak için yeniden başlatmanın gerekli olduğu konusunda bana uyarılar vermeye başladı.

Bir kez daha, iki farklı davranış modeli gördü. İlk sorun, bazı EDR’lerin ve AV’lerin, dosyaların silinmesini bilgisayarın bir sonraki yeniden başlatılışına kadar geciktirmek için standart Windows API’sini kullanmasıydı. Örneğin, SentinelOne’ın konuyu ele alırken kullandığı yaklaşım buydu. İkinci yol, birkaç EDR ve AV tarafından kullanıldığını gördüğü yol. Yaptıkları şey, bir yerde silinmesi gereken rotaların bir listesini tutmak ve ardından yeniden başlattıktan sonra bu listeyi silmek. Bununla birlikte, standart Windows API’sine bakarsak, MOVEFILE DELAY UNTIL REBOOT bayrağını geçirirken MoveFileEx işlevi kullanılarak bilgisayarın bir sonraki yeniden başlatılmasına kadar silme işleminin geciktirilmesi işleminin gerçekleştirildiğini görebiliriz.

Ayrıcalıklı Silme Güvenlik Açığının Etkinleştirilmesi İçin Atılması Gereken Adımların Özeti

Tüm bunları önceki çizimin ışığında düşünürsek, bitmiş ürün biraz şöyle görünebilir:

  1. C:tempWindowsSystem32driversndis.sys konumunda bulunan kötü amaçlı dosyayı içeren benzersiz bir yol oluşturun.
  2. EDR veya AV’yi silme işlemini sistemin bir sonraki yeniden başlatılışına kadar ertelemeye zorlamak için elinizi kolun üzerinde tutun.
  3. C:temp konumunda bulunan dizini silin.
  4. Bir bağlantı noktası oluşturun C:\temp → C:\
  5. yeniden başlat

Yair, 2022 yılının Temmuz ve Ağustos ayları arasında güvenlik açıklarını tüm duyarlı tedarikçilere iletti ve şu an itibariyle bu şirketlerin tümü yamalar yayınladı.

CVE-2022-37971 (Microsoft), CVE-2022-45797 (Trend Micro) ve CVE-2022-4173, satıcılar tarafından bu özel sorun için (Avast ve AVG) yayınlanan güvenlik açığı kimlikleridir.

Düzeltmelerin olduğu sürümler şunlardır:

Microsoft Kötü Amaçlı Yazılımdan Koruma Altyapısı için Sürüm 1.1.19700.2 veya üzeri
TrendMicro Apex One için Düzeltme 23573 ve Yama b11136 veya sonraki bir sürüm gereklidir.
Avast ve AVG Antivirus: 22.10 veya üstü

Söz konusu ürünlerin kullanıcılarının, verilerinin silme özelliğini taklit eden kötü amaçlı yazılımlar tarafından silinmesine ilişkin önemli tehlikeyi azaltmak için, en son güvenlik güncellemelerini pratik olarak mümkün olan en kısa sürede yüklemeleri şiddetle tavsiye edilir.



Source link