Snowblind, Güvenlik Mekanizmalarını Atlatmak İçin Android Seccomp Sandbox’ını Kötüye Kullanıyor


Geleneksel olarak güvenlik için kullanılan, sistem çağrılarını engellemek için bir seccomp filtresi yükleyen ve uygulamalardaki, hatta güçlü gizleme ve bütünlük kontrollerine sahip olanlar bile, kurcalamaya karşı koruma mekanizmalarını atlayan Linux çekirdek özelliği seccomp’tan yararlanan, Snowblind adında yeni bir Android bankacılık truva atı keşfedildi.

Yeni saldırı vektörü, kötü amaçlı yazılımın oturum açma kimlik bilgilerini çalmasına, 2FA’yı atlamasına ve verileri sızdırmasına olanak tanıyarak onu oldukça çok yönlü ve tehlikeli hale getiriyor; çünkü bu tekniğin, uygulamaları tehlikeye atmak için birçok farklı şekilde kullanılma potansiyeline sahip olduğuna inanılıyor.

Android kötü amaçlı yazılımları, kullanıcı girişini çalmak veya uygulamaları kontrol etmek için geleneksel olarak erişilebilirlik hizmetlerinden yararlanıyor; ancak uygulamalar artık kötü amaçlı erişilebilirlik hizmetlerini algılayabiliyor ve saldırganların algılamayı atlamak için yeniden paketleme saldırılarını kullanmasına neden oluyor.

Snowblind’in Çalışması

Yeni bir kötü amaçlı yazılım olan Snowblind, daha karmaşık bir yeniden paketleme saldırısı oluşturmak için bir Linux çekirdek güvenlik özelliği olan seccomp’tan yararlanıyor.

Scan Your Business Email Inbox to Find Advanced Email Threats - Try AI-Powered Free Threat Scan

Sanallaştırmayı kullanan FjordPhantom’dan farklı olarak Snowblind, uygulamanın kurcalamayı önleme kodu çalıştırılmadan önce yerel bir kitaplığa bir seccomp filtresi enjekte eder, bu da sistem çağrılarını yeniden yönlendirerek uygulamanın kurcalamayı algılayamamasını sağlar ve kötü amaçlı erişilebilirlik hizmetlerinin algılanmadan çalışmasına izin verir.

Seccomp, kullanıcı işlemlerinin sistem çağrıları için politikalar tanımlamasına olanak tanıyan ve saldırı yüzeylerini azaltmak için bir korumalı alan oluşturma mekanizması görevi gören bir Linux çekirdeği işlevidir.

İki modla tanıtılan sıkı mod yalnızca sınırlı sistem çağrılarına izin verirken, seccomp-bpf Berkeley Paket Filtreleri aracılığıyla ayrıntılı kontrol sunuyor.

Geleneksel olarak cihaz üreticilerinin özel çekirdekleri arasında parçalanmış olsa da seccomp, Google’ın seccomp’u Zygote’a uygulayarak uygulamaların sistem çağrılarını kısıtlaması ve daha geniş bir benimsenmeyi garantilemek için CTS’ye (Uyumluluk Test Paketi) testler eklemesiyle Android 8’de (Oreo) ivme kazandı; bu da seccomp-bpf’nin Android 8 ve sonraki sürümleri çalıştıran çoğu cihazda, hatta potansiyel olarak daha önceki sürümlerde bile mevcut olduğunu gösteriyor.

Seccomp-bpf, işlemlerin yapabilecekleri sistem çağrılarını kısıtlamasına olanak tanıyan bir Linux çekirdek özelliğidir. Bu özellik, işlemlerin yetkisiz sistem çağrıları yapmasını önleyerek güvenliği artırmak için kullanılabilir.

yapı tanımlandı

seccomp-bpf’yi kullanmak için, bir geliştirici öncelikle hangi sistem çağrılarına izin verildiğini belirten bir BPF (Berkeley Paket Filtresi) programı tanımlar; bu program, sistem çağrı numarasına, sistem çağrısının argümanlarına veya çağrı sürecine dayanabilir.

BPF programı tanımlandıktan sonra prctl() sistem çağrısı kullanılarak sürece uygulanır.

Her şeyi bir araya getirmek

Promon’a göre, PR_SET_SECCOMP seçeneğiyle prctl() sistem çağrısı, sürecin, hangi sistem çağrılarına izin verildiğini tanımlayan bir BPF programına işaretçi olan bir seccomp filtresi kurmasına olanak tanır.

Bir süreç sistem çağrısı yapmaya çalıştığında, çekirdek önce seccomp filtresini kontrol eder ve eğer filtre sistem çağrısına izin veriyorsa çekirdek sistem çağrısını yapar.

Filtre sistem çağrısına izin vermezse çekirdek işleme bir hata döndürür.

arm64’te yapma örneği

Uygulamalar, kendi sistem çağrılarını ve gizlemeyi uygulamak gibi karşı önlemleri benimsemiştir.

Snowblind, open() haricindeki tüm sistem çağrılarına izin veren bir seccomp filtresi yükleyen yerel bir kütüphane enjekte eder.

Hedeflenen anti-kurcalama kütüphanesi bir dosyayı açmaya çalıştığında, filtre bir SIGSYS sinyalini tetikler.

Özel bir sinyal işleyicisi, yeniden yürütülmeden önce open() çağrısına orijinal uygulamanın dosya yolunu enjekte eder ve böylece anti-kurcalama denetimini etkin bir şekilde atlatır.

Bizi takip ederek en son siber güvenlik gelişmelerinden haberdar olun Linkedin Ve X Günlük güncellemeler için!



Source link