fork bombing etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
fork bombing etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

20 Mart 2013 Çarşamba

ulimit komutu

Unix tabanlı sistemlerde,sistemin hangi ölçülerle kullanıldığının istatistiğini veren ve kullanıma göre ince optimizasyonlar yapılarak kullanıcının kaynakları kullanımında sınırlamalar getirilebilir.Olası DOS saldırıları bu şekilde engellenebilir.
terminale
ulimit -a
yazarak sistemde kullanılan kaynaklar hakkında daha ayrıntılı bilgi edinebilirsiniz.

Görüldüğü gibi max user process dediğimiz kullanıcının bir oturumda açabileceği process sayısı unlimited olarak ayarlanmış.Bu sebeple olası bir DOS tipi saldırı olan fork bombinge ortam hazırlamaktadır.

ulimit -u <girmekIstediğinizSayi>
ornek : ulimit -u 30


Gördüğümüz gibi max process sayısı 30 ile sınırlandırıldı.
Şimdi bir fork bombing scripti olan
 :(){ :|:& };:
komutu terminale yazarak sistemin vereceği cevabı görelim.

İşte sonuç :
Resource temporarily unavailable
Yani kaynak geçici olarak uygun değil.Bu ayarlama yapılmamış olsaydı yani siz konsolu açtığınızda direk
 :(){ :|:& };:
girdiğinizde makineniz kilitlenecek ve sistemi yeniden başlatmanıza sebep olacaktı.Bir sistemin yeniden başlatılması küçük boyutlu işlerde maliyet açısından gideri elle tutulur ölçülerde olmayabilir lakin büyük ölçekli sistemlerde(banka serverları,devlet kurumlarının kullandığı sistemler) bir sistemi yeniden başlatmak demek ana haber bültenlerinde son dakika haberi olmak demektir.

19 Mart 2013 Salı

Fork Bombing ve Korunumu

İsminden de anlaşılacağı gibi,bir process in kontrol dışı çoğalması ve kaynakların hunharca tüketilip sistemi dondurup,devre dışı haline getirmesidir.
Bir DOS(denial of service) saldırısıdır.Prosesler geometrik bir şekilde(1,2,4,8,16,32....) artacağı için memoryde akıl almaz bir kaynak tüketimi ve cpu nun işlem gücünü çalarak sistem üzerinde çalışan diğer hizmetlerin,programların çalışmasını engeller.
Şematize Fork Bombing

Fork Bombing den nasıl korunuruz ?

Unix türü işletim sistemlerinde kullanıcının bir oturumda açabileceği process sayısı önceden belirlenmiştir.Kullanıcı bu process sayısını kesinlikle aşamaz.unix te ulimit shell komutuyla bu sınırlama gerçekleştirilebilir.

Windows türü işletim sistemlerinde bu işlem process sayısı olarak değil de cpu kullanımı olarak ele alınmıştır.
kullanıcıların cpu kullanımı sınırlandırılır.

Basit bir Fork Bombing
Unix tabanlı işletim sisteminize aşağıdaki kodu yazıp çalıştırarak ne kadar çaresiz kalabileceğinizi öğrenebilirsiniz :)

#include <stdio.h>
#include <unistd.h>
void main(){
while(1){
fork();}
}
NOT:Derleyip çalıştırmadan önce açık kalan kayıt edilmemiş programlarınızı kapatın.