Fork Bomb

Bilgisayarlı programlamada, çatal bombası (İngilizce: Fork Bomb, tavşan virüsü veya wabbit  olarak da adlandırılır), bir işlemin mevcut sistem kaynaklarını tüketmek, kaynak yetersizliği nedeniyle sistemi yavaşlatmak ve sonunda tamamıyla çökertmek için sürekli olarak kendini kopyaladığı bir hizmet reddi saldırısıdır.

Tarihi 
1978 civarında, wabbit adı verilen çatal bombasının erken bir varyantının bir System/360 üzerinde çalıştığı bildirildi. Washington Üniversitesi'ndeki bir Burroughs 5500'de 1969'da rapor edilen RABBITS adlı benzer bir saldırıdan gelmiş olabileceğini gösteriyor.

Uygulama 
Çatal bombaları hem çatallanma sürecinde CPU sürecini tüketerek hem de işletim sisteminin işlem tablosunu doldurarak çalışır. Bir çatal bombasının temel bir uygulaması, kendisinin yeni kopyalarını tekrar tekrar başlatan sonsuz bir döngüdür.

Unix benzeri işletim sistemlerinde, çatal bombaları genellikle çatal sistem çağrısını kullanmak için yazılır. Çatallanmış süreçler aynı zamanda ilk programın kopyaları olduğundan, çerçeve işaretçisindeki sonraki adresten yürütmeye devam ettiklerinde, aynı sonsuz döngünün kendi kopyaları içinde durmadan çatallanmaya devam ederler; bu, süreçlerde üstel bir büyümeye neden olma etkisine sahiptir. Modern Unix sistemleri, yeni süreçleri çatallanırken genellikle bir yazma üzerine kopyalama kaynak yönetimi tekniği kullandığından  bir çatal bombası genellikle böyle bir sistemin belleğini doyurmayacaktır.

Microsoft Windows işletim sistemleri, Unix fork sistem çağrısına eşdeğer bir işlevselliğe sahip değildir; Böyle bir işletim sistemindeki çatal bombası, mevcut bir işletim sisteminden çatallanmak yerine yeni bir süreç yaratmalıdır.

Unix kabuğu için klasik çatallama bombası örneği :(){ :|:& };:, şu şekilde daha kolay anlaşılabilir:fork() {
  fork | fork &
}
forkİçinde, bir işlev (fork()) kendisini (fork) olarak adlandırır, daha sonra sonucunu (|) kendisinin bir arka plan işine (&) yönlendirir.

Sistem çağrılarındaki sınırlamalar göz önüne alındığında, Windows eşdeğeri batch olarak şu şekilde yazılabilir::loop
start %~nx0
goto loopBunun daha da kısa bir versiyonu, anonim fonksiyonlar kullanılarak elde edilebilir:%0|%0

Önleme 
Bir çatal bombasının çalışma modu tamamen yeni süreçler oluşturarak kapsüle edildiğinden, bir çatal bombasının tüm sistemi ciddi şekilde etkilemesini önlemenin bir yolu, tek bir kullanıcının sahip olabileceği maksimum işlem sayısını sınırlamaktır. Linux'ta bu, ulimit yardımcı programı kullanılarak gerçekleştirilebilir; örneğin, ulimit -u 30 komutu, etkilenen kullanıcıyı sahip olunan maksimum otuz işlemle sınırlayacaktır. PAM etkin sistemlerde, bu sınır /etc/security/limits.conf, de de ayarlanabilir ve FreeBSD'de sistem yöneticisi /etc/login.conf sınırlar koyabilir. Modern Linux sistemleri ayrıca cgruplar ve işlem numarası (PID) denetleyicisi aracılığıyla daha ince taneli çatal bombası önlemeye izin verir.

Ayrıca bakınız 

 Kilitlenme
 Mantık bombası
 Saatli bomba (yazılım)

Kaynakça

Dış bağlantılar 

 Birçok dilde çatal bomba örnekleri 

İşlem (bilgisayar)