fileless kötü amaçlı yazılım linux üzerinde nasıl çalışır?


10

Fileless malware'in tanımını anlıyorum:

Dosya tabanlı olmayan ancak yalnızca bellekte bulunan kötü amaçlı kod… Daha özellikle, kötü amaçlı kötü amaçlı kod… bellekte etkin bir işleme kendini ekler…

Birisi bunun bellekte aktif bir sürece kendini nasıl eklediğini açıklayabilir mi?

Ayrıca, bu tür saldırılara karşı hangi (çekirdek) koruma / sertleştirme kullanılabilir?


Örneğin, bir ağ uygulamasında arabellek taşmasını kullanarak ve ardından uygulamanın içinde çalışan ve ağ üzerinden yayılan kötü amaçlı kod indirerek. İlgili dosya yok. Sorunun ikinci kısmı çok geniştir, aslında "kötü amaçlı yazılımlara karşı hangi önlemler var" anlamına gelir?
dirkt

Bu soruya https://security.stackexchange.com/ adresinden daha iyi yanıt verilebilir .
rubynorails

@rubynorails - Yalnızca linux'a özel cevaplarla ilgileniyorum. SecuritySE geneldir. Orada linux'a özel cevap talep edersem, beni buraya gönderecekler.
Martin Vegter

Yanıtlar:


6

Zararsız kötü amaçlı yazılım, örneğin bir tarayıcının Flash eklentisinde veya bir ağ protokolünde bulunan bir güvenlik açığından yararlanarak hedefe saldırır.

Linux işlemi sistem çağrısı kullanılarak değiştirilebilir ptrace(). Bu sistem çağrısı genellikle hata ayıklayıcılar tarafından hedef sürecin iç durumunu denetlemek ve yönetmek için kullanılır ve yazılım geliştirmede yararlıdır.

Örneğin, PID 1234 ile bir işlemi ele alalım. Bu işlemin tüm adres alanı /proc, konumdaki sözde dosya sisteminde görüntülenebilir /proc/1234/mem. Bu sahte dosyayı açabilir, ardından bu işleme şu yolla ekleyebilirsiniz ptrace(); bunu yaptıktan sonra pread()ve pwrite()tuşlarını kullanarak işlem alanına yazabilirsiniz.

char file[64];
pid = 1234;

sprintf(file, "/proc/%ld/mem", (long)pid);
int fd = open(file, O_RDWR);
ptrace(PTRACE_ATTACH, pid, 0, 0);

waitpid(pid, NULL, 0);
off_t addr = ...; // target process address

pread(fd, &value, sizeof(value), addr);
// or
pwrite(fd, &value, sizeof(value), addr);

ptrace(PTRACE_DETACH, pid, 0, 0);
close(fd);

(Kod alınan burada . Başka kağıt bir ptrace hakkında kullanılabilir istismar burada .)

Bu saldırılara karşı çekirdek odaklı savunma ile ilgili olarak, tek yol çekirdek satıcı yamalarını kurmak ve / veya belirli saldırı vektörünü devre dışı bırakmaktır. Örneğin, ptrace durumunda, çekirdeğe söz konusu sistem çağrısını devre dışı bırakacak bir ptrace engelleme modülü yükleyebilirsiniz; açıkça bu da hata ayıklama için ptrace kullanamaz hale getirir.


Diğer cevap gibi , bu da modası geçmiş - burada açıklandığı gibi , okumak veya yazmak için artık bir işlemi izlemenize gerek yok /proc/PID/mem. Umarım efsaneleri ve yanlış bilgileri sürdürmek yerine cevabınızı güncellemek ve düzeltmek için diğer kişiden daha az refraktersinizdir.
pizdelect

... bu durumun sonuçları olabilir, çünkü insanlar yanlış bir şekilde bir işlemi uygulayarak diğer süreçlerin hafızasını okumasını engelleyebilirler.
pizdelect

@pizdelect Bağlantı için teşekkürler. İçeriği başka bir yanıt olarak eklemeniz iyi olur.
dr_

Hayır, başka bir cevap eklemeyeceğim. Sizinkini düzeltmenizi bekliyorum.
pizdelect

Başkalarının yanıtlarını da düzenleyebileceğinizi unutmayın. Bu konu hakkında benden daha iyi bir bilginiz var gibi görünüyor, bu yüzden bunu kabul edebilirsiniz.
dr_

1

Bir işlemi kilitlemeyi başardığınızda, işlemin belleğe veri eklemesine neden olabilirsiniz. Bunu yapmanın çok popüler bir yolu, arabellek taşmalarını kullanmaktır .

Bu nasıl çalışıyor ? Örneğin, bir işlemin x bağlantı noktasını dinlediğini ve 15 bayt büyüklüğünde belirli bir işlev için bir arabelleğe sahip olduğunu bilirsiniz. Bu işlevi 15 Bayt veri + n Bayt (yürütülecek kodunuz) ile çağırırsınız. Program verileri düzgün bir şekilde doğrulamazsa, bitişik belleğin kodunuz üzerine yazılmasına neden olur ve böylece kod bellekte kalır. Bu kodu yürütebilirseniz, sisteme sahip olursunuz. Sınırlamalar vardır, örneğin, bir işlem belleğe ayrılan alanının dışında yazamaz .

Tüm işletim sistemlerinde, arabellek taşmalarının krakerlerin hedefin belleğine veri enjekte etmesine izin verdiği uzun bir güvenlik açığı listesi vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.